diff options
| author | Murtaza Sultani <sultani@data-quest.de> | 2025-07-28 17:23:38 +0200 |
|---|---|---|
| committer | Murtaza Sultani <sultani@data-quest.de> | 2025-07-28 17:23:38 +0200 |
| commit | 28a9e7237135aa6a4f6beb69bda09a28d52d31a4 (patch) | |
| tree | c4f9e6dcb68808fda7cb0b6c9899fd3ef777638a /app | |
| parent | 1352f30ea1a3fd4401e0e7eba988c560c7fc9585 (diff) | |
Resolve "Forum verwendet falsche Rechteabfragen in der JSON-API"
Closes #5753
Merge request studip/studip!4386
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/course/forum/BaseController.php (renamed from app/controllers/course/forum/ForumBaseController.php) | 2 | ||||
| -rw-r--r-- | app/controllers/course/forum/categories.php | 18 | ||||
| -rw-r--r-- | app/controllers/course/forum/configs.php | 4 | ||||
| -rw-r--r-- | app/controllers/course/forum/discussion_types.php | 10 | ||||
| -rw-r--r-- | app/controllers/course/forum/discussions.php | 50 | ||||
| -rw-r--r-- | app/controllers/course/forum/recent.php | 4 | ||||
| -rw-r--r-- | app/controllers/course/forum/search.php | 12 | ||||
| -rw-r--r-- | app/controllers/course/forum/subscriptions.php | 4 | ||||
| -rw-r--r-- | app/controllers/course/forum/topics.php | 26 | ||||
| -rw-r--r-- | app/views/course/forum/configs/edit.php | 1 | ||||
| -rw-r--r-- | app/views/course/forum/discussion_types/index.php | 7 |
11 files changed, 69 insertions, 69 deletions
diff --git a/app/controllers/course/forum/ForumBaseController.php b/app/controllers/course/forum/BaseController.php index 246a8b2..6525250 100644 --- a/app/controllers/course/forum/ForumBaseController.php +++ b/app/controllers/course/forum/BaseController.php @@ -10,7 +10,7 @@ use SearchWidget; use Sidebar; use StudipController; -abstract class ForumBaseController extends StudipController +abstract class BaseController extends StudipController { protected $with_session = true; diff --git a/app/controllers/course/forum/categories.php b/app/controllers/course/forum/categories.php index 4f9f324..8ed7950 100644 --- a/app/controllers/course/forum/categories.php +++ b/app/controllers/course/forum/categories.php @@ -1,9 +1,9 @@ <?php -require_once 'ForumBaseController.php'; +require_once 'BaseController.php'; -use Forum\ForumCategory; +use Forum\Category; -class Course_Forum_CategoriesController extends Forum\ForumBaseController +class Course_Forum_CategoriesController extends Forum\BaseController { public function before_filter(&$action, &$args) { @@ -25,7 +25,7 @@ class Course_Forum_CategoriesController extends Forum\ForumBaseController public function show_action($category_id) { - $category = ForumCategory::find($category_id); + $category = Category::find($category_id); if (!$category) { throw new AccessDeniedException(); @@ -54,14 +54,14 @@ class Course_Forum_CategoriesController extends Forum\ForumBaseController if ($category_id) { PageLayout::setTitle(_('Kategorie bearbeiten')); - $category = ForumCategory::findOneBySQL("range_id = ? AND category_id = ?", [$this->range_id, $category_id]); + $category = Category::findOneBySQL("range_id = ? AND category_id = ?", [$this->range_id, $category_id]); if (!$category) { throw new AccessDeniedException(); } } else { PageLayout::setTitle(_('Neue Kategorie anlegen')); - $category = new ForumCategory(); + $category = new Category(); } $this->render_vue_app( @@ -81,12 +81,12 @@ class Course_Forum_CategoriesController extends Forum\ForumBaseController CSRFProtection::verifyUnsafeRequest(); if ($category_id) { - $category = ForumCategory::findOneBySQL("range_id = ? AND category_id = ?", [$this->range_id, $category_id]); + $category = Category::findOneBySQL("range_id = ? AND category_id = ?", [$this->range_id, $category_id]); if (!$category) { throw new AccessDeniedException(); } } else { - $category = new ForumCategory(); + $category = new Category(); $category->range_id = $this->range_id; } @@ -107,7 +107,7 @@ class Course_Forum_CategoriesController extends Forum\ForumBaseController throw new AccessDeniedException(); } - $category = ForumCategory::findOneBySQL("range_id = ? AND category_id = ?", [$this->range_id, $category_id]); + $category = Category::findOneBySQL("range_id = ? AND category_id = ?", [$this->range_id, $category_id]); if (!$category) { throw new AccessDeniedException(); diff --git a/app/controllers/course/forum/configs.php b/app/controllers/course/forum/configs.php index 70fdb2b..209799f 100644 --- a/app/controllers/course/forum/configs.php +++ b/app/controllers/course/forum/configs.php @@ -1,7 +1,7 @@ <?php -require_once 'ForumBaseController.php'; +require_once 'BaseController.php'; -class Course_Forum_ConfigsController extends Forum\ForumBaseController +class Course_Forum_ConfigsController extends Forum\BaseController { public function before_filter(&$action, &$args) { diff --git a/app/controllers/course/forum/discussion_types.php b/app/controllers/course/forum/discussion_types.php index da4ea27..68005a5 100644 --- a/app/controllers/course/forum/discussion_types.php +++ b/app/controllers/course/forum/discussion_types.php @@ -1,5 +1,5 @@ <?php -use Forum\ForumDiscussionType; +use Forum\DiscussionType; class Course_Forum_DiscussionTypesController extends AuthenticatedController { @@ -26,10 +26,10 @@ class Course_Forum_DiscussionTypesController extends AuthenticatedController public function index_action() { - $this->discussion_types = ForumDiscussionType::findBySQL("TRUE ORDER BY mkdate DESC"); + $this->discussion_types = DiscussionType::findBySQL("TRUE ORDER BY mkdate DESC"); } - public function edit_action(ForumDiscussionType $discussion_type = null) + public function edit_action(DiscussionType $discussion_type = null) { if ($discussion_type->isNew()) { PageLayout::setTitle(_('Neuen Diskussionstyp anlegen')); @@ -58,7 +58,7 @@ class Course_Forum_DiscussionTypesController extends AuthenticatedController ); } - public function save_action(ForumDiscussionType $discussion_type = null) + public function save_action(DiscussionType $discussion_type = null) { CSRFProtection::verifyUnsafeRequest(); @@ -72,7 +72,7 @@ class Course_Forum_DiscussionTypesController extends AuthenticatedController $this->relocate('course/forum/discussion_types/index'); } - public function delete_action(ForumDiscussionType $discussion_type) + public function delete_action(DiscussionType $discussion_type) { $discussion_type->delete(); diff --git a/app/controllers/course/forum/discussions.php b/app/controllers/course/forum/discussions.php index e86940a..2463d6d 100644 --- a/app/controllers/course/forum/discussions.php +++ b/app/controllers/course/forum/discussions.php @@ -1,17 +1,17 @@ <?php -require_once 'ForumBaseController.php'; +require_once 'BaseController.php'; use Studip\Markup; -use Forum\ForumDiscussion; -use Forum\ForumDiscussionType; -use Forum\DTO\ForumMember; -use Forum\ForumPosting; -use Forum\ForumPostingRead; -use Forum\ForumSubscription; -use Forum\DTO\ForumTag; -use Forum\ForumTopic; - -class Course_Forum_DiscussionsController extends Forum\ForumBaseController +use Forum\Discussion; +use Forum\DiscussionType; +use Forum\Posting; +use Forum\PostingRead; +use Forum\Subscription; +use Forum\DTO\Member as MemberDTO; +use Forum\DTO\Tag as TagDTO; +use Forum\Topic; + +class Course_Forum_DiscussionsController extends Forum\BaseController { public function before_filter(&$action, &$args) { @@ -51,7 +51,7 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController public function show_action($discussion_id) { - $discussion = ForumDiscussion::find($discussion_id); + $discussion = Discussion::find($discussion_id); if (!$discussion) { throw new AccessDeniedException(); @@ -64,7 +64,7 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController $discussion->view_count += 1; $discussion->store(); - $posting_read = ForumPostingRead::findOneBySQL( + $posting_read = PostingRead::findOneBySQL( "discussion_id = :discussion_id AND user_id = :user_id", [ 'discussion_id' => $discussion->getId(), @@ -72,7 +72,7 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController ] ); - $user_subscription = ForumSubscription::findOneBySQL( + $user_subscription = Subscription::findOneBySQL( "subject = :subject AND subject_id = :subject_id AND user_id = :user_id", [ 'subject' => 'discussion', @@ -82,8 +82,8 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController ); $category = $discussion->getCategory(); - $tags = array_map(fn(ForumTag $tag) => $tag->toRawArray(), $discussion->tags); - $members = array_map(fn(ForumMember $member) => $member->toRawArray(), $discussion->members); + $tags = array_map(fn(TagDTO $tag) => $tag->toRawArray(), $discussion->tags); + $members = array_map(fn(MemberDTO $member) => $member->toRawArray(), $discussion->members); $this->render_vue_app( Studip\VueApp::create('forum/discussions/Show') @@ -110,7 +110,7 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController ); } - public function edit_action(ForumDiscussion $discussion = null) + public function edit_action(Discussion $discussion = null) { if ($discussion->isNew()) { PageLayout::setTitle(_('Neue Diskussion starten')); @@ -130,9 +130,9 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController ['range_id' => $this->range_id] ); - $all_tags = array_map(fn(ForumTag $tag) => $tag->toRawArray(), ForumTag::getForumTags()); - $discussion_tags = array_map(fn(ForumTag $tag) => $tag->toRawArray(), $discussion->tags); - $discussion_types = array_map(fn(ForumDiscussionType $discussion_type) => $discussion_type->toRawArray(), ForumDiscussionType::getForumDiscussionType()); + $all_tags = array_map(fn(TagDTO $tag) => $tag->toRawArray(), TagDTO::getForumTags()); + $discussion_tags = array_map(fn(TagDTO $tag) => $tag->toRawArray(), $discussion->tags); + $discussion_types = array_map(fn(DiscussionType $discussion_type) => $discussion_type->toRawArray(), DiscussionType::getForumDiscussionType()); $this->render_vue_app( Studip\VueApp::create('forum/discussions/Edit') @@ -154,9 +154,9 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController CSRFProtection::verifyUnsafeRequest(); if ($discussion_id) { - $discussion = ForumDiscussion::find($discussion_id); + $discussion = Discussion::find($discussion_id); } else { - $discussion = new ForumDiscussion(); + $discussion = new Discussion(); $discussion->user_id = User::findCurrent()->user_id; } @@ -173,7 +173,7 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController $topic = json_decode(Request::get('topic'), true); if (empty($topic['topic_id'])) { - $newTopic = ForumTopic::create([ + $newTopic = Topic::create([ 'range_id' => $this->range_id, 'name' => $topic['name'] ]); @@ -185,7 +185,7 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController $discussion->store(); if (!$discussion_id && Request::get('content')) { - ForumPosting::create([ + Posting::create([ 'range_id' => $this->range_id, 'discussion_id' => $discussion->discussion_id, 'content' => Markup::markAsHtml(Request::get('content')), @@ -222,7 +222,7 @@ class Course_Forum_DiscussionsController extends Forum\ForumBaseController public function delete_action($discussion_id) { - $discussion = ForumDiscussion::find($discussion_id); + $discussion = Discussion::find($discussion_id); if (!$discussion) { throw new AccessDeniedException(); diff --git a/app/controllers/course/forum/recent.php b/app/controllers/course/forum/recent.php index 2c3fda2..7a117cd 100644 --- a/app/controllers/course/forum/recent.php +++ b/app/controllers/course/forum/recent.php @@ -1,7 +1,7 @@ <?php -require_once 'ForumBaseController.php'; +require_once 'BaseController.php'; -class Course_Forum_RecentController extends Forum\ForumBaseController +class Course_Forum_RecentController extends Forum\BaseController { public function before_filter(&$action, &$args) { diff --git a/app/controllers/course/forum/search.php b/app/controllers/course/forum/search.php index b928803..f6fc223 100644 --- a/app/controllers/course/forum/search.php +++ b/app/controllers/course/forum/search.php @@ -1,10 +1,10 @@ <?php -require_once 'ForumBaseController.php'; +require_once 'BaseController.php'; -use Forum\ForumDiscussionType; -use Forum\DTO\ForumTag; +use Forum\DiscussionType; +use Forum\DTO\Tag as TagDTO; -class Course_Forum_SearchController extends Forum\ForumBaseController +class Course_Forum_SearchController extends Forum\BaseController { public function before_filter(&$action, &$args) { @@ -36,8 +36,8 @@ class Course_Forum_SearchController extends Forum\ForumBaseController ]; } - $tags = array_map(fn(ForumTag $tag) => $tag->toRawArray(), ForumTag::getForumTags()); - $discussion_types = array_map(fn(ForumDiscussionType $discussion_type) => $discussion_type->toRawArray(), ForumDiscussionType::getForumDiscussionType()); + $tags = array_map(fn(TagDTO $tag) => $tag->toRawArray(), TagDTO::getForumTags()); + $discussion_types = array_map(fn(DiscussionType $discussion_type) => $discussion_type->toRawArray(), DiscussionType::getForumDiscussionType()); $this->render_vue_app( Studip\VueApp::create('forum/search/Index') diff --git a/app/controllers/course/forum/subscriptions.php b/app/controllers/course/forum/subscriptions.php index 399c072..1f5582c 100644 --- a/app/controllers/course/forum/subscriptions.php +++ b/app/controllers/course/forum/subscriptions.php @@ -1,7 +1,7 @@ <?php -require_once 'ForumBaseController.php'; +require_once 'BaseController.php'; -class Course_Forum_SubscriptionsController extends Forum\ForumBaseController +class Course_Forum_SubscriptionsController extends Forum\BaseController { public function before_filter(&$action, &$args) { diff --git a/app/controllers/course/forum/topics.php b/app/controllers/course/forum/topics.php index a72da84..b6a1307 100644 --- a/app/controllers/course/forum/topics.php +++ b/app/controllers/course/forum/topics.php @@ -1,11 +1,11 @@ <?php -require_once 'ForumBaseController.php'; +require_once 'BaseController.php'; -use Forum\ForumCategory; -use Forum\ForumSubscription; -use Forum\ForumTopic; +use Forum\Category; +use Forum\Subscription; +use Forum\Topic; -class Course_Forum_TopicsController extends Forum\ForumBaseController +class Course_Forum_TopicsController extends Forum\BaseController { public function before_filter(&$action, &$args) { @@ -25,7 +25,7 @@ class Course_Forum_TopicsController extends Forum\ForumBaseController public function show_action($topic_id) { - $topic = ForumTopic::find($topic_id); + $topic = Topic::find($topic_id); if (!$topic) { throw new AccessDeniedException(); @@ -33,7 +33,7 @@ class Course_Forum_TopicsController extends Forum\ForumBaseController PageLayout::setTitle($topic->name); - $user_subscription = ForumSubscription::findOneBySQL( + $user_subscription = Subscription::findOneBySQL( "subject = :subject AND subject_id = :subject_id AND user_id = :user_id", [ 'subject' => 'topic', @@ -65,14 +65,14 @@ class Course_Forum_TopicsController extends Forum\ForumBaseController if ($topic_id) { PageLayout::setTitle(_('Thema bearbeiten')); - $topic = ForumTopic::getCourseTopic($this->range_id, $topic_id); + $topic = Topic::getCourseTopic($this->range_id, $topic_id); if (!$topic) { throw new AccessDeniedException(); } } else { PageLayout::setTitle(_('Neues Thema anlegen')); - $topic = new ForumTopic(); + $topic = new Topic(); $topic['category_id'] = Request::get('category_id'); } @@ -99,19 +99,19 @@ class Course_Forum_TopicsController extends Forum\ForumBaseController CSRFProtection::verifyUnsafeRequest(); if ($topic_id) { - $topic = ForumTopic::getCourseTopic($this->range_id, $topic_id); + $topic = Topic::getCourseTopic($this->range_id, $topic_id); if (!$topic) { throw new AccessDeniedException(); } } else { - $topic = new ForumTopic(); + $topic = new Topic(); $topic->range_id = $this->range_id; } $category = json_decode(Request::get('category'), true); if (empty($category['category_id']) && !empty($category['name'])) { - $newCategory = ForumCategory::create([ + $newCategory = Category::create([ 'range_id' => $this->range_id, 'color' => '#28497C', 'name' => $category['name'] @@ -142,7 +142,7 @@ class Course_Forum_TopicsController extends Forum\ForumBaseController throw new AccessDeniedException(); } - $topic = ForumTopic::getCourseTopic($this->range_id, $topic_id); + $topic = Topic::getCourseTopic($this->range_id, $topic_id); if (!$topic) { throw new AccessDeniedException(); diff --git a/app/views/course/forum/configs/edit.php b/app/views/course/forum/configs/edit.php index 59d7b1d..ceb23d8 100644 --- a/app/views/course/forum/configs/edit.php +++ b/app/views/course/forum/configs/edit.php @@ -4,6 +4,7 @@ * @var CourseConfig $config */ ?> + <form class="default" method="post" action="<?= $controller->url_for('course/forum/configs/save') ?>"> <?= CSRFProtection::tokenTag() ?> diff --git a/app/views/course/forum/discussion_types/index.php b/app/views/course/forum/discussion_types/index.php index a196342..c148d6b 100644 --- a/app/views/course/forum/discussion_types/index.php +++ b/app/views/course/forum/discussion_types/index.php @@ -1,11 +1,10 @@ <?php +use Forum\DiscussionType; + /** * @var Course_Forum_DiscussionTypesController $controller - * @var ForumDiscussionType[] $discussion_types + * @var DiscussionType[] $discussion_types */ - -use Forum\ForumDiscussionType; - ?> <div class="forum"> |
