Skip to content
Snippets Groups Projects
Commit 430074ff authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms
Browse files

adjustments due to phpstan report, fixes #2257

Closes #2257

Merge request studip/studip!1490
parent 989e9fb6
No related branches found
No related tags found
1 merge request!4Draft: Icon creation
......@@ -36,18 +36,19 @@ class ContentBar
public static function get(): ContentBar
{
if (static::$instance === null) {
static::$instance = new static;
static::$instance = new static();
}
return static::$instance;
}
/**
* Private constructor to ensure that the singleton Get() method is always
* used.
* used. The constructor is finalized so that the call to get() will never
* fail.
*
* @see ContentBar::get
*/
protected function __construct()
protected final function __construct()
{
}
......
......@@ -2,13 +2,12 @@
class CoursewarePDFCertificate extends TCPDF
{
protected $background;
public function __construct($background = false, $orientation = 'P', $unit = 'mm', $format = 'A4', $unicode = true, $encoding = 'UTF-8')
{
$this->config = Config::get();
if ($this->config->getValue('LOAD_EXTERNAL_MEDIA') === 'proxy') {
$this->media_proxy = new MediaProxy();
}
parent::__construct($orientation, $unit, $format, $unicode, $encoding, false);
if ($background) {
$fileRef = FileRef::find($background);
$this->background = $fileRef->file->getPath();
......
......@@ -32,7 +32,13 @@ class UnitsCopy extends NonJsonApiController
$rangeType = $data['rangeType'];
$modified = $data['modified'];
if (!Authority::canCreateUnit($user)) {
try {
$range = \RangeFactory::createRange($rangeType, $rangeId);
} catch (\Exception $e) {
throw new RecordNotFoundException('Range could not be found');
}
if (!Authority::canCreateUnit($user, $range)) {
throw new AuthorizationFailedException();
}
......@@ -43,4 +49,4 @@ class UnitsCopy extends NonJsonApiController
return $response;
}
}
\ No newline at end of file
}
......@@ -3,12 +3,12 @@
namespace JsonApi\Routes\Courseware;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
use JsonApi\Schemas\Courseware\Unit as UnitSchema;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Studip\Activity\Activity;
/**
* Create a block in a container.
......
......@@ -6,6 +6,7 @@ use Courseware\Unit;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
use JsonApi\JsonApiController;
use JsonApi\Routes\TimestampTrait;
use JsonApi\Routes\ValidationTrait;
use JsonApi\Schemas\Courseware\Unit as UnitSchema;
use Psr\Http\Message\ResponseInterface as Response;
......@@ -17,6 +18,7 @@ use Psr\Http\Message\ServerRequestInterface as Request;
class UnitsUpdate extends JsonApiController
{
use EditBlockAwareTrait;
use TimestampTrait;
use ValidationTrait;
/**
......
......@@ -114,7 +114,7 @@ class FileRefsContentShow extends NonJsonApiController
$fileRef->incrementDownloadCounter();
$stream = Psr7\stream_for(fopen($pathFile, 'rb'));
$stream = Psr7\Utils::streamFor(fopen($pathFile, 'rb'));
return $response->withBody($stream);
}
......
......@@ -88,6 +88,13 @@ class Virusscanner
return [];
}
/**
* Finalized constructor so that the instantition in scan() will never fail.
*/
protected final function __construct()
{
}
/**
* Establishes a connection to virus scanner via socket or TCP, depending on Stud.IP configuration.
*
......
......@@ -39,10 +39,10 @@ class RemindOerUpload extends CronJob
$filetype = $file_ref->getFileType();
$file_to_suggest = $filetype->convertToStandardFile();
$this->author = $file_ref->owner->username;
$this->link_to_share = URLHelper::getURL('dispatch.php/file/share_oer/' . $result['file_ref_id']);
$this->linktext = _('Klicken Sie hier, um das Material im OER-Campus zu veröffentlichen.');
$this->formatted_link = '['. $this->linktext .']' . $this->link_to_share;
$author = $file_ref->owner->username;
$link_to_share = URLHelper::getURL('dispatch.php/file/share_oer/' . $result['file_ref_id']);
$linktext = _('Klicken Sie hier, um das Material im OER-Campus zu veröffentlichen.');
$formatted_link = '['. $linktext .']' . $link_to_share;
$oer_reminder_message = sprintf(_("Sie wollten daran erinnert werden, die folgende Datei im OER-Campus zu veröffentlichen:\n\n"
. "Dateiname: %s \n"
......@@ -50,14 +50,14 @@ class RemindOerUpload extends CronJob
. "%s \n\n"),
$file_to_suggest->getFilename(),
$file_to_suggest->getDescription(),
$this->formatted_link
$formatted_link
);
$messaging = new messaging();
$messaging->insert_message(
$oer_reminder_message,
$this->author,
$author,
'____%system%____',
'',
Request::option('message_id'),
......@@ -67,10 +67,7 @@ class RemindOerUpload extends CronJob
);
OERPostUpload::deleteBySQL("file_ref_id = ?", [$result['file_ref_id']]);
}
}
}
}
......@@ -114,7 +114,7 @@ class SendMailNotificationsJob extends CronJob
return;
}
$GLOBALS['user'] = new Seminar_user($user);
$GLOBALS['user'] = new Seminar_User($user);
$ok = false;
$mailmessage = $notification->getAllNotifications($user->id);
......
<?php
require_once 'lib/classes/QuestionType.interface.php';
class QuestionnaireInfo extends QuestionnaireQuestion implements QuestionType
{
public static function getIcon(bool $active = false) : Icon
......@@ -45,7 +43,7 @@ class QuestionnaireInfo extends QuestionnaireQuestion implements QuestionType
public function createAnswer()
{
return new QuestionnaireAnswer(); // Unused but necessary
}
public function getUserIdsOfFilteredAnswer($answer_option)
......
......@@ -237,7 +237,10 @@ class User extends AuthUserMd5 implements Range, PrivacyObject
*/
public static function build($data, $is_new = true)
{
$user = new static();
// Note: This should be used instead of `new static()` since PHPStan
$class = get_called_class();
$user = new $class();
$user->info = new UserInfo();
$user->setData($data);
$user->setNew($is_new);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment