diff options
| author | Murtaza Sultani <sultani@data-quest.de> | 2025-07-30 09:48:20 +0200 |
|---|---|---|
| committer | David Siegfried <david.siegfried@uni-vechta.de> | 2025-07-30 07:48:20 +0000 |
| commit | 8b5da1acae37d9bc983394c3f27508c24024d69b (patch) | |
| tree | 93360533b83eeff9f6c78e60cedadeb026bcad8e /lib/classes/JsonApi/Routes/Forum | |
| parent | d6ce47b2ea667524acafda4e539a81695158c07d (diff) | |
Resolve "Forum in freien Veranstaltungen sind nicht aufrufbar"issue-5760
Closes #5699
Merge request studip/studip!4371
Diffstat (limited to 'lib/classes/JsonApi/Routes/Forum')
| -rw-r--r-- | lib/classes/JsonApi/Routes/Forum/DiscussionPostings.php | 4 | ||||
| -rw-r--r-- | lib/classes/JsonApi/Routes/Forum/ForumAuthority.php | 14 | ||||
| -rw-r--r-- | lib/classes/JsonApi/Routes/Forum/PostingShow.php | 1 |
3 files changed, 18 insertions, 1 deletions
diff --git a/lib/classes/JsonApi/Routes/Forum/DiscussionPostings.php b/lib/classes/JsonApi/Routes/Forum/DiscussionPostings.php index 8b64021..b40e4c4 100644 --- a/lib/classes/JsonApi/Routes/Forum/DiscussionPostings.php +++ b/lib/classes/JsonApi/Routes/Forum/DiscussionPostings.php @@ -40,7 +40,9 @@ class DiscussionPostings extends JsonApiController $postings = $discussion->postings ?? \SimpleORMapCollection::createFromArray([]); - PostingRead::updateUserReadPoint($user->user_id, $discussion->discussion_id, count($postings)); + if ($user) { + PostingRead::updateUserReadPoint($user->user_id, $discussion->discussion_id, count($postings)); + } return $this->getPaginatedContentResponse( $postings->limit(...$this->getOffsetAndLimit()), diff --git a/lib/classes/JsonApi/Routes/Forum/ForumAuthority.php b/lib/classes/JsonApi/Routes/Forum/ForumAuthority.php new file mode 100644 index 0000000..0a0017f --- /dev/null +++ b/lib/classes/JsonApi/Routes/Forum/ForumAuthority.php @@ -0,0 +1,14 @@ +<?php + +namespace JsonApi\Routes\Forum; + +use Range; +use User; + +class ForumAuthority +{ + public static function canShowForum(Range $range, ?User $user = null): bool + { + return $range->isAccessibleToUser($user?->id); + } +} diff --git a/lib/classes/JsonApi/Routes/Forum/PostingShow.php b/lib/classes/JsonApi/Routes/Forum/PostingShow.php index c062169..730dc4f 100644 --- a/lib/classes/JsonApi/Routes/Forum/PostingShow.php +++ b/lib/classes/JsonApi/Routes/Forum/PostingShow.php @@ -12,6 +12,7 @@ class PostingShow extends JsonApiController { protected $allowedIncludePaths = [ \JsonApi\Schemas\Forum\Posting::REL_DISCUSSION, + \JsonApi\Schemas\Forum\Posting::REL_AUTHOR, \JsonApi\Schemas\Forum\Posting::REL_POSTING, \JsonApi\Schemas\Forum\Posting::REL_OPENGRAPH_URLS, \JsonApi\Schemas\Forum\Posting::REL_REACTIONS, |
