From 520df873fef29c1faf89a2cba513bb62fde6cd81 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Wed, 19 Apr 2023 14:44:32 +0000 Subject: [PATCH] fix changes to method signature, fixes #2564 Closes #2564 Merge request studip/studip!1730 --- .../JsonApi/Routes/Blubber/CommentsCreate.php | 2 +- .../JsonApi/Routes/Blubber/CommentsUpdate.php | 2 +- lib/classes/JsonApi/Routes/Blubber/ThreadsCreate.php | 2 +- .../Routes/ConfigValues/ConfigValuesUpdate.php | 4 ++-- .../CourseMemberships/CourseMembershipsUpdate.php | 8 ++++++-- .../Routes/Courseware/CoursewareInstancesUpdate.php | 12 ++++++------ .../Routes/Courseware/StructuralElementsUpdate.php | 6 +++--- .../JsonApi/Routes/Courseware/UnitsUpdate.php | 2 +- lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php | 4 ++-- lib/classes/JsonApi/Routes/Files/FoldersUpdate.php | 4 ++-- .../JsonApi/Routes/Forum/AbstractEntriesCreate.php | 2 +- .../JsonApi/Routes/Forum/ForumCategoriesCreate.php | 2 +- .../JsonApi/Routes/Forum/ForumCategoriesUpdate.php | 2 +- .../JsonApi/Routes/Forum/ForumEntriesUpdate.php | 2 +- .../JsonApi/Routes/Messages/MessageUpdate.php | 2 +- lib/classes/JsonApi/Routes/News/NewsUpdate.php | 2 +- 16 files changed, 31 insertions(+), 27 deletions(-) diff --git a/lib/classes/JsonApi/Routes/Blubber/CommentsCreate.php b/lib/classes/JsonApi/Routes/Blubber/CommentsCreate.php index a1402b4b98a..3548645bf35 100644 --- a/lib/classes/JsonApi/Routes/Blubber/CommentsCreate.php +++ b/lib/classes/JsonApi/Routes/Blubber/CommentsCreate.php @@ -46,7 +46,7 @@ class CommentsCreate extends JsonApiController return $this->getCreatedResponse($comment); } - protected function validateResourceDocument($json) + protected function validateResourceDocument($json, $data) { if (empty(self::arrayGet($json, 'data.attributes.content'))) { return 'Comment should not be empty.'; diff --git a/lib/classes/JsonApi/Routes/Blubber/CommentsUpdate.php b/lib/classes/JsonApi/Routes/Blubber/CommentsUpdate.php index a3ef571cf08..8f83246b3f1 100644 --- a/lib/classes/JsonApi/Routes/Blubber/CommentsUpdate.php +++ b/lib/classes/JsonApi/Routes/Blubber/CommentsUpdate.php @@ -44,7 +44,7 @@ class CommentsUpdate extends JsonApiController return $this->getCodeResponse(204); } - protected function validateResourceDocument($json) + protected function validateResourceDocument($json, $data) { if (empty(self::arrayGet($json, 'data.attributes.content'))) { return 'Comment should not be empty.'; diff --git a/lib/classes/JsonApi/Routes/Blubber/ThreadsCreate.php b/lib/classes/JsonApi/Routes/Blubber/ThreadsCreate.php index d503157b935..b5bc9435e30 100644 --- a/lib/classes/JsonApi/Routes/Blubber/ThreadsCreate.php +++ b/lib/classes/JsonApi/Routes/Blubber/ThreadsCreate.php @@ -51,7 +51,7 @@ class ThreadsCreate extends JsonApiController return $this->getCreatedResponse($thread); } - protected function validateResourceDocument($json) + protected function validateResourceDocument($json, $data) { if (Schema::TYPE !== self::arrayGet($json, 'data.type')) { return 'Missing or wrong type.'; diff --git a/lib/classes/JsonApi/Routes/ConfigValues/ConfigValuesUpdate.php b/lib/classes/JsonApi/Routes/ConfigValues/ConfigValuesUpdate.php index 97411404a6b..cf46134eb00 100644 --- a/lib/classes/JsonApi/Routes/ConfigValues/ConfigValuesUpdate.php +++ b/lib/classes/JsonApi/Routes/ConfigValues/ConfigValuesUpdate.php @@ -41,7 +41,7 @@ class ConfigValuesUpdate extends JsonApiController return $this->getContentResponse($resource); } - protected function validateResourceDocument($json, $resource) + protected function validateResourceDocument($json, $data) { if (!self::arrayHas($json, 'data')) { return 'Missing `data` member at document´s top level.'; @@ -55,7 +55,7 @@ class ConfigValuesUpdate extends JsonApiController return 'Document must have an `id`.'; } - if (self::arrayGet($json, 'data.id') !== $this->generateId($resource)) { + if (self::arrayGet($json, 'data.id') !== $this->generateId($data)) { return 'Mismatch between URI parameter and document `id`.'; } diff --git a/lib/classes/JsonApi/Routes/CourseMemberships/CourseMembershipsUpdate.php b/lib/classes/JsonApi/Routes/CourseMemberships/CourseMembershipsUpdate.php index 6bf71eadd06..4d0218e93fd 100644 --- a/lib/classes/JsonApi/Routes/CourseMemberships/CourseMembershipsUpdate.php +++ b/lib/classes/JsonApi/Routes/CourseMemberships/CourseMembershipsUpdate.php @@ -70,7 +70,7 @@ class CourseMembershipsUpdate extends JsonApiController return $membership; } - protected function validateResourceDocument($json, \CourseMember $membership) + protected function validateResourceDocument($json, $data) { if (CourseMemberSchema::TYPE !== self::arrayGet($json, 'data.type')) { return 'Missing or wrong type.'; @@ -93,7 +93,11 @@ class CourseMembershipsUpdate extends JsonApiController return 'Attribute `visible` must be either `yes` or `no`'; } - if ('no' === $visible && in_array($membership->status, ['tutor', 'dozent'])) { + if ( + 'no' === $visible + && $data instanceof \CourseMember + && in_array($data->status, ['tutor', 'dozent']) + ) { return 'Users of status `tutor` or `dozent` must remain visible.'; } } diff --git a/lib/classes/JsonApi/Routes/Courseware/CoursewareInstancesUpdate.php b/lib/classes/JsonApi/Routes/Courseware/CoursewareInstancesUpdate.php index fff4608cdeb..c5ef250ba52 100644 --- a/lib/classes/JsonApi/Routes/Courseware/CoursewareInstancesUpdate.php +++ b/lib/classes/JsonApi/Routes/Courseware/CoursewareInstancesUpdate.php @@ -40,7 +40,7 @@ class CoursewareInstancesUpdate extends JsonApiController /** * @SuppressWarnings(PHPMD.UnusedFormalParameters) */ - protected function validateResourceDocument($json, $resource) + protected function validateResourceDocument($json, $data) { if (!self::arrayHas($json, 'data')) { return 'Missing `data` member at document´s top level.'; @@ -61,7 +61,7 @@ class CoursewareInstancesUpdate extends JsonApiController } $blockTypes = array_map(function ($blockType) { return $blockType::getType(); - }, $resource->getBlockTypes()); + }, $data->getBlockTypes()); foreach ($favoriteBlockTypes as $favoriteBlockType) { if (!in_array($favoriteBlockType, $blockTypes)) { return 'Attribute `favorite-block-types` contains an invalid block type.'; @@ -79,7 +79,7 @@ class CoursewareInstancesUpdate extends JsonApiController if (!is_string($editingPermissionLevel)) { return 'Attribute `editing-permission-level` must be a string.'; } - if (!$resource->isValidEditingPermissionLevel($editingPermissionLevel)) { + if (!$data->isValidEditingPermissionLevel($editingPermissionLevel)) { return 'Attribute `editing-permission-level` contains an invalid value.'; } } @@ -87,7 +87,7 @@ class CoursewareInstancesUpdate extends JsonApiController if (self::arrayHas($json, 'data.attributes.certificate-settings')) { $certificateSettings = self::arrayGet($json, 'data.attributes.certificate-settings'); - if (!$resource->isValidCertificateSettings($certificateSettings)) { + if (!$data->isValidCertificateSettings($certificateSettings)) { return 'Attribute `certificate-settings` contains an invalid value.'; } } @@ -95,7 +95,7 @@ class CoursewareInstancesUpdate extends JsonApiController if (self::arrayHas($json, 'data.attributes.reminder-settings')) { $reminderSettings = self::arrayGet($json, 'data.attributes.reminder-settings'); - if (!$resource->isValidReminderSettings($reminderSettings)) { + if (!$data->isValidReminderSettings($reminderSettings)) { return 'Attribute `reminder-settings` contains an invalid value.'; } } @@ -103,7 +103,7 @@ class CoursewareInstancesUpdate extends JsonApiController if (self::arrayHas($json, 'data.attributes.reset-progress-settings')) { $resetProgressSettings = self::arrayGet($json, 'data.attributes.reset-progress-settings'); - if (!$resource->isValidResetProgressSettings($resetProgressSettings)) { + if (!$data->isValidResetProgressSettings($resetProgressSettings)) { return 'Attribute `reset-progress-settings` contains an invalid value.'; } } diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php index 33ba9a3f9bc..febe3cc8480 100644 --- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php +++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsUpdate.php @@ -39,7 +39,7 @@ class StructuralElementsUpdate extends JsonApiController /** * @SuppressWarnings(PHPMD.UnusedFormalParameters) */ - protected function validateResourceDocument($json, $resource) + protected function validateResourceDocument($json, $data) { if (!self::arrayHas($json, 'data')) { return 'Missing `data` member at document´s top level.'; @@ -55,7 +55,7 @@ class StructuralElementsUpdate extends JsonApiController if (self::arrayHas($json, 'data.relationships.parent')) { // Sonderfall: Wurzel hat kein parent und kann auch nicht verändert werden - if ($resource->isRootNode()) { + if ($data->isRootNode()) { if (null !== self::arrayGet($json, 'data.relationships.parent.data')) { return 'Cannot modify `parent` of a root node.'; } @@ -70,7 +70,7 @@ class StructuralElementsUpdate extends JsonApiController // keine Schleifen if ( in_array( - $resource->id, + $data->id, array_merge( [$parent->id], array_map(function ($ancestor) { diff --git a/lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php b/lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php index 762fb0437e8..75956c4c2cc 100644 --- a/lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php +++ b/lib/classes/JsonApi/Routes/Courseware/UnitsUpdate.php @@ -43,7 +43,7 @@ class UnitsUpdate extends JsonApiController /** * @SuppressWarnings(PHPMD.UnusedFormalParameters) */ - protected function validateResourceDocument($json, $resource) + protected function validateResourceDocument($json, $data) { if (!self::arrayHas($json, 'data')) { return 'Missing `data` member at document´s top level.'; diff --git a/lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php b/lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php index 27ddabab7b1..79000cc7445 100644 --- a/lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php +++ b/lib/classes/JsonApi/Routes/Files/FileRefsUpdate.php @@ -66,9 +66,9 @@ class FileRefsUpdate extends JsonApiController } } - protected function validateResourceDocument($json, $fileRef) + protected function validateResourceDocument($json, $data) { - if ($err = $this->validateFileRefResourceObject($json, $fileRef)) { + if ($err = $this->validateFileRefResourceObject($json, $data)) { return $err; } } diff --git a/lib/classes/JsonApi/Routes/Files/FoldersUpdate.php b/lib/classes/JsonApi/Routes/Files/FoldersUpdate.php index afb43ace897..f089c3d9f2a 100644 --- a/lib/classes/JsonApi/Routes/Files/FoldersUpdate.php +++ b/lib/classes/JsonApi/Routes/Files/FoldersUpdate.php @@ -66,9 +66,9 @@ class FoldersUpdate extends JsonApiController } } - protected function validateResourceDocument($json, \FolderType $folder) + protected function validateResourceDocument($json, $data) { - if ($err = $this->validateFolderResourceObject($json, $folder)) { + if ($err = $this->validateFolderResourceObject($json, $data)) { return $err; } } diff --git a/lib/classes/JsonApi/Routes/Forum/AbstractEntriesCreate.php b/lib/classes/JsonApi/Routes/Forum/AbstractEntriesCreate.php index 204414b711e..734b9d8a6cf 100644 --- a/lib/classes/JsonApi/Routes/Forum/AbstractEntriesCreate.php +++ b/lib/classes/JsonApi/Routes/Forum/AbstractEntriesCreate.php @@ -11,7 +11,7 @@ abstract class AbstractEntriesCreate extends JsonApiController { use ValidationTrait; - protected function validateResourceDocument($json) + protected function validateResourceDocument($json, $data) { $content = self::arrayHas($json, 'data.attributes.title'); if (empty($content)) { diff --git a/lib/classes/JsonApi/Routes/Forum/ForumCategoriesCreate.php b/lib/classes/JsonApi/Routes/Forum/ForumCategoriesCreate.php index bbb492e5231..280e437e023 100644 --- a/lib/classes/JsonApi/Routes/Forum/ForumCategoriesCreate.php +++ b/lib/classes/JsonApi/Routes/Forum/ForumCategoriesCreate.php @@ -51,7 +51,7 @@ class ForumCategoriesCreate extends JsonApiController return $category; } - protected function validateResourceDocument($json) + protected function validateResourceDocument($json, $data) { $title = self::arrayGet($json, 'data.attributes.title', ''); if (empty($title)) { diff --git a/lib/classes/JsonApi/Routes/Forum/ForumCategoriesUpdate.php b/lib/classes/JsonApi/Routes/Forum/ForumCategoriesUpdate.php index 961f1755241..e09339efde2 100644 --- a/lib/classes/JsonApi/Routes/Forum/ForumCategoriesUpdate.php +++ b/lib/classes/JsonApi/Routes/Forum/ForumCategoriesUpdate.php @@ -53,7 +53,7 @@ class ForumCategoriesUpdate extends JsonApiController } } - protected function validateResourceDocument($json) + protected function validateResourceDocument($json, $data) { $title = self::arrayGet($json, 'data.attributes.title', ''); if (empty($title)) { diff --git a/lib/classes/JsonApi/Routes/Forum/ForumEntriesUpdate.php b/lib/classes/JsonApi/Routes/Forum/ForumEntriesUpdate.php index 1165ff2d846..21eeba4c0df 100644 --- a/lib/classes/JsonApi/Routes/Forum/ForumEntriesUpdate.php +++ b/lib/classes/JsonApi/Routes/Forum/ForumEntriesUpdate.php @@ -60,7 +60,7 @@ class ForumEntriesUpdate extends JsonApiController return $entry; } - protected function validateResourceDocument($json) + protected function validateResourceDocument($json, $data) { $title = self::arrayGet($json, 'data.attributes.title'); $content = self::arrayGet($json, 'data.attributes.content'); diff --git a/lib/classes/JsonApi/Routes/Messages/MessageUpdate.php b/lib/classes/JsonApi/Routes/Messages/MessageUpdate.php index 5dcde5b4558..add12e4633b 100644 --- a/lib/classes/JsonApi/Routes/Messages/MessageUpdate.php +++ b/lib/classes/JsonApi/Routes/Messages/MessageUpdate.php @@ -37,7 +37,7 @@ class MessageUpdate extends JsonApiController return $this->getContentResponse($message); } - protected function validateResourceDocument($json) + protected function validateResourceDocument($json, $data) { if (!self::arrayHas($json, 'data')) { return 'Missing `data` member at message´s top level.'; diff --git a/lib/classes/JsonApi/Routes/News/NewsUpdate.php b/lib/classes/JsonApi/Routes/News/NewsUpdate.php index 269c4501e01..6b26c43f8b8 100644 --- a/lib/classes/JsonApi/Routes/News/NewsUpdate.php +++ b/lib/classes/JsonApi/Routes/News/NewsUpdate.php @@ -77,7 +77,7 @@ class NewsUpdate extends JsonApiController return $news; } - protected function validateResourceDocument($json, \StudipNews $news) + protected function validateResourceDocument($json, $data) { if (NewsSchema::TYPE !== self::arrayGet($json, 'data.type')) { return 'Missing or wrong type.'; -- GitLab