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

fix changes to method signature, fixes #2564

Closes #2564

Merge request studip/studip!1730
parent d1055fa6
No related branches found
No related tags found
No related merge requests found
Showing
with 31 additions and 27 deletions
...@@ -46,7 +46,7 @@ class CommentsCreate extends JsonApiController ...@@ -46,7 +46,7 @@ class CommentsCreate extends JsonApiController
return $this->getCreatedResponse($comment); return $this->getCreatedResponse($comment);
} }
protected function validateResourceDocument($json) protected function validateResourceDocument($json, $data)
{ {
if (empty(self::arrayGet($json, 'data.attributes.content'))) { if (empty(self::arrayGet($json, 'data.attributes.content'))) {
return 'Comment should not be empty.'; return 'Comment should not be empty.';
......
...@@ -44,7 +44,7 @@ class CommentsUpdate extends JsonApiController ...@@ -44,7 +44,7 @@ class CommentsUpdate extends JsonApiController
return $this->getCodeResponse(204); return $this->getCodeResponse(204);
} }
protected function validateResourceDocument($json) protected function validateResourceDocument($json, $data)
{ {
if (empty(self::arrayGet($json, 'data.attributes.content'))) { if (empty(self::arrayGet($json, 'data.attributes.content'))) {
return 'Comment should not be empty.'; return 'Comment should not be empty.';
......
...@@ -51,7 +51,7 @@ class ThreadsCreate extends JsonApiController ...@@ -51,7 +51,7 @@ class ThreadsCreate extends JsonApiController
return $this->getCreatedResponse($thread); return $this->getCreatedResponse($thread);
} }
protected function validateResourceDocument($json) protected function validateResourceDocument($json, $data)
{ {
if (Schema::TYPE !== self::arrayGet($json, 'data.type')) { if (Schema::TYPE !== self::arrayGet($json, 'data.type')) {
return 'Missing or wrong type.'; return 'Missing or wrong type.';
......
...@@ -41,7 +41,7 @@ class ConfigValuesUpdate extends JsonApiController ...@@ -41,7 +41,7 @@ class ConfigValuesUpdate extends JsonApiController
return $this->getContentResponse($resource); return $this->getContentResponse($resource);
} }
protected function validateResourceDocument($json, $resource) protected function validateResourceDocument($json, $data)
{ {
if (!self::arrayHas($json, 'data')) { if (!self::arrayHas($json, 'data')) {
return 'Missing `data` member at document´s top level.'; return 'Missing `data` member at document´s top level.';
...@@ -55,7 +55,7 @@ class ConfigValuesUpdate extends JsonApiController ...@@ -55,7 +55,7 @@ class ConfigValuesUpdate extends JsonApiController
return 'Document must have an `id`.'; 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`.'; return 'Mismatch between URI parameter and document `id`.';
} }
......
...@@ -70,7 +70,7 @@ class CourseMembershipsUpdate extends JsonApiController ...@@ -70,7 +70,7 @@ class CourseMembershipsUpdate extends JsonApiController
return $membership; return $membership;
} }
protected function validateResourceDocument($json, \CourseMember $membership) protected function validateResourceDocument($json, $data)
{ {
if (CourseMemberSchema::TYPE !== self::arrayGet($json, 'data.type')) { if (CourseMemberSchema::TYPE !== self::arrayGet($json, 'data.type')) {
return 'Missing or wrong type.'; return 'Missing or wrong type.';
...@@ -93,7 +93,11 @@ class CourseMembershipsUpdate extends JsonApiController ...@@ -93,7 +93,11 @@ class CourseMembershipsUpdate extends JsonApiController
return 'Attribute `visible` must be either `yes` or `no`'; 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.'; return 'Users of status `tutor` or `dozent` must remain visible.';
} }
} }
......
...@@ -40,7 +40,7 @@ class CoursewareInstancesUpdate extends JsonApiController ...@@ -40,7 +40,7 @@ class CoursewareInstancesUpdate extends JsonApiController
/** /**
* @SuppressWarnings(PHPMD.UnusedFormalParameters) * @SuppressWarnings(PHPMD.UnusedFormalParameters)
*/ */
protected function validateResourceDocument($json, $resource) protected function validateResourceDocument($json, $data)
{ {
if (!self::arrayHas($json, 'data')) { if (!self::arrayHas($json, 'data')) {
return 'Missing `data` member at document´s top level.'; return 'Missing `data` member at document´s top level.';
...@@ -61,7 +61,7 @@ class CoursewareInstancesUpdate extends JsonApiController ...@@ -61,7 +61,7 @@ class CoursewareInstancesUpdate extends JsonApiController
} }
$blockTypes = array_map(function ($blockType) { $blockTypes = array_map(function ($blockType) {
return $blockType::getType(); return $blockType::getType();
}, $resource->getBlockTypes()); }, $data->getBlockTypes());
foreach ($favoriteBlockTypes as $favoriteBlockType) { foreach ($favoriteBlockTypes as $favoriteBlockType) {
if (!in_array($favoriteBlockType, $blockTypes)) { if (!in_array($favoriteBlockType, $blockTypes)) {
return 'Attribute `favorite-block-types` contains an invalid block type.'; return 'Attribute `favorite-block-types` contains an invalid block type.';
...@@ -79,7 +79,7 @@ class CoursewareInstancesUpdate extends JsonApiController ...@@ -79,7 +79,7 @@ class CoursewareInstancesUpdate extends JsonApiController
if (!is_string($editingPermissionLevel)) { if (!is_string($editingPermissionLevel)) {
return 'Attribute `editing-permission-level` must be a string.'; 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.'; return 'Attribute `editing-permission-level` contains an invalid value.';
} }
} }
...@@ -87,7 +87,7 @@ class CoursewareInstancesUpdate extends JsonApiController ...@@ -87,7 +87,7 @@ class CoursewareInstancesUpdate extends JsonApiController
if (self::arrayHas($json, 'data.attributes.certificate-settings')) { if (self::arrayHas($json, 'data.attributes.certificate-settings')) {
$certificateSettings = self::arrayGet($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.'; return 'Attribute `certificate-settings` contains an invalid value.';
} }
} }
...@@ -95,7 +95,7 @@ class CoursewareInstancesUpdate extends JsonApiController ...@@ -95,7 +95,7 @@ class CoursewareInstancesUpdate extends JsonApiController
if (self::arrayHas($json, 'data.attributes.reminder-settings')) { if (self::arrayHas($json, 'data.attributes.reminder-settings')) {
$reminderSettings = self::arrayGet($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.'; return 'Attribute `reminder-settings` contains an invalid value.';
} }
} }
...@@ -103,7 +103,7 @@ class CoursewareInstancesUpdate extends JsonApiController ...@@ -103,7 +103,7 @@ class CoursewareInstancesUpdate extends JsonApiController
if (self::arrayHas($json, 'data.attributes.reset-progress-settings')) { if (self::arrayHas($json, 'data.attributes.reset-progress-settings')) {
$resetProgressSettings = self::arrayGet($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.'; return 'Attribute `reset-progress-settings` contains an invalid value.';
} }
} }
......
...@@ -39,7 +39,7 @@ class StructuralElementsUpdate extends JsonApiController ...@@ -39,7 +39,7 @@ class StructuralElementsUpdate extends JsonApiController
/** /**
* @SuppressWarnings(PHPMD.UnusedFormalParameters) * @SuppressWarnings(PHPMD.UnusedFormalParameters)
*/ */
protected function validateResourceDocument($json, $resource) protected function validateResourceDocument($json, $data)
{ {
if (!self::arrayHas($json, 'data')) { if (!self::arrayHas($json, 'data')) {
return 'Missing `data` member at document´s top level.'; return 'Missing `data` member at document´s top level.';
...@@ -55,7 +55,7 @@ class StructuralElementsUpdate extends JsonApiController ...@@ -55,7 +55,7 @@ class StructuralElementsUpdate extends JsonApiController
if (self::arrayHas($json, 'data.relationships.parent')) { if (self::arrayHas($json, 'data.relationships.parent')) {
// Sonderfall: Wurzel hat kein parent und kann auch nicht verändert werden // 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')) { if (null !== self::arrayGet($json, 'data.relationships.parent.data')) {
return 'Cannot modify `parent` of a root node.'; return 'Cannot modify `parent` of a root node.';
} }
...@@ -70,7 +70,7 @@ class StructuralElementsUpdate extends JsonApiController ...@@ -70,7 +70,7 @@ class StructuralElementsUpdate extends JsonApiController
// keine Schleifen // keine Schleifen
if ( if (
in_array( in_array(
$resource->id, $data->id,
array_merge( array_merge(
[$parent->id], [$parent->id],
array_map(function ($ancestor) { array_map(function ($ancestor) {
......
...@@ -43,7 +43,7 @@ class UnitsUpdate extends JsonApiController ...@@ -43,7 +43,7 @@ class UnitsUpdate extends JsonApiController
/** /**
* @SuppressWarnings(PHPMD.UnusedFormalParameters) * @SuppressWarnings(PHPMD.UnusedFormalParameters)
*/ */
protected function validateResourceDocument($json, $resource) protected function validateResourceDocument($json, $data)
{ {
if (!self::arrayHas($json, 'data')) { if (!self::arrayHas($json, 'data')) {
return 'Missing `data` member at document´s top level.'; return 'Missing `data` member at document´s top level.';
......
...@@ -66,9 +66,9 @@ class FileRefsUpdate extends JsonApiController ...@@ -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; return $err;
} }
} }
......
...@@ -66,9 +66,9 @@ class FoldersUpdate extends JsonApiController ...@@ -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; return $err;
} }
} }
......
...@@ -11,7 +11,7 @@ abstract class AbstractEntriesCreate extends JsonApiController ...@@ -11,7 +11,7 @@ abstract class AbstractEntriesCreate extends JsonApiController
{ {
use ValidationTrait; use ValidationTrait;
protected function validateResourceDocument($json) protected function validateResourceDocument($json, $data)
{ {
$content = self::arrayHas($json, 'data.attributes.title'); $content = self::arrayHas($json, 'data.attributes.title');
if (empty($content)) { if (empty($content)) {
......
...@@ -51,7 +51,7 @@ class ForumCategoriesCreate extends JsonApiController ...@@ -51,7 +51,7 @@ class ForumCategoriesCreate extends JsonApiController
return $category; return $category;
} }
protected function validateResourceDocument($json) protected function validateResourceDocument($json, $data)
{ {
$title = self::arrayGet($json, 'data.attributes.title', ''); $title = self::arrayGet($json, 'data.attributes.title', '');
if (empty($title)) { if (empty($title)) {
......
...@@ -53,7 +53,7 @@ class ForumCategoriesUpdate extends JsonApiController ...@@ -53,7 +53,7 @@ class ForumCategoriesUpdate extends JsonApiController
} }
} }
protected function validateResourceDocument($json) protected function validateResourceDocument($json, $data)
{ {
$title = self::arrayGet($json, 'data.attributes.title', ''); $title = self::arrayGet($json, 'data.attributes.title', '');
if (empty($title)) { if (empty($title)) {
......
...@@ -60,7 +60,7 @@ class ForumEntriesUpdate extends JsonApiController ...@@ -60,7 +60,7 @@ class ForumEntriesUpdate extends JsonApiController
return $entry; return $entry;
} }
protected function validateResourceDocument($json) protected function validateResourceDocument($json, $data)
{ {
$title = self::arrayGet($json, 'data.attributes.title'); $title = self::arrayGet($json, 'data.attributes.title');
$content = self::arrayGet($json, 'data.attributes.content'); $content = self::arrayGet($json, 'data.attributes.content');
......
...@@ -37,7 +37,7 @@ class MessageUpdate extends JsonApiController ...@@ -37,7 +37,7 @@ class MessageUpdate extends JsonApiController
return $this->getContentResponse($message); return $this->getContentResponse($message);
} }
protected function validateResourceDocument($json) protected function validateResourceDocument($json, $data)
{ {
if (!self::arrayHas($json, 'data')) { if (!self::arrayHas($json, 'data')) {
return 'Missing `data` member at message´s top level.'; return 'Missing `data` member at message´s top level.';
......
...@@ -77,7 +77,7 @@ class NewsUpdate extends JsonApiController ...@@ -77,7 +77,7 @@ class NewsUpdate extends JsonApiController
return $news; return $news;
} }
protected function validateResourceDocument($json, \StudipNews $news) protected function validateResourceDocument($json, $data)
{ {
if (NewsSchema::TYPE !== self::arrayGet($json, 'data.type')) { if (NewsSchema::TYPE !== self::arrayGet($json, 'data.type')) {
return 'Missing or wrong type.'; return 'Missing or wrong type.';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment