aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMurtaza Sultani <sultani@data-quest.de>2025-07-28 17:23:38 +0200
committerMurtaza Sultani <sultani@data-quest.de>2025-07-28 17:23:38 +0200
commit28a9e7237135aa6a4f6beb69bda09a28d52d31a4 (patch)
treec4f9e6dcb68808fda7cb0b6c9899fd3ef777638a /app
parent1352f30ea1a3fd4401e0e7eba988c560c7fc9585 (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.php18
-rw-r--r--app/controllers/course/forum/configs.php4
-rw-r--r--app/controllers/course/forum/discussion_types.php10
-rw-r--r--app/controllers/course/forum/discussions.php50
-rw-r--r--app/controllers/course/forum/recent.php4
-rw-r--r--app/controllers/course/forum/search.php12
-rw-r--r--app/controllers/course/forum/subscriptions.php4
-rw-r--r--app/controllers/course/forum/topics.php26
-rw-r--r--app/views/course/forum/configs/edit.php1
-rw-r--r--app/views/course/forum/discussion_types/index.php7
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">