aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2023-03-03 20:05:20 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2023-03-03 20:05:20 +0000
commit430074ffa822c2456cabbbe77413fd2d615db7d4 (patch)
tree69fa7661f44e0e202641d872b2074958c48d5599 /lib
parent989e9fb694954a976d80fbfc67e37f417cf25ffa (diff)
adjustments due to phpstan report, fixes #2257
Closes #2257 Merge request studip/studip!1490
Diffstat (limited to 'lib')
-rw-r--r--lib/classes/ContentBar.php7
-rw-r--r--lib/classes/CoursewarePDFCertificate.php7
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/UnitsCopy.php10
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/UnitsCreate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php2
-rw-r--r--lib/classes/JsonApi/Routes/Files/FileRefsContentShow.php2
-rw-r--r--lib/classes/Virusscanner.php7
-rw-r--r--lib/cronjobs/remind_oer_upload.class.php15
-rw-r--r--lib/cronjobs/send_mail_notifications.class.php2
-rw-r--r--lib/models/QuestionnaireInfo.php4
-rw-r--r--lib/models/User.class.php5
11 files changed, 38 insertions, 25 deletions
diff --git a/lib/classes/ContentBar.php b/lib/classes/ContentBar.php
index 53b3dfc..0e6a664 100644
--- a/lib/classes/ContentBar.php
+++ b/lib/classes/ContentBar.php
@@ -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()
{
}
diff --git a/lib/classes/CoursewarePDFCertificate.php b/lib/classes/CoursewarePDFCertificate.php
index e3ef02f..ca6e704 100644
--- a/lib/classes/CoursewarePDFCertificate.php
+++ b/lib/classes/CoursewarePDFCertificate.php
@@ -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();
diff --git a/lib/classes/JsonApi/Routes/Courseware/UnitsCopy.php b/lib/classes/JsonApi/Routes/Courseware/UnitsCopy.php
index 5365459..61ffa95 100644
--- a/lib/classes/JsonApi/Routes/Courseware/UnitsCopy.php
+++ b/lib/classes/JsonApi/Routes/Courseware/UnitsCopy.php
@@ -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
+}
diff --git a/lib/classes/JsonApi/Routes/Courseware/UnitsCreate.php b/lib/classes/JsonApi/Routes/Courseware/UnitsCreate.php
index c109619..f8fb17b 100644
--- a/lib/classes/JsonApi/Routes/Courseware/UnitsCreate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/UnitsCreate.php
@@ -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.
diff --git a/lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php b/lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php
index 53fccd3..762fb04 100644
--- a/lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php
+++ b/lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php
@@ -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;
/**
diff --git a/lib/classes/JsonApi/Routes/Files/FileRefsContentShow.php b/lib/classes/JsonApi/Routes/Files/FileRefsContentShow.php
index b2b67ce..e2d19c4 100644
--- a/lib/classes/JsonApi/Routes/Files/FileRefsContentShow.php
+++ b/lib/classes/JsonApi/Routes/Files/FileRefsContentShow.php
@@ -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);
}
diff --git a/lib/classes/Virusscanner.php b/lib/classes/Virusscanner.php
index 628fdba..077e3e2 100644
--- a/lib/classes/Virusscanner.php
+++ b/lib/classes/Virusscanner.php
@@ -89,6 +89,13 @@ class Virusscanner
}
/**
+ * 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.
*
* @return resource|null
diff --git a/lib/cronjobs/remind_oer_upload.class.php b/lib/cronjobs/remind_oer_upload.class.php
index 9ac20e7..a1a8ee1 100644
--- a/lib/cronjobs/remind_oer_upload.class.php
+++ b/lib/cronjobs/remind_oer_upload.class.php
@@ -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']]);
-
}
-
}
-
}
}
diff --git a/lib/cronjobs/send_mail_notifications.class.php b/lib/cronjobs/send_mail_notifications.class.php
index c336308..0888294 100644
--- a/lib/cronjobs/send_mail_notifications.class.php
+++ b/lib/cronjobs/send_mail_notifications.class.php
@@ -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);
diff --git a/lib/models/QuestionnaireInfo.php b/lib/models/QuestionnaireInfo.php
index 7596586..0b1493c 100644
--- a/lib/models/QuestionnaireInfo.php
+++ b/lib/models/QuestionnaireInfo.php
@@ -1,6 +1,4 @@
<?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)
diff --git a/lib/models/User.class.php b/lib/models/User.class.php
index 82709db..0653f5c 100644
--- a/lib/models/User.class.php
+++ b/lib/models/User.class.php
@@ -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);