aboutsummaryrefslogtreecommitdiff
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
parent1352f30ea1a3fd4401e0e7eba988c560c7fc9585 (diff)
Resolve "Forum verwendet falsche Rechteabfragen in der JSON-API"
Closes #5753 Merge request studip/studip!4386
-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
-rw-r--r--lib/classes/Forum/DTO/Member.php (renamed from lib/classes/Forum/DTO/ForumMember.php)2
-rw-r--r--lib/classes/Forum/DTO/Tag.php (renamed from lib/classes/Forum/DTO/ForumTag.php)2
-rw-r--r--lib/classes/Forum/Service/DiscussionNotification.php16
-rw-r--r--lib/classes/Forum/Service/PostingNotification.php24
-rw-r--r--lib/classes/JsonApi/RouteMap.php53
-rw-r--r--lib/classes/JsonApi/Routes/Forum/Authority.php13
-rw-r--r--lib/classes/JsonApi/Routes/Forum/CategoryIndex.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumCategoryIndex.php)11
-rw-r--r--lib/classes/JsonApi/Routes/Forum/CategoryShow.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumCategoryShow.php)11
-rw-r--r--lib/classes/JsonApi/Routes/Forum/CategoryTopics.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumCategoryTopics.php)11
-rw-r--r--lib/classes/JsonApi/Routes/Forum/CategoryUpdateSort.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumCategoryUpdateSort.php)8
-rw-r--r--lib/classes/JsonApi/Routes/Forum/ConfigIndex.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumConfigIndex.php)5
-rw-r--r--lib/classes/JsonApi/Routes/Forum/DiscussionIndex.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumDiscussionIndex.php)21
-rw-r--r--lib/classes/JsonApi/Routes/Forum/DiscussionPostings.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumDiscussionPostings.php)25
-rw-r--r--lib/classes/JsonApi/Routes/Forum/DiscussionShow.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumDiscussionShow.php)17
-rw-r--r--lib/classes/JsonApi/Routes/Forum/DiscussionTypeIndex.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeIndex.php)8
-rw-r--r--lib/classes/JsonApi/Routes/Forum/DiscussionTypeShow.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeShow.php)8
-rw-r--r--lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeDiscussions.php32
-rw-r--r--lib/classes/JsonApi/Routes/Forum/PostingDelete.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumPostingDelete.php)6
-rw-r--r--lib/classes/JsonApi/Routes/Forum/PostingReactionDelete.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumPostingReactionDelete.php)6
-rw-r--r--lib/classes/JsonApi/Routes/Forum/PostingReactionShow.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumPostingReactionShow.php)10
-rw-r--r--lib/classes/JsonApi/Routes/Forum/PostingReactionStore.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumPostingReactionStore.php)15
-rw-r--r--lib/classes/JsonApi/Routes/Forum/PostingReactions.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumPostingReactions.php)13
-rw-r--r--lib/classes/JsonApi/Routes/Forum/PostingShow.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumPostingShow.php)19
-rw-r--r--lib/classes/JsonApi/Routes/Forum/PostingStore.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumPostingStore.php)35
-rw-r--r--lib/classes/JsonApi/Routes/Forum/PostingUpdate.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumPostingUpdate.php)18
-rw-r--r--lib/classes/JsonApi/Routes/Forum/SubscriptionDelete.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumSubscriptionDelete.php)6
-rw-r--r--lib/classes/JsonApi/Routes/Forum/SubscriptionIndex.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumSubscriptionIndex.php)15
-rw-r--r--lib/classes/JsonApi/Routes/Forum/SubscriptionShow.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumSubscriptionShow.php)12
-rw-r--r--lib/classes/JsonApi/Routes/Forum/SubscriptionStore.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumSubscriptionStore.php)12
-rw-r--r--lib/classes/JsonApi/Routes/Forum/TopicDiscussions.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumTopicDiscussions.php)21
-rw-r--r--lib/classes/JsonApi/Routes/Forum/TopicIndex.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumTopicIndex.php)11
-rw-r--r--lib/classes/JsonApi/Routes/Forum/TopicShow.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumTopicShow.php)9
-rw-r--r--lib/classes/JsonApi/Routes/Forum/TopicUpdateSort.php (renamed from lib/classes/JsonApi/Routes/Forum/ForumTopicUpdateSort.php)8
-rw-r--r--lib/classes/JsonApi/Routes/Institutes/Authority.php5
-rw-r--r--lib/classes/JsonApi/Routes/RangeAuthority.php41
-rw-r--r--lib/classes/JsonApi/SchemaMap.php18
-rw-r--r--lib/classes/JsonApi/Schemas/Activity.php2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/Category.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumCategory.php)2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/Discussion.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumDiscussion.php)2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/DiscussionType.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumDiscussionType.php)2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/Member.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumMember.php)2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/Posting.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumPosting.php)2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/PostingReaction.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumPostingReaction.php)2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/Subscription.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumSubscription.php)2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/Tag.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumTag.php)2
-rw-r--r--lib/classes/JsonApi/Schemas/Forum/Topic.php (renamed from lib/classes/JsonApi/Schemas/Forum/ForumTopic.php)10
-rw-r--r--lib/classes/Privacy.php2
-rw-r--r--lib/classes/Siteinfo.php2
-rw-r--r--lib/middleware/LegacyRedirectorMiddleware.php4
-rw-r--r--lib/models/CourseTopic.php4
-rw-r--r--lib/models/Forum/Category.php (renamed from lib/models/Forum/ForumCategory.php)10
-rw-r--r--lib/models/Forum/Discussion.php (renamed from lib/models/Forum/ForumDiscussion.php)48
-rw-r--r--lib/models/Forum/DiscussionType.php (renamed from lib/models/Forum/ForumDiscussionType.php)10
-rw-r--r--lib/models/Forum/Posting.php (renamed from lib/models/Forum/ForumPosting.php)26
-rw-r--r--lib/models/Forum/PostingReaction.php (renamed from lib/models/Forum/ForumPostingReaction.php)6
-rw-r--r--lib/models/Forum/PostingRead.php (renamed from lib/models/Forum/ForumPostingRead.php)12
-rw-r--r--lib/models/Forum/Subscription.php (renamed from lib/models/Forum/ForumSubscription.php)14
-rw-r--r--lib/models/Forum/Topic.php (renamed from lib/models/Forum/ForumTopic.php)22
-rw-r--r--lib/models/User.php6
-rw-r--r--lib/modules/CoreForum.php8
71 files changed, 406 insertions, 481 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">
diff --git a/lib/classes/Forum/DTO/ForumMember.php b/lib/classes/Forum/DTO/Member.php
index a6f4ea4..2e32b9a 100644
--- a/lib/classes/Forum/DTO/ForumMember.php
+++ b/lib/classes/Forum/DTO/Member.php
@@ -5,7 +5,7 @@ use Avatar;
use Context;
use User;
-class ForumMember
+class Member
{
public function __construct(
public string $id,
diff --git a/lib/classes/Forum/DTO/ForumTag.php b/lib/classes/Forum/DTO/Tag.php
index ca0e045..93050ba 100644
--- a/lib/classes/Forum/DTO/ForumTag.php
+++ b/lib/classes/Forum/DTO/Tag.php
@@ -3,7 +3,7 @@ namespace Forum\DTO;
use DBManager;
-class ForumTag
+class Tag
{
public function __construct(
public string $id,
diff --git a/lib/classes/Forum/Service/DiscussionNotification.php b/lib/classes/Forum/Service/DiscussionNotification.php
index c3dcfe8..0daaffb 100644
--- a/lib/classes/Forum/Service/DiscussionNotification.php
+++ b/lib/classes/Forum/Service/DiscussionNotification.php
@@ -4,17 +4,17 @@ namespace Forum\Service;
use Forum\Enum\SubscriptionNotificationType;
use Icon;
use PersonalNotifications;
-use Forum\ForumDiscussion;
-use Forum\ForumSubscription;
-use Forum\ForumTopic;
+use Forum\Discussion;
+use Forum\Subscription;
+use Forum\Topic;
use URLHelper;
class DiscussionNotification
{
- protected ForumTopic $topic;
- protected ForumDiscussion $discussion;
+ protected Topic $topic;
+ protected Discussion $discussion;
- public function __construct(ForumDiscussion $discussion)
+ public function __construct(Discussion $discussion)
{
$this->discussion = $discussion;
$this->topic = $discussion->topic;
@@ -31,7 +31,7 @@ class DiscussionNotification
protected function getSubscribers(): array
{
- return ForumSubscription::findBySQL(
+ return Subscription::findBySQL(
"subject = :subject AND subject_id = :subject_id AND notification_type = :notification_type",
[
'subject' => 'topic',
@@ -41,7 +41,7 @@ class DiscussionNotification
);
}
- protected function sendNotifications(ForumSubscription $subscriber): void
+ protected function sendNotifications(Subscription $subscriber): void
{
$url = URLHelper::getURL('dispatch.php/course/forum/discussions/show/'.$this->discussion->discussion_id, ['cid' => $this->topic->range_id], true);
diff --git a/lib/classes/Forum/Service/PostingNotification.php b/lib/classes/Forum/Service/PostingNotification.php
index 5e46535..9f6d82f 100644
--- a/lib/classes/Forum/Service/PostingNotification.php
+++ b/lib/classes/Forum/Service/PostingNotification.php
@@ -4,19 +4,19 @@ namespace Forum\Service;
use Forum\Enum\SubscriptionNotificationType;
use Icon;
use PersonalNotifications;
-use Forum\ForumDiscussion;
-use Forum\ForumPosting;
-use Forum\ForumSubscription;
-use Forum\ForumTopic;
+use Forum\Discussion;
+use Forum\Posting;
+use Forum\Subscription;
+use Forum\Topic;
use URLHelper;
class PostingNotification
{
- protected ForumPosting $posting;
- protected ForumDiscussion $discussion;
- protected ForumTopic $topic;
+ protected Posting $posting;
+ protected Discussion $discussion;
+ protected Topic $topic;
- public function __construct(ForumPosting $posting)
+ public function __construct(Posting $posting)
{
$this->posting = $posting;
$this->topic = $posting->discussion->topic;
@@ -60,7 +60,7 @@ class PostingNotification
$query[1]['user_id'] = $excludeUserId;
}
- $subscriptions = ForumSubscription::findBySQL(...$query);
+ $subscriptions = Subscription::findBySQL(...$query);
/**
* Allow only one subscription per user.
@@ -89,7 +89,7 @@ class PostingNotification
return array_values($filteredSubscriptions);
}
- protected function sendNotifications(ForumSubscription $subscriber): void
+ protected function sendNotifications(Subscription $subscriber): void
{
$url = URLHelper::getURL('dispatch.php/course/forum/discussions/show/'.$this->discussion->discussion_id, ['cid' => $this->topic->range_id], true)."#post_" . $this->posting->posting_id;
@@ -107,11 +107,11 @@ class PostingNotification
);
}
- protected function notifyParentPostAuthor(): ?ForumSubscription
+ protected function notifyParentPostAuthor(): ?Subscription
{
$parent = $this->posting->posting;
- $subscriber = ForumSubscription::findOneBySQL(
+ $subscriber = Subscription::findOneBySQL(
"range_id = :range_id AND subject_id IN (:subject_ids) AND user_id = :user_id AND notification_type != :notification_type ORDER BY subject",
[
'range_id' => $parent->range_id,
diff --git a/lib/classes/JsonApi/RouteMap.php b/lib/classes/JsonApi/RouteMap.php
index 176c1ea..235f4b6 100644
--- a/lib/classes/JsonApi/RouteMap.php
+++ b/lib/classes/JsonApi/RouteMap.php
@@ -674,54 +674,53 @@ class RouteMap
private function addAuthenticatedForumRoutes(RouteCollectorProxy $group): void
{
$group->group('/courses/{range_id}', function ($forum) {
- $forum->get('/forum-configs', Routes\Forum\ForumConfigIndex::class);
- $forum->get('/forum-categories', Routes\Forum\ForumCategoryIndex::class);
- $forum->get('/forum-discussions', Routes\Forum\ForumDiscussionIndex::class);
- $forum->get('/forum-topics', Routes\Forum\ForumTopicIndex::class);
- $forum->get('/forum-subscriptions', Routes\Forum\ForumSubscriptionIndex::class);
+ $forum->get('/forum-configs', Routes\Forum\ConfigIndex::class);
+ $forum->get('/forum-categories', Routes\Forum\CategoryIndex::class);
+ $forum->get('/forum-discussions', Routes\Forum\DiscussionIndex::class);
+ $forum->get('/forum-topics', Routes\Forum\TopicIndex::class);
+ $forum->get('/forum-subscriptions', Routes\Forum\SubscriptionIndex::class);
});
$group->group('/forum-subscriptions', function ($forum) {
- $forum->post('', Routes\Forum\ForumSubscriptionStore::class);
- $forum->get('/{subscription_id}', Routes\Forum\ForumSubscriptionShow::class);
- $forum->delete('/{subscription_id}', Routes\Forum\ForumSubscriptionDelete::class);
+ $forum->post('', Routes\Forum\SubscriptionStore::class);
+ $forum->get('/{subscription_id}', Routes\Forum\SubscriptionShow::class);
+ $forum->delete('/{subscription_id}', Routes\Forum\SubscriptionDelete::class);
});
$group->group('/forum-topics', function ($forum) {
- $forum->get('/{topic_id}', Routes\Forum\ForumTopicShow::class);
- $forum->get('/{topic_id}/discussions', Routes\Forum\ForumTopicDiscussions::class);
- $forum->patch('/sort', Routes\Forum\ForumTopicUpdateSort::class);
+ $forum->get('/{topic_id}', Routes\Forum\TopicShow::class);
+ $forum->get('/{topic_id}/discussions', Routes\Forum\TopicDiscussions::class);
+ $forum->patch('/sort', Routes\Forum\TopicUpdateSort::class);
});
$group->group('/forum-categories', function ($forum) {
- $forum->get('/{category_id}', Routes\Forum\ForumCategoryShow::class);
- $forum->get('/{category_id}/topics', Routes\Forum\ForumCategoryTopics::class);
- $forum->patch('/sort', Routes\Forum\ForumCategoryUpdateSort::class);
+ $forum->get('/{category_id}', Routes\Forum\CategoryShow::class);
+ $forum->get('/{category_id}/topics', Routes\Forum\CategoryTopics::class);
+ $forum->patch('/sort', Routes\Forum\CategoryUpdateSort::class);
});
$group->group('/forum-discussion-types', function ($forum) {
- $forum->get('', Routes\Forum\ForumDiscussionTypeIndex::class);
- $forum->get('/{type_id}', Routes\Forum\ForumDiscussionTypeShow::class);
- $forum->get('/{type_id}/discussions', Routes\Forum\ForumDiscussionTypeDiscussions::class);
+ $forum->get('', Routes\Forum\DiscussionTypeIndex::class);
+ $forum->get('/{type_id}', Routes\Forum\DiscussionTypeShow::class);
});
$group->group('/forum-discussions', function ($forum) {
- $forum->get('/{discussion_id}', Routes\Forum\ForumDiscussionShow::class);
- $forum->get('/{discussion_id}/postings', Routes\Forum\ForumDiscussionPostings::class);
+ $forum->get('/{discussion_id}', Routes\Forum\DiscussionShow::class);
+ $forum->get('/{discussion_id}/postings', Routes\Forum\DiscussionPostings::class);
});
$group->group('/forum-postings', function ($forum) {
- $forum->post('', Routes\Forum\ForumPostingStore::class);
- $forum->get('/{posting_id}', Routes\Forum\ForumPostingShow::class);
- $forum->get('/{posting_id}/reactions', Routes\Forum\ForumPostingReactions::class);
- $forum->patch('/{posting_id}', Routes\Forum\ForumPostingUpdate::class);
- $forum->delete('/{posting_id}', Routes\Forum\ForumPostingDelete::class);
+ $forum->post('', Routes\Forum\PostingStore::class);
+ $forum->get('/{posting_id}', Routes\Forum\PostingShow::class);
+ $forum->get('/{posting_id}/reactions', Routes\Forum\PostingReactions::class);
+ $forum->patch('/{posting_id}', Routes\Forum\PostingUpdate::class);
+ $forum->delete('/{posting_id}', Routes\Forum\PostingDelete::class);
});
$group->group('/forum-posting-reactions', function ($forum) {
- $forum->post('', Routes\Forum\ForumPostingReactionStore::class);
- $forum->get('/{reaction_id}', Routes\Forum\ForumPostingReactionShow::class);
- $forum->delete('/{reaction_id}', Routes\Forum\ForumPostingReactionDelete::class);
+ $forum->post('', Routes\Forum\PostingReactionStore::class);
+ $forum->get('/{reaction_id}', Routes\Forum\PostingReactionShow::class);
+ $forum->delete('/{reaction_id}', Routes\Forum\PostingReactionDelete::class);
});
}
diff --git a/lib/classes/JsonApi/Routes/Forum/Authority.php b/lib/classes/JsonApi/Routes/Forum/Authority.php
new file mode 100644
index 0000000..95091a0
--- /dev/null
+++ b/lib/classes/JsonApi/Routes/Forum/Authority.php
@@ -0,0 +1,13 @@
+<?php
+namespace JsonApi\Routes\Forum;
+
+use Range;
+use User;
+
+class Authority
+{
+ public static function canShowForum(?User $user, Range $range): bool
+ {
+ return $range->isAccessibleToUser($user?->user_id);
+ }
+}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumCategoryIndex.php b/lib/classes/JsonApi/Routes/Forum/CategoryIndex.php
index 9518736..caa3c7f 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumCategoryIndex.php
+++ b/lib/classes/JsonApi/Routes/Forum/CategoryIndex.php
@@ -3,17 +3,16 @@ namespace JsonApi\Routes\Forum;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumCategory;
+use Forum\Category;
-class ForumCategoryIndex extends JsonApiController
+class CategoryIndex extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumCategory::REL_TOPICS
+ \JsonApi\Schemas\Forum\Category::REL_TOPICS
];
public function __invoke(Request $request, Response $response, $args)
@@ -24,11 +23,11 @@ class ForumCategoryIndex extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
- $categories = ForumCategory::getCourseCategories($range->id);
+ $categories = Category::getCourseCategories($range->id);
return $this->getPaginatedContentResponse(
array_slice($categories, ...$this->getOffsetAndLimit()),
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumCategoryShow.php b/lib/classes/JsonApi/Routes/Forum/CategoryShow.php
index f0ee1e1..4014536 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumCategoryShow.php
+++ b/lib/classes/JsonApi/Routes/Forum/CategoryShow.php
@@ -1,23 +1,22 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumCategory;
+use Forum\Category;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-class ForumCategoryShow extends JsonApiController
+class CategoryShow extends JsonApiController
{
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumCategory::REL_TOPICS
+ \JsonApi\Schemas\Forum\Category::REL_TOPICS
];
public function __invoke(Request $request, Response $response, $args)
{
- $category = ForumCategory::find($args['category_id']);
+ $category = Category::find($args['category_id']);
if (!$category) {
throw new RecordNotFoundException();
}
@@ -28,7 +27,7 @@ class ForumCategoryShow extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumCategoryTopics.php b/lib/classes/JsonApi/Routes/Forum/CategoryTopics.php
index cfa7937..10d47b4 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumCategoryTopics.php
+++ b/lib/classes/JsonApi/Routes/Forum/CategoryTopics.php
@@ -2,23 +2,22 @@
namespace JsonApi\Routes\Forum;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
-use Forum\ForumCategory;
+use Forum\Category;
-class ForumCategoryTopics extends JsonApiController
+class CategoryTopics extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumCategory::REL_TOPICS
+ \JsonApi\Schemas\Forum\Category::REL_TOPICS
];
public function __invoke(Request $request, Response $response, $args)
{
- $category = ForumCategory::find($args['category_id']);
+ $category = Category::find($args['category_id']);
if (!$category) {
throw new RecordNotFoundException();
}
@@ -29,7 +28,7 @@ class ForumCategoryTopics extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumCategoryUpdateSort.php b/lib/classes/JsonApi/Routes/Forum/CategoryUpdateSort.php
index 39fbb9d..b1eb6b2 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumCategoryUpdateSort.php
+++ b/lib/classes/JsonApi/Routes/Forum/CategoryUpdateSort.php
@@ -8,9 +8,9 @@ use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use Forum\ForumCategory;
+use Forum\Category;
-class ForumCategoryUpdateSort extends JsonApiController
+class CategoryUpdateSort extends JsonApiController
{
use ValidationTrait;
@@ -30,8 +30,8 @@ class ForumCategoryUpdateSort extends JsonApiController
$category_ids = self::arrayGet($json, 'data.attributes.category-ids');
- ForumCategory::findEachBySQL(
- function (ForumCategory $category) use ($category_ids) {
+ Category::findEachBySQL(
+ function (Category $category) use ($category_ids) {
$category->position = (int) array_search($category->category_id, $category_ids);
$category->store();
},
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumConfigIndex.php b/lib/classes/JsonApi/Routes/Forum/ConfigIndex.php
index 507e2de..8383608 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumConfigIndex.php
+++ b/lib/classes/JsonApi/Routes/Forum/ConfigIndex.php
@@ -4,7 +4,6 @@ namespace JsonApi\Routes\Forum;
use Config;
use CoreForum;
-use JsonApi\Routes\RangeAuthority;
use UserConfig;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
@@ -12,7 +11,7 @@ use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-class ForumConfigIndex extends JsonApiController
+class ConfigIndex extends JsonApiController
{
public function __invoke(Request $request, Response $response, $args)
{
@@ -22,7 +21,7 @@ class ForumConfigIndex extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionIndex.php b/lib/classes/JsonApi/Routes/Forum/DiscussionIndex.php
index 83af8ac..91b5c06 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionIndex.php
+++ b/lib/classes/JsonApi/Routes/Forum/DiscussionIndex.php
@@ -3,13 +3,12 @@ namespace JsonApi\Routes\Forum;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumDiscussion;
+use Forum\Discussion;
-class ForumDiscussionIndex extends JsonApiController
+class DiscussionIndex extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedFilteringParameters = [
@@ -24,12 +23,12 @@ class ForumDiscussionIndex extends JsonApiController
'status'
];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumCategory::REL_TOPICS,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_CATEGORY,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_USER,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_DISCUSSION_TYPE,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_MEMBERS,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_TAGS
+ \JsonApi\Schemas\Forum\Category::REL_TOPICS,
+ \JsonApi\Schemas\Forum\Discussion::REL_CATEGORY,
+ \JsonApi\Schemas\Forum\Discussion::REL_USER,
+ \JsonApi\Schemas\Forum\Discussion::REL_DISCUSSION_TYPE,
+ \JsonApi\Schemas\Forum\Discussion::REL_MEMBERS,
+ \JsonApi\Schemas\Forum\Discussion::REL_TAGS
];
@@ -41,7 +40,7 @@ class ForumDiscussionIndex extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
@@ -50,7 +49,7 @@ class ForumDiscussionIndex extends JsonApiController
$_SESSION['forum'][$range->id]['search_filter'] = $filters;
}
- $discussions = ForumDiscussion::getCourseDiscussions($range->id, $filters);
+ $discussions = Discussion::getCourseDiscussions($range->id, $filters);
return $this->getPaginatedContentResponse(
array_slice($discussions, ...$this->getOffsetAndLimit()),
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionPostings.php b/lib/classes/JsonApi/Routes/Forum/DiscussionPostings.php
index 2e07c87..8b64021 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionPostings.php
+++ b/lib/classes/JsonApi/Routes/Forum/DiscussionPostings.php
@@ -1,30 +1,29 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumDiscussion;
+use Forum\Discussion;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumPostingRead;
+use Forum\PostingRead;
-class ForumDiscussionPostings extends JsonApiController
+class DiscussionPostings extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumPosting::REL_DISCUSSION,
- \JsonApi\Schemas\Forum\ForumPosting::REL_POSTING,
- \JsonApi\Schemas\Forum\ForumPosting::REL_OPENGRAPH_URLS,
- \JsonApi\Schemas\Forum\ForumPosting::REL_AUTHOR,
- \JsonApi\Schemas\Forum\ForumPosting::REL_REACTIONS,
- \JsonApi\Schemas\Forum\ForumPosting::REL_REACTIONS_USER
+ \JsonApi\Schemas\Forum\Posting::REL_DISCUSSION,
+ \JsonApi\Schemas\Forum\Posting::REL_POSTING,
+ \JsonApi\Schemas\Forum\Posting::REL_OPENGRAPH_URLS,
+ \JsonApi\Schemas\Forum\Posting::REL_AUTHOR,
+ \JsonApi\Schemas\Forum\Posting::REL_REACTIONS,
+ \JsonApi\Schemas\Forum\Posting::REL_REACTIONS_USER
];
public function __invoke(Request $request, Response $response, $args)
{
- $discussion = ForumDiscussion::find($args['discussion_id']);
+ $discussion = Discussion::find($args['discussion_id']);
if (!$discussion) {
throw new RecordNotFoundException();
}
@@ -35,13 +34,13 @@ class ForumDiscussionPostings extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
$postings = $discussion->postings ?? \SimpleORMapCollection::createFromArray([]);
- ForumPostingRead::updateUserReadPoint($user->user_id, $discussion->discussion_id, count($postings));
+ 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/ForumDiscussionShow.php b/lib/classes/JsonApi/Routes/Forum/DiscussionShow.php
index 93bc970..4dc2821 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionShow.php
+++ b/lib/classes/JsonApi/Routes/Forum/DiscussionShow.php
@@ -1,26 +1,25 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumDiscussion;
+use Forum\Discussion;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-class ForumDiscussionShow extends JsonApiController
+class DiscussionShow extends JsonApiController
{
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_POSTINGS,
- \JsonApi\Schemas\Forum\ForumCategory::REL_TOPICS,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_CATEGORY,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_DISCUSSION_TYPE
+ \JsonApi\Schemas\Forum\Discussion::REL_POSTINGS,
+ \JsonApi\Schemas\Forum\Category::REL_TOPICS,
+ \JsonApi\Schemas\Forum\Discussion::REL_CATEGORY,
+ \JsonApi\Schemas\Forum\Discussion::REL_DISCUSSION_TYPE
];
public function __invoke(Request $request, Response $response, $args)
{
- $discussion = ForumDiscussion::find($args['discussion_id']);
+ $discussion = Discussion::find($args['discussion_id']);
if (!$discussion) {
throw new RecordNotFoundException();
}
@@ -31,7 +30,7 @@ class ForumDiscussionShow extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeIndex.php b/lib/classes/JsonApi/Routes/Forum/DiscussionTypeIndex.php
index 75f9750..cd32b90 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeIndex.php
+++ b/lib/classes/JsonApi/Routes/Forum/DiscussionTypeIndex.php
@@ -1,22 +1,22 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumDiscussionType;
+use Forum\DiscussionType;
use JsonApi\Errors\BadRequestException;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-class ForumDiscussionTypeIndex extends JsonApiController
+class DiscussionTypeIndex extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumDiscussionType::REL_DISCUSSIONS
+ \JsonApi\Schemas\Forum\DiscussionType::REL_DISCUSSIONS
];
public function __invoke(Request $request, Response $response, $args)
{
- $discussion_types = ForumDiscussionType::findBySQL('1');
+ $discussion_types = DiscussionType::findBySQL('1');
return $this->getPaginatedContentResponse(
array_slice($discussion_types, ...$this->getOffsetAndLimit()),
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeShow.php b/lib/classes/JsonApi/Routes/Forum/DiscussionTypeShow.php
index a3e37d9..939835a 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeShow.php
+++ b/lib/classes/JsonApi/Routes/Forum/DiscussionTypeShow.php
@@ -1,21 +1,21 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumDiscussionType;
+use Forum\DiscussionType;
use JsonApi\Errors\RecordNotFoundException;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-class ForumDiscussionTypeShow extends JsonApiController
+class DiscussionTypeShow extends JsonApiController
{
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumDiscussionType::REL_DISCUSSIONS
+ \JsonApi\Schemas\Forum\DiscussionType::REL_DISCUSSIONS
];
public function __invoke(Request $request, Response $response, $args)
{
- $discussion_type = ForumDiscussionType::find($args['type_id']);
+ $discussion_type = DiscussionType::find($args['type_id']);
if (!$discussion_type) {
throw new RecordNotFoundException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeDiscussions.php b/lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeDiscussions.php
deleted file mode 100644
index 6db27ab..0000000
--- a/lib/classes/JsonApi/Routes/Forum/ForumDiscussionTypeDiscussions.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-namespace JsonApi\Routes\Forum;
-
-use Forum\ForumDiscussionType;
-use JsonApi\Errors\RecordNotFoundException;
-use Psr\Http\Message\ServerRequestInterface as Request;
-use Psr\Http\Message\ResponseInterface as Response;
-use JsonApi\JsonApiController;
-
-class ForumDiscussionTypeDiscussions extends JsonApiController
-{
- protected $allowedPagingParameters = ['offset', 'limit'];
- protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumDiscussionType::REL_DISCUSSIONS,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_USER,
- ];
-
- public function __invoke(Request $request, Response $response, $args)
- {
- $discussionType = ForumDiscussionType::find($args['type_id']);
- if (!$discussionType) {
- throw new RecordNotFoundException();
- }
-
- $discussions = $discussionType->discussions;
-
- return $this->getPaginatedContentResponse(
- array_slice($discussions, ...$this->getOffsetAndLimit()),
- count($discussions)
- );
- }
-}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumPostingDelete.php b/lib/classes/JsonApi/Routes/Forum/PostingDelete.php
index 9929b14..e49755d 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumPostingDelete.php
+++ b/lib/classes/JsonApi/Routes/Forum/PostingDelete.php
@@ -7,15 +7,15 @@ use JsonApi\Routes\Courses\Authority as CourseAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumPosting;
+use Forum\Posting;
-class ForumPostingDelete extends JsonApiController
+class PostingDelete extends JsonApiController
{
public function __invoke(Request $request, Response $response, $args)
{
$user = $this->getUser($request);
- $posting = ForumPosting::findOneBySQL(
+ $posting = Posting::findOneBySQL(
"posting_id = :posting_id AND user_id = :user_id",
[
'posting_id' => $args['posting_id'],
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumPostingReactionDelete.php b/lib/classes/JsonApi/Routes/Forum/PostingReactionDelete.php
index 6e5ff35..7849815 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumPostingReactionDelete.php
+++ b/lib/classes/JsonApi/Routes/Forum/PostingReactionDelete.php
@@ -5,15 +5,15 @@ use JsonApi\Errors\RecordNotFoundException;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumPostingReaction;
+use Forum\PostingReaction;
-class ForumPostingReactionDelete extends JsonApiController
+class PostingReactionDelete extends JsonApiController
{
public function __invoke(Request $request, Response $response, $args)
{
$user = $this->getUser($request);
- $posting_reaction = ForumPostingReaction::findOneBySQL(
+ $posting_reaction = PostingReaction::findOneBySQL(
"id = :reaction_id AND user_id = :user_id",
[
'reaction_id' => $args['reaction_id'],
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumPostingReactionShow.php b/lib/classes/JsonApi/Routes/Forum/PostingReactionShow.php
index 0df6931..fb658b9 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumPostingReactionShow.php
+++ b/lib/classes/JsonApi/Routes/Forum/PostingReactionShow.php
@@ -1,22 +1,22 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumPostingReaction;
+use Forum\PostingReaction;
use JsonApi\Errors\RecordNotFoundException;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-class ForumPostingReactionShow extends JsonApiController
+class PostingReactionShow extends JsonApiController
{
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumPostingReaction::REL_POSTING,
- \JsonApi\Schemas\Forum\ForumPostingReaction::REL_USER,
+ \JsonApi\Schemas\Forum\PostingReaction::REL_POSTING,
+ \JsonApi\Schemas\Forum\PostingReaction::REL_USER,
];
public function __invoke(Request $request, Response $response, $args)
{
- $posting_reaction = ForumPostingReaction::find($args['reaction_id']);
+ $posting_reaction = PostingReaction::find($args['reaction_id']);
if (!$posting_reaction) {
throw new RecordNotFoundException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumPostingReactionStore.php b/lib/classes/JsonApi/Routes/Forum/PostingReactionStore.php
index a913e9b..992cf0d 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumPostingReactionStore.php
+++ b/lib/classes/JsonApi/Routes/Forum/PostingReactionStore.php
@@ -4,20 +4,19 @@ namespace JsonApi\Routes\Forum;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\BadRequestException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use Forum\ForumPosting;
-use Forum\ForumPostingReaction;
+use Forum\Posting;
+use Forum\PostingReaction;
-class ForumPostingReactionStore extends JsonApiController
+class PostingReactionStore extends JsonApiController
{
use ValidationTrait;
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumPostingReaction::REL_USER
+ \JsonApi\Schemas\Forum\PostingReaction::REL_USER
];
public function __invoke(Request $request, Response $response, $args)
@@ -25,7 +24,7 @@ class ForumPostingReactionStore extends JsonApiController
$json = $this->validate($request);
$user = $this->getUser($request);
- $posting = ForumPosting::find(self::arrayGet($json, 'data.relationships.posting.data.id'));
+ $posting = Posting::find(self::arrayGet($json, 'data.relationships.posting.data.id'));
if (!$posting) {
throw new BadRequestException();
}
@@ -35,11 +34,11 @@ class ForumPostingReactionStore extends JsonApiController
throw new RecordNotFoundException();
}
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
- $posting_reaction = ForumPostingReaction::create([
+ $posting_reaction = PostingReaction::create([
'posting_id' => $posting->posting_id,
'user_id' => $user->user_id,
'emoji' => self::arrayGet($json, 'data.attributes.emoji')
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumPostingReactions.php b/lib/classes/JsonApi/Routes/Forum/PostingReactions.php
index 9c6a182..12caad4 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumPostingReactions.php
+++ b/lib/classes/JsonApi/Routes/Forum/PostingReactions.php
@@ -1,26 +1,25 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumPosting;
+use Forum\Posting;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
use SimpleORMapCollection;
-class ForumPostingReactions extends JsonApiController
+class PostingReactions extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumPostingReaction::REL_POSTING,
- \JsonApi\Schemas\Forum\ForumPostingReaction::REL_USER
+ \JsonApi\Schemas\Forum\PostingReaction::REL_POSTING,
+ \JsonApi\Schemas\Forum\PostingReaction::REL_USER
];
public function __invoke(Request $request, Response $response, $args)
{
- $posting = ForumPosting::find($args['posting_id']);
+ $posting = Posting::find($args['posting_id']);
if (!$posting) {
throw new RecordNotFoundException();
}
@@ -31,7 +30,7 @@ class ForumPostingReactions extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumPostingShow.php b/lib/classes/JsonApi/Routes/Forum/PostingShow.php
index 4a810b2..c062169 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumPostingShow.php
+++ b/lib/classes/JsonApi/Routes/Forum/PostingShow.php
@@ -1,27 +1,26 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumPosting;
+use Forum\Posting;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-class ForumPostingShow extends JsonApiController
+class PostingShow extends JsonApiController
{
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumPosting::REL_DISCUSSION,
- \JsonApi\Schemas\Forum\ForumPosting::REL_POSTING,
- \JsonApi\Schemas\Forum\ForumPosting::REL_OPENGRAPH_URLS,
- \JsonApi\Schemas\Forum\ForumPosting::REL_REACTIONS,
- \JsonApi\Schemas\Forum\ForumPosting::REL_REACTIONS_USER
+ \JsonApi\Schemas\Forum\Posting::REL_DISCUSSION,
+ \JsonApi\Schemas\Forum\Posting::REL_POSTING,
+ \JsonApi\Schemas\Forum\Posting::REL_OPENGRAPH_URLS,
+ \JsonApi\Schemas\Forum\Posting::REL_REACTIONS,
+ \JsonApi\Schemas\Forum\Posting::REL_REACTIONS_USER
];
public function __invoke(Request $request, Response $response, $args)
{
- $posting = ForumPosting::find($args['posting_id']);
+ $posting = Posting::find($args['posting_id']);
if (!$posting) {
throw new RecordNotFoundException();
}
@@ -32,7 +31,7 @@ class ForumPostingShow extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumPostingStore.php b/lib/classes/JsonApi/Routes/Forum/PostingStore.php
index 70c5792..f7a667e 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumPostingStore.php
+++ b/lib/classes/JsonApi/Routes/Forum/PostingStore.php
@@ -2,7 +2,6 @@
namespace JsonApi\Routes\Forum;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\Errors\AuthorizationFailedException;
@@ -10,22 +9,22 @@ use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
use Forum\Enum\SubscriptionNotificationType;
use Studip\Markup;
-use Forum\ForumDiscussion;
-use Forum\ForumPosting;
-use Forum\ForumPostingRead;
-use Forum\ForumSubscription;
+use Forum\Discussion;
+use Forum\Posting;
+use Forum\PostingRead;
+use Forum\Subscription;
-class ForumPostingStore extends JsonApiController
+class PostingStore extends JsonApiController
{
use ValidationTrait;
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumPosting::REL_DISCUSSION,
- \JsonApi\Schemas\Forum\ForumPosting::REL_POSTING,
- \JsonApi\Schemas\Forum\ForumPosting::REL_OPENGRAPH_URLS,
- \JsonApi\Schemas\Forum\ForumPosting::REL_AUTHOR,
- \JsonApi\Schemas\Forum\ForumPosting::REL_REACTIONS,
- \JsonApi\Schemas\Forum\ForumPosting::REL_REACTIONS_USER
+ \JsonApi\Schemas\Forum\Posting::REL_DISCUSSION,
+ \JsonApi\Schemas\Forum\Posting::REL_POSTING,
+ \JsonApi\Schemas\Forum\Posting::REL_OPENGRAPH_URLS,
+ \JsonApi\Schemas\Forum\Posting::REL_AUTHOR,
+ \JsonApi\Schemas\Forum\Posting::REL_REACTIONS,
+ \JsonApi\Schemas\Forum\Posting::REL_REACTIONS_USER
];
public function __invoke(Request $request, Response $response, $args)
@@ -33,7 +32,7 @@ class ForumPostingStore extends JsonApiController
$json = $this->validate($request);
$user = $this->getUser($request);
- $discussion = ForumDiscussion::find(self::arrayGet($json, 'data.relationships.discussion.data.id'));
+ $discussion = Discussion::find(self::arrayGet($json, 'data.relationships.discussion.data.id'));
$range = get_object_by_range_id($discussion->range_id);
if (!$discussion || !$range) {
@@ -41,7 +40,7 @@ class ForumPostingStore extends JsonApiController
}
if (
- !RangeAuthority::canShowRange($user, $range) ||
+ !Authority::canShowForum($user, $range) ||
$discussion->closed_at
) {
throw new AuthorizationFailedException();
@@ -49,7 +48,7 @@ class ForumPostingStore extends JsonApiController
$parent_id = self::arrayGet($json, 'data.relationships.posting.data.id');
- $psoting = ForumPosting::create([
+ $psoting = Posting::create([
'range_id' => $discussion->range_id,
'parent_id' => $parent_id ?? null,
'discussion_id' => $discussion->discussion_id,
@@ -58,7 +57,7 @@ class ForumPostingStore extends JsonApiController
'user_id' => $user->user_id
]);
- $subscription = ForumSubscription::findOneBySQL(
+ $subscription = Subscription::findOneBySQL(
"user_id = :user_id AND subject_id IN (:subject_ids)",
[
'user_id' => $user->user_id,
@@ -67,7 +66,7 @@ class ForumPostingStore extends JsonApiController
);
if (!$subscription) {
- $subscription = new ForumSubscription();
+ $subscription = new Subscription();
$subscription->user_id = $user->user_id;
$subscription->range_id = $discussion->range_id;
$subscription->subject_id = $discussion->discussion_id;
@@ -76,7 +75,7 @@ class ForumPostingStore extends JsonApiController
$subscription->store();
}
- ForumPostingRead::updateUserReadPoint($user->user_id, $discussion->discussion_id);
+ PostingRead::updateUserReadPoint($user->user_id, $discussion->discussion_id);
return $this->getCreatedResponse($psoting);
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumPostingUpdate.php b/lib/classes/JsonApi/Routes/Forum/PostingUpdate.php
index b8470fa..c720bb6 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumPostingUpdate.php
+++ b/lib/classes/JsonApi/Routes/Forum/PostingUpdate.php
@@ -8,19 +8,19 @@ use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
use Studip\Markup;
-use Forum\ForumPosting;
+use Forum\Posting;
-class ForumPostingUpdate extends JsonApiController
+class PostingUpdate extends JsonApiController
{
use ValidationTrait;
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumPosting::REL_DISCUSSION,
- \JsonApi\Schemas\Forum\ForumPosting::REL_POSTING,
- \JsonApi\Schemas\Forum\ForumPosting::REL_OPENGRAPH_URLS,
- \JsonApi\Schemas\Forum\ForumPosting::REL_AUTHOR,
- \JsonApi\Schemas\Forum\ForumPosting::REL_REACTIONS,
- \JsonApi\Schemas\Forum\ForumPosting::REL_REACTIONS_USER
+ \JsonApi\Schemas\Forum\Posting::REL_DISCUSSION,
+ \JsonApi\Schemas\Forum\Posting::REL_POSTING,
+ \JsonApi\Schemas\Forum\Posting::REL_OPENGRAPH_URLS,
+ \JsonApi\Schemas\Forum\Posting::REL_AUTHOR,
+ \JsonApi\Schemas\Forum\Posting::REL_REACTIONS,
+ \JsonApi\Schemas\Forum\Posting::REL_REACTIONS_USER
];
public function __invoke(Request $request, Response $response, $args)
@@ -28,7 +28,7 @@ class ForumPostingUpdate extends JsonApiController
$json = $this->validate($request);
$user = $this->getUser($request);
- $posting = ForumPosting::findOneBySQL(
+ $posting = Posting::findOneBySQL(
"posting_id = :posting_id AND user_id = :user_id",
[
'posting_id' => $args['posting_id'],
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumSubscriptionDelete.php b/lib/classes/JsonApi/Routes/Forum/SubscriptionDelete.php
index fef6ac0..21ebe0b 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumSubscriptionDelete.php
+++ b/lib/classes/JsonApi/Routes/Forum/SubscriptionDelete.php
@@ -5,15 +5,15 @@ use JsonApi\Errors\RecordNotFoundException;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumSubscription;
+use Forum\Subscription;
-class ForumSubscriptionDelete extends JsonApiController
+class SubscriptionDelete extends JsonApiController
{
public function __invoke(Request $request, Response $response, $args)
{
$user = $this->getUser($request);
- $subscription = ForumSubscription::findOneBySQL(
+ $subscription = Subscription::findOneBySQL(
"id = :subscription_id AND user_id = :user_id",
[
'subscription_id' => $args['subscription_id'],
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumSubscriptionIndex.php b/lib/classes/JsonApi/Routes/Forum/SubscriptionIndex.php
index 8e0cee8..b653a84 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumSubscriptionIndex.php
+++ b/lib/classes/JsonApi/Routes/Forum/SubscriptionIndex.php
@@ -3,19 +3,18 @@ namespace JsonApi\Routes\Forum;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumSubscription;
+use Forum\Subscription;
-class ForumSubscriptionIndex extends JsonApiController
+class SubscriptionIndex extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumSubscription::REL_RANGE,
- \JsonApi\Schemas\Forum\ForumSubscription::REL_SUBJECT,
- \JsonApi\Schemas\Forum\ForumSubscription::REL_USER
+ \JsonApi\Schemas\Forum\Subscription::REL_RANGE,
+ \JsonApi\Schemas\Forum\Subscription::REL_SUBJECT,
+ \JsonApi\Schemas\Forum\Subscription::REL_USER
];
public function __invoke(Request $request, Response $response, $args)
@@ -26,11 +25,11 @@ class ForumSubscriptionIndex extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
- $subscriptions = ForumSubscription::getUserSubscriptions($range->id, $user->user_id);
+ $subscriptions = Subscription::getUserSubscriptions($range->id, $user->user_id);
return $this->getPaginatedContentResponse(
array_slice($subscriptions, ...$this->getOffsetAndLimit()),
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumSubscriptionShow.php b/lib/classes/JsonApi/Routes/Forum/SubscriptionShow.php
index dd0854d..ce98f9a 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumSubscriptionShow.php
+++ b/lib/classes/JsonApi/Routes/Forum/SubscriptionShow.php
@@ -5,21 +5,21 @@ use JsonApi\Errors\RecordNotFoundException;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumSubscription;
+use Forum\Subscription;
-class ForumSubscriptionShow extends JsonApiController
+class SubscriptionShow extends JsonApiController
{
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumSubscription::REL_RANGE,
- \JsonApi\Schemas\Forum\ForumSubscription::REL_SUBJECT,
- \JsonApi\Schemas\Forum\ForumSubscription::REL_USER,
+ \JsonApi\Schemas\Forum\Subscription::REL_RANGE,
+ \JsonApi\Schemas\Forum\Subscription::REL_SUBJECT,
+ \JsonApi\Schemas\Forum\Subscription::REL_USER,
];
public function __invoke(Request $request, Response $response, $args)
{
$user = $this->getUser($request);
- $subscription = ForumSubscription::findOneBySQL(
+ $subscription = Subscription::findOneBySQL(
"id = :id AND user_id = :user_id",
[
'id' => $args['subscription_id'],
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumSubscriptionStore.php b/lib/classes/JsonApi/Routes/Forum/SubscriptionStore.php
index ea3f308..f7ba658 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumSubscriptionStore.php
+++ b/lib/classes/JsonApi/Routes/Forum/SubscriptionStore.php
@@ -7,10 +7,10 @@ use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use Forum\ForumDiscussion;
-use Forum\ForumSubscription;
+use Forum\Discussion;
+use Forum\Subscription;
-class ForumSubscriptionStore extends JsonApiController
+class SubscriptionStore extends JsonApiController
{
use ValidationTrait;
@@ -21,7 +21,7 @@ class ForumSubscriptionStore extends JsonApiController
$subjectType = $this->mapSubjectType(self::arrayGet($json, 'data.relationships.subject.data.type'));
if ($subjectType === 'discussion') {
- $discussion = ForumDiscussion::find(self::arrayGet($json, 'data.relationships.subject.data.id'));
+ $discussion = Discussion::find(self::arrayGet($json, 'data.relationships.subject.data.id'));
if (!$discussion || $discussion->closed_at) {
throw new AuthorizationFailedException();
@@ -29,10 +29,10 @@ class ForumSubscriptionStore extends JsonApiController
}
if (!self::arrayHas($json, 'data.id')) {
- $subscription = new ForumSubscription();
+ $subscription = new Subscription();
$subscription->user_id = $user->user_id;
} else {
- $subscription = ForumSubscription::findOneBySQL(
+ $subscription = Subscription::findOneBySQL(
"id = :id AND user_id = :user_id",
[
'id' => self::arrayGet($json, 'data.id'),
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumTopicDiscussions.php b/lib/classes/JsonApi/Routes/Forum/TopicDiscussions.php
index c482c0a..03fa55f 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumTopicDiscussions.php
+++ b/lib/classes/JsonApi/Routes/Forum/TopicDiscussions.php
@@ -1,29 +1,28 @@
<?php
namespace JsonApi\Routes\Forum;
-use Forum\ForumTopic;
+use Forum\Topic;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
-class ForumTopicDiscussions extends JsonApiController
+class TopicDiscussions extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumCategory::REL_TOPICS,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_CATEGORY,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_USER,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_DISCUSSION_TYPE,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_MEMBERS,
- \JsonApi\Schemas\Forum\ForumDiscussion::REL_TAGS
+ \JsonApi\Schemas\Forum\Category::REL_TOPICS,
+ \JsonApi\Schemas\Forum\Discussion::REL_CATEGORY,
+ \JsonApi\Schemas\Forum\Discussion::REL_USER,
+ \JsonApi\Schemas\Forum\Discussion::REL_DISCUSSION_TYPE,
+ \JsonApi\Schemas\Forum\Discussion::REL_MEMBERS,
+ \JsonApi\Schemas\Forum\Discussion::REL_TAGS
];
public function __invoke(Request $request, Response $response, $args)
{
- $topic = ForumTopic::find($args['topic_id']);
+ $topic = Topic::find($args['topic_id']);
if (!$topic) {
throw new RecordNotFoundException();
}
@@ -34,7 +33,7 @@ class ForumTopicDiscussions extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumTopicIndex.php b/lib/classes/JsonApi/Routes/Forum/TopicIndex.php
index 038d0c9..b46ee72 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumTopicIndex.php
+++ b/lib/classes/JsonApi/Routes/Forum/TopicIndex.php
@@ -3,18 +3,17 @@ namespace JsonApi\Routes\Forum;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\JsonApiController;
-use Forum\ForumTopic;
+use Forum\Topic;
-class ForumTopicIndex extends JsonApiController
+class TopicIndex extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
protected $allowedFilteringParameters = ['course-id'];
protected $allowedIncludePaths = [
- \JsonApi\Schemas\Forum\ForumTopic::REL_CATEGORY
+ \JsonApi\Schemas\Forum\Topic::REL_CATEGORY
];
public function __invoke(Request $request, Response $response, $args)
@@ -25,11 +24,11 @@ class ForumTopicIndex extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
- $topics = ForumTopic::getCourseTopics($range->id);
+ $topics = Topic::getCourseTopics($range->id);
return $this->getPaginatedContentResponse(
array_slice($topics, ...$this->getOffsetAndLimit()),
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumTopicShow.php b/lib/classes/JsonApi/Routes/Forum/TopicShow.php
index 32704b7..1598ffc 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumTopicShow.php
+++ b/lib/classes/JsonApi/Routes/Forum/TopicShow.php
@@ -1,21 +1,20 @@
<?php
namespace JsonApi\Routes\Forum;
-use JsonApi\Routes\RangeAuthority;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\Errors\RecordNotFoundException;
use JsonApi\JsonApiController;
-use Forum\ForumTopic;
+use Forum\Topic;
-class ForumTopicShow extends JsonApiController
+class TopicShow extends JsonApiController
{
protected $allowedPagingParameters = ['offset', 'limit'];
public function __invoke(Request $request, Response $response, $args)
{
- $topic = ForumTopic::find($args['topic_id']);
+ $topic = Topic::find($args['topic_id']);
if (!$topic) {
throw new RecordNotFoundException();
}
@@ -26,7 +25,7 @@ class ForumTopicShow extends JsonApiController
}
$user = $this->getUser($request);
- if (!RangeAuthority::canShowRange($user, $range)) {
+ if (!Authority::canShowForum($user, $range)) {
throw new AuthorizationFailedException();
}
diff --git a/lib/classes/JsonApi/Routes/Forum/ForumTopicUpdateSort.php b/lib/classes/JsonApi/Routes/Forum/TopicUpdateSort.php
index 3e77b40..919d2a9 100644
--- a/lib/classes/JsonApi/Routes/Forum/ForumTopicUpdateSort.php
+++ b/lib/classes/JsonApi/Routes/Forum/TopicUpdateSort.php
@@ -8,9 +8,9 @@ use Psr\Http\Message\ResponseInterface as Response;
use JsonApi\Errors\AuthorizationFailedException;
use JsonApi\JsonApiController;
use JsonApi\Routes\ValidationTrait;
-use Forum\ForumTopic;
+use Forum\Topic;
-class ForumTopicUpdateSort extends JsonApiController
+class TopicUpdateSort extends JsonApiController
{
use ValidationTrait;
@@ -30,8 +30,8 @@ class ForumTopicUpdateSort extends JsonApiController
$topic_ids = self::arrayGet($json, 'data.attributes.topic-ids');
- ForumTopic::findEachBySQL(
- function (ForumTopic $topic) use ($topic_ids) {
+ Topic::findEachBySQL(
+ function (Topic $topic) use ($topic_ids) {
$topic->position = (int) array_search($topic->topic_id, $topic_ids);
$topic->store();
},
diff --git a/lib/classes/JsonApi/Routes/Institutes/Authority.php b/lib/classes/JsonApi/Routes/Institutes/Authority.php
index 2bd68a5..c6ee43b 100644
--- a/lib/classes/JsonApi/Routes/Institutes/Authority.php
+++ b/lib/classes/JsonApi/Routes/Institutes/Authority.php
@@ -7,11 +7,6 @@ use User;
class Authority
{
- public static function canShowInstitute(User $user, Institute $institute): bool
- {
- return $institute->isAccessibleToUser($user->id);
- }
-
/**
* @SuppressWarnings(PHPMD.Superglobals)
*/
diff --git a/lib/classes/JsonApi/Routes/RangeAuthority.php b/lib/classes/JsonApi/Routes/RangeAuthority.php
deleted file mode 100644
index 447ae60..0000000
--- a/lib/classes/JsonApi/Routes/RangeAuthority.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace JsonApi\Routes;
-
-use Course;
-use Institute;
-use Range;
-use User;
-use JsonApi\Routes\Courses\Authority as CourseAuthority;
-use JsonApi\Routes\Institutes\Authority as InstituteAuthority;
-
-class RangeAuthority
-{
- const SCOPE_BASIC = 'basic';
-
- public static function canShowRange(User $user, Range $range, $scope = self::SCOPE_BASIC): bool
- {
- if ($range instanceof Course) {
- return CourseAuthority::canShowCourse($user, $range, $scope);
- }
-
- if ($range instanceof Institute) {
- return InstituteAuthority::canShowInstitute($user, $range);
- }
-
- return false;
- }
-
- public static function canEditRange(User $user, Range $range): bool
- {
- if ($range instanceof Course) {
- return CourseAuthority::canEditCourse($user, $range);
- }
-
- if ($range instanceof Institute) {
- return InstituteAuthority::canEditInstitute($user, $range);
- }
-
- return false;
- }
-}
diff --git a/lib/classes/JsonApi/SchemaMap.php b/lib/classes/JsonApi/SchemaMap.php
index e460150..d45c6a7 100644
--- a/lib/classes/JsonApi/SchemaMap.php
+++ b/lib/classes/JsonApi/SchemaMap.php
@@ -39,15 +39,15 @@ class SchemaMap
\Degree::class => Schemas\Degree::class,
\FeedbackElement::class => Schemas\FeedbackElement::class,
\FeedbackEntry::class => Schemas\FeedbackEntry::class,
- \Forum\ForumCategory::class => \JsonApi\Schemas\Forum\ForumCategory::class,
- \Forum\ForumTopic::class => \JsonApi\Schemas\Forum\ForumTopic::class,
- \Forum\ForumDiscussion::class => \JsonApi\Schemas\Forum\ForumDiscussion::class,
- \Forum\ForumDiscussionType::class => \JsonApi\Schemas\Forum\ForumDiscussionType::class,
- \Forum\ForumPosting::class => \JsonApi\Schemas\Forum\ForumPosting::class,
- \Forum\ForumPostingReaction::class => \JsonApi\Schemas\Forum\ForumPostingReaction::class,
- \Forum\ForumSubscription::class => \JsonApi\Schemas\Forum\ForumSubscription::class,
- \Forum\DTO\ForumMember::class => \JsonApi\Schemas\Forum\ForumMember::class,
- \Forum\DTO\ForumTag::class => \JsonApi\Schemas\Forum\ForumTag::class,
+ \Forum\Category::class => \JsonApi\Schemas\Forum\Category::class,
+ \Forum\Topic::class => \JsonApi\Schemas\Forum\Topic::class,
+ \Forum\Discussion::class => \JsonApi\Schemas\Forum\Discussion::class,
+ \Forum\DiscussionType::class => \JsonApi\Schemas\Forum\DiscussionType::class,
+ \Forum\Posting::class => \JsonApi\Schemas\Forum\Posting::class,
+ \Forum\PostingReaction::class => \JsonApi\Schemas\Forum\PostingReaction::class,
+ \Forum\Subscription::class => \JsonApi\Schemas\Forum\Subscription::class,
+ \Forum\DTO\Member::class => \JsonApi\Schemas\Forum\Member::class,
+ \Forum\DTO\Tag::class => \JsonApi\Schemas\Forum\Tag::class,
\Institute::class => Schemas\Institute::class,
\InstituteMember::class => Schemas\InstituteMember::class,
\LtiTool::class => Schemas\LtiTool::class,
diff --git a/lib/classes/JsonApi/Schemas/Activity.php b/lib/classes/JsonApi/Schemas/Activity.php
index 3839793..6607a4d 100644
--- a/lib/classes/JsonApi/Schemas/Activity.php
+++ b/lib/classes/JsonApi/Schemas/Activity.php
@@ -89,7 +89,7 @@ class Activity extends SchemaProvider
{
$mapping = [
'documents' => \FileRef::class,
- 'forum' => \Forum\ForumPosting::class,
+ 'forum' => \Forum\Posting::class,
'message' => \Message::class,
'news' => \StudipNews::class,
'participants' => \Course::class,
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumCategory.php b/lib/classes/JsonApi/Schemas/Forum/Category.php
index b75e82b..de5aa3e 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumCategory.php
+++ b/lib/classes/JsonApi/Schemas/Forum/Category.php
@@ -5,7 +5,7 @@ use JsonApi\Schemas\SchemaProvider;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
use Neomerx\JsonApi\Schema\Link;
-class ForumCategory extends SchemaProvider
+class Category extends SchemaProvider
{
const TYPE = 'forum-categories';
const REL_TOPICS = 'topics';
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumDiscussion.php b/lib/classes/JsonApi/Schemas/Forum/Discussion.php
index 6c5309e..abac14e 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumDiscussion.php
+++ b/lib/classes/JsonApi/Schemas/Forum/Discussion.php
@@ -6,7 +6,7 @@ use JsonApi\Schemas\SchemaProvider;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
use Neomerx\JsonApi\Schema\Link;
-class ForumDiscussion extends SchemaProvider
+class Discussion extends SchemaProvider
{
const TYPE = 'forum-discussions';
const REL_POSTINGS = 'postings';
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumDiscussionType.php b/lib/classes/JsonApi/Schemas/Forum/DiscussionType.php
index 7bdf6bb..07ea34d 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumDiscussionType.php
+++ b/lib/classes/JsonApi/Schemas/Forum/DiscussionType.php
@@ -5,7 +5,7 @@ use JsonApi\Schemas\SchemaProvider;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
use Neomerx\JsonApi\Schema\Link;
-class ForumDiscussionType extends SchemaProvider
+class DiscussionType extends SchemaProvider
{
const TYPE = 'forum-discussion-types';
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumMember.php b/lib/classes/JsonApi/Schemas/Forum/Member.php
index 71a0226..6798c4e 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumMember.php
+++ b/lib/classes/JsonApi/Schemas/Forum/Member.php
@@ -4,7 +4,7 @@ namespace JsonApi\Schemas\Forum;
use JsonApi\Schemas\SchemaProvider;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
-class ForumMember extends SchemaProvider
+class Member extends SchemaProvider
{
const TYPE = 'forum-members';
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumPosting.php b/lib/classes/JsonApi/Schemas/Forum/Posting.php
index a03e75d..426c876 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumPosting.php
+++ b/lib/classes/JsonApi/Schemas/Forum/Posting.php
@@ -6,7 +6,7 @@ use JsonApi\Schemas\SchemaProvider;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
use Neomerx\JsonApi\Schema\Link;
-class ForumPosting extends SchemaProvider
+class Posting extends SchemaProvider
{
const TYPE = 'forum-postings';
const REL_AUTHOR = 'author';
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumPostingReaction.php b/lib/classes/JsonApi/Schemas/Forum/PostingReaction.php
index 1b7bfa9..9441b63 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumPostingReaction.php
+++ b/lib/classes/JsonApi/Schemas/Forum/PostingReaction.php
@@ -6,7 +6,7 @@ use JsonApi\Schemas\SchemaProvider;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
use Neomerx\JsonApi\Schema\Link;
-class ForumPostingReaction extends SchemaProvider
+class PostingReaction extends SchemaProvider
{
const TYPE = 'forum-posting-reactions';
const REL_POSTING = 'posting';
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumSubscription.php b/lib/classes/JsonApi/Schemas/Forum/Subscription.php
index 6cc82e0..4e5484e 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumSubscription.php
+++ b/lib/classes/JsonApi/Schemas/Forum/Subscription.php
@@ -6,7 +6,7 @@ use JsonApi\Schemas\SchemaProvider;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
use Neomerx\JsonApi\Schema\Link;
-class ForumSubscription extends SchemaProvider
+class Subscription extends SchemaProvider
{
const TYPE = 'forum-subscriptions';
const REL_USER = 'user';
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumTag.php b/lib/classes/JsonApi/Schemas/Forum/Tag.php
index 00bf2e9..1c2e72e 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumTag.php
+++ b/lib/classes/JsonApi/Schemas/Forum/Tag.php
@@ -4,7 +4,7 @@ namespace JsonApi\Schemas\Forum;
use JsonApi\Schemas\SchemaProvider;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
-class ForumTag extends SchemaProvider
+class Tag extends SchemaProvider
{
const TYPE = 'forum-tags';
diff --git a/lib/classes/JsonApi/Schemas/Forum/ForumTopic.php b/lib/classes/JsonApi/Schemas/Forum/Topic.php
index 88461a1..624c6e7 100644
--- a/lib/classes/JsonApi/Schemas/Forum/ForumTopic.php
+++ b/lib/classes/JsonApi/Schemas/Forum/Topic.php
@@ -7,7 +7,7 @@ use JsonApi\Schemas\Studip;
use Neomerx\JsonApi\Contracts\Schema\ContextInterface;
use Neomerx\JsonApi\Schema\Link;
-class ForumTopic extends SchemaProvider
+class Topic extends SchemaProvider
{
const TYPE = 'forum-topics';
const REL_CATEGORY = 'category';
@@ -21,7 +21,7 @@ class ForumTopic extends SchemaProvider
/**
* @inheritdoc
*
- * @param \Forum\ForumTopic $topic
+ * @param \Forum\Topic $topic
*/
public function getAttributes($topic, ContextInterface $context): iterable
{
@@ -37,7 +37,7 @@ class ForumTopic extends SchemaProvider
/**
* @inheritdoc
*
- * @param \Forum\ForumTopic $topic
+ * @param \Forum\Topic $topic
*/
public function hasResourceMeta($topic): bool
{
@@ -47,7 +47,7 @@ class ForumTopic extends SchemaProvider
/**
* @inheritdoc
*
- * @param \Forum\ForumTopic $topic
+ * @param \Forum\Topic $topic
*/
public function getResourceMeta($topic)
{
@@ -65,7 +65,7 @@ class ForumTopic extends SchemaProvider
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*
- * @param \Forum\ForumTopic $topic
+ * @param \Forum\Topic $topic
*/
public function getRelationships($topic, ContextInterface $context): iterable
{
diff --git a/lib/classes/Privacy.php b/lib/classes/Privacy.php
index d28ecf4..a0c1690 100644
--- a/lib/classes/Privacy.php
+++ b/lib/classes/Privacy.php
@@ -42,7 +42,7 @@ class Privacy
],
'content' => [
FileRef::class,
- \Forum\ForumPosting::class,
+ \Forum\Posting::class,
WikiPage::class,
Courseware\Unit::class,
Courseware\StructuralElement::class,
diff --git a/lib/classes/Siteinfo.php b/lib/classes/Siteinfo.php
index 8ca1c08..a11e8cb 100644
--- a/lib/classes/Siteinfo.php
+++ b/lib/classes/Siteinfo.php
@@ -557,7 +557,7 @@ class SiteinfoMarkupEngine {
if ($key === 'posting') {
$template->title = _('Forenbeiträge');
$template->detail = _('Anzahl Beiträge aller verwendeten Foren');
- $template->count = \Forum\ForumPosting::countBySql();
+ $template->count = \Forum\Posting::countBySql();
} else {
// iterate over the other indicators
if (in_array($key,array_keys($indicator))) {
diff --git a/lib/middleware/LegacyRedirectorMiddleware.php b/lib/middleware/LegacyRedirectorMiddleware.php
index 5b9960c..d072e27 100644
--- a/lib/middleware/LegacyRedirectorMiddleware.php
+++ b/lib/middleware/LegacyRedirectorMiddleware.php
@@ -1,7 +1,7 @@
<?php
namespace Studip\Middleware;
-use Forum\ForumTopic;
+use Forum\Topic;
use NotificationCenter;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\{ResponseInterface as Response,
@@ -82,7 +82,7 @@ final class LegacyRedirectorMiddleware implements MiddlewareInterface
$uri->getPath()
)
);
- } elseif (ForumTopic::exists($forum_id)) {
+ } elseif (Topic::exists($forum_id)) {
$redirectUri = $uri->withPath(
str_replace(
'course/forum/index/index',
diff --git a/lib/models/CourseTopic.php b/lib/models/CourseTopic.php
index fb31efc..f61738a 100644
--- a/lib/models/CourseTopic.php
+++ b/lib/models/CourseTopic.php
@@ -51,7 +51,7 @@ class CourseTopic extends SimpleORMap
'foreign_key' => 'author_id'
];
$config['has_and_belongs_to_many']['forum_topics'] = [
- 'class_name' => \Forum\ForumTopic::class,
+ 'class_name' => \Forum\Topic::class,
'thru_table' => 'forum_topics_issues',
'on_delete' => 'delete',
'on_store' => 'store'
@@ -122,7 +122,7 @@ class CourseTopic extends SimpleORMap
public function connectWithForumThread()
{
if ($this->seminar_id && !$this->forum_thread_url) {
- $forum_topic = new \Forum\ForumTopic();
+ $forum_topic = new \Forum\Topic();
$forum_topic['range_id'] = $this->seminar_id;
$forum_topic['name'] = $this['title'];
$forum_topic['description'] = $this['description'];
diff --git a/lib/models/Forum/ForumCategory.php b/lib/models/Forum/Category.php
index bf42092..73c96e1 100644
--- a/lib/models/Forum/ForumCategory.php
+++ b/lib/models/Forum/Category.php
@@ -16,27 +16,27 @@ use User;
* @property int $chdate
*
* @property Range $range
- * @property ForumTopic[] $topics
+ * @property Topic[] $topics
* @property array $metadata
*/
-class ForumCategory extends \SimpleORMap
+class Category extends \SimpleORMap
{
protected static function configure($config = [])
{
$config['db_table'] = 'forum_categories';
$config['has_many']['topics'] = [
- 'class_name' => ForumTopic::class,
+ 'class_name' => Topic::class,
'foreign_key' => 'category_id',
'assoc_foreign_key' => 'category_id',
'order_by' => 'ORDER BY position ASC, mkdate DESC',
];
$config['additional_fields']['range'] = [
- 'set' => function (ForumCategory $category, string $field, Range $range) {
+ 'set' => function (Category $category, string $field, Range $range) {
$category->range_id = $range->getRangeId();
},
- 'get' => function (ForumCategory $category): Range {
+ 'get' => function (Category $category): Range {
return get_object_by_range_id($category->range_id);
},
];
diff --git a/lib/models/Forum/ForumDiscussion.php b/lib/models/Forum/Discussion.php
index 0dae82e..96bd85a 100644
--- a/lib/models/Forum/ForumDiscussion.php
+++ b/lib/models/Forum/Discussion.php
@@ -4,8 +4,8 @@ namespace Forum;
use User;
use DBManager;
use SimpleORMap;
-use Forum\DTO\ForumMember;
-use Forum\DTO\ForumTag;
+use Forum\DTO\Member as MemberDTO;
+use Forum\DTO\Tag as TagDTO;
use Forum\Service\DiscussionNotification;
/**
@@ -19,43 +19,43 @@ use Forum\Service\DiscussionNotification;
* @property int $mkdate
* @property int $chdate
*
- * @property ForumTopic $topic
+ * @property Topic $topic
* @property User $user
- * @property ForumDiscussionType $discussion_type
- * @property ForumPosting[] $postings
- * @property ForumSubscription[] $subscribers
+ * @property DiscussionType $discussion_type
+ * @property Posting[] $postings
+ * @property Subscription[] $subscribers
* @property User[] $users
- * @property ForumMember[] $members
- * @property ForumTag[] $tags
- * @property ForumCategory $category
+ * @property MemberDTO[] $members
+ * @property TagDTO[] $tags
+ * @property Category $category
*/
-class ForumDiscussion extends SimpleORMap
+class Discussion extends SimpleORMap
{
protected static function configure($config = [])
{
$config['db_table'] = 'forum_discussions';
$config['belongs_to']['topic'] = [
- 'class_name' => ForumTopic::class,
+ 'class_name' => Topic::class,
'foreign_key' => 'topic_id',
'assoc_foreign_key' => 'topic_id'
];
$config['belongs_to']['discussion_type'] = [
- 'class_name' => ForumDiscussionType::class,
+ 'class_name' => DiscussionType::class,
'foreign_key' => 'type_id',
'assoc_foreign_key' => 'type_id'
];
$config['has_many']['postings'] = [
- 'class_name' => ForumPosting::class,
+ 'class_name' => Posting::class,
'foreign_key' => 'discussion_id',
'assoc_foreign_key' => 'discussion_id',
'order_by' => 'ORDER BY mkdate',
];
$config['has_many']['subscribers'] = [
- 'class_name' => ForumSubscription::class,
+ 'class_name' => Subscription::class,
'foreign_key' => 'discussion_id',
'assoc_foreign_key' => 'discussion_id'
];
@@ -155,6 +155,9 @@ class ForumDiscussion extends SimpleORMap
);
}
+ /**
+ * @return TagDTO[]
+ */
public function getTags(): array
{
return DBManager::get()->fetchAll(
@@ -164,7 +167,7 @@ class ForumDiscussion extends SimpleORMap
ORDER BY `tags`.`mkdate` DESC",
['discussion_id' => $this->discussion_id],
function ($tag) {
- return ForumTag::fromArray([
+ return TagDTO::fromArray([
'id' => $tag['tag_id'],
'name' => $tag['name']
]);
@@ -172,9 +175,9 @@ class ForumDiscussion extends SimpleORMap
);
}
- public function getCategory(): ?ForumCategory
+ public function getCategory(): ?Category
{
- return ForumCategory::findOneBySQL("JOIN forum_topics USING (category_id) WHERE forum_topics.topic_id = :topic_id", ['topic_id' => $this->topic_id]);
+ return Category::findOneBySQL("JOIN forum_topics USING (category_id) WHERE forum_topics.topic_id = :topic_id", ['topic_id' => $this->topic_id]);
}
public function getRangeId(): string
@@ -206,13 +209,16 @@ class ForumDiscussion extends SimpleORMap
return array_values($unique_users);
}
+ /**
+ * @return MemberDTO[]
+ */
public function getMembers($last_visit = null): array
{
$users = $this->getUsers($last_visit);
$members = [];
foreach ($users as $user) {
- $members[] = ForumMember::fromUser($user, $this->range_id);
+ $members[] = MemberDTO::fromUser($user, $this->range_id);
}
return $members;
@@ -276,8 +282,8 @@ class ForumDiscussion extends SimpleORMap
public function onDelete(): void
{
- ForumSubscription::deleteBySQL("subject_id = ?", [$this->discussion_id]);
- ForumPosting::deleteBySQL("discussion_id = ?", [$this->discussion_id]);
- ForumPostingRead::deleteBySQL("discussion_id = ?", [$this->discussion_id]);
+ Subscription::deleteBySQL("subject_id = ?", [$this->discussion_id]);
+ Posting::deleteBySQL("discussion_id = ?", [$this->discussion_id]);
+ PostingRead::deleteBySQL("discussion_id = ?", [$this->discussion_id]);
}
}
diff --git a/lib/models/Forum/ForumDiscussionType.php b/lib/models/Forum/DiscussionType.php
index e3914b5..0462388 100644
--- a/lib/models/Forum/ForumDiscussionType.php
+++ b/lib/models/Forum/DiscussionType.php
@@ -12,17 +12,17 @@ use SimpleORMap;
* @property int $mkdate
* @property int $chdate
*
- * @property ForumDiscussion[] $discussions
+ * @property Discussion[] $discussions
*/
-class ForumDiscussionType extends SimpleORMap
+class DiscussionType extends SimpleORMap
{
protected static function configure($config = [])
{
$config['db_table'] = 'forum_discussion_types';
$config['has_many']['discussions'] = [
- 'class_name' => ForumDiscussion::class,
+ 'class_name' => Discussion::class,
'foreign_key' => 'type_id' ,
'assoc_foreign_key' => 'type_id'
];
@@ -36,7 +36,7 @@ class ForumDiscussionType extends SimpleORMap
}
/**
- * @return ForumDiscussion[]
+ * @return Discussion[]
*/
public function getDiscussions(): array
{
@@ -50,7 +50,7 @@ class ForumDiscussionType extends SimpleORMap
GROUP BY discussions.discussion_id
ORDER BY discussions.sticky DESC, latest_post_date DESC",
['type_id' => $this->type_id],
- ForumDiscussion::buildExisting(...)
+ Discussion::buildExisting(...)
);
}
}
diff --git a/lib/models/Forum/ForumPosting.php b/lib/models/Forum/Posting.php
index b442046..b0ae0e8 100644
--- a/lib/models/Forum/ForumPosting.php
+++ b/lib/models/Forum/Posting.php
@@ -5,7 +5,7 @@ use OpenGraph;
use SimpleORMap;
use Forum\Service\PostingNotification;
use User;
-use Forum\DTO\ForumMember;
+use Forum\DTO\Member as MemberDTO;
/**
* @property string $posting_id
@@ -16,26 +16,26 @@ use Forum\DTO\ForumMember;
* @property int $mkdate
* @property int $chdate
*
- * @property ForumDiscussion $discussion
- * @property ForumPosting $posting
- * @property ForumPostingReaction[] $reactions
+ * @property Discussion $discussion
+ * @property Posting $posting
+ * @property PostingReaction[] $reactions
* @property User $user
- * @property ForumMember $author
+ * @property MemberDTO $author
*/
-class ForumPosting extends SimpleORMap
+class Posting extends SimpleORMap
{
protected static function configure($config = [])
{
$config['db_table'] = 'forum_postings';
$config['belongs_to']['discussion'] = [
- 'class_name' => ForumDiscussion::class,
+ 'class_name' => Discussion::class,
'foreign_key' => 'discussion_id',
'assoc_foreign_key' => 'discussion_id'
];
$config['belongs_to']['posting'] = [
- 'class_name' => ForumPosting::class,
+ 'class_name' => Posting::class,
'foreign_key' => 'parent_id',
'assoc_foreign_key' => 'posting_id'
];
@@ -47,7 +47,7 @@ class ForumPosting extends SimpleORMap
];
$config['has_many']['reactions'] = [
- 'class_name' => ForumPostingReaction::class,
+ 'class_name' => PostingReaction::class,
'foreign_key' => 'posting_id',
'assoc_foreign_key' => 'posting_id'
];
@@ -59,15 +59,15 @@ class ForumPosting extends SimpleORMap
parent::configure($config);
}
- public function getAuthor(): ?ForumMember
+ public function getAuthor(): ?MemberDTO
{
if ($this->anonymous && $this->user_id !== User::findCurrent()->user_id) {
- return ForumMember::fromArray();
+ return MemberDTO::fromArray();
}
$user = $this->user;
if ($user) {
- return ForumMember::fromUser($user, $this->range_id);
+ return MemberDTO::fromUser($user, $this->range_id);
}
return null;
@@ -115,6 +115,6 @@ class ForumPosting extends SimpleORMap
public function onDelete(): void
{
- ForumPostingReaction::deleteBySQL("posting_id = ?", [$this->posting_id]);
+ PostingReaction::deleteBySQL("posting_id = ?", [$this->posting_id]);
}
}
diff --git a/lib/models/Forum/ForumPostingReaction.php b/lib/models/Forum/PostingReaction.php
index f7141a9..643e564 100644
--- a/lib/models/Forum/ForumPostingReaction.php
+++ b/lib/models/Forum/PostingReaction.php
@@ -12,11 +12,11 @@ use User;
* @property int $mkdate
* @property int $chdate
*
- * @property ForumPosting $posting
+ * @property Posting $posting
* @property User $user
*/
-class ForumPostingReaction extends SimpleORMap
+class PostingReaction extends SimpleORMap
{
public const thumbUp = 'THUMBS UP SIGN';
public const thumbDown = 'THUMBS DOWN SIGN';
@@ -33,7 +33,7 @@ class ForumPostingReaction extends SimpleORMap
$config['db_table'] = 'forum_posting_reactions';
$config['belongs_to']['posting'] = [
- 'class_name' => ForumPosting::class,
+ 'class_name' => Posting::class,
'foreign_key' => 'posting_id',
'assoc_foreign_key' => 'posting_id'
];
diff --git a/lib/models/Forum/ForumPostingRead.php b/lib/models/Forum/PostingRead.php
index 8232236..f690d1b 100644
--- a/lib/models/Forum/ForumPostingRead.php
+++ b/lib/models/Forum/PostingRead.php
@@ -10,18 +10,18 @@ use User;
* @property int $read_index
* @property int $chdate
*
- * @property ForumDiscussion $discussion
+ * @property Discussion $discussion
* @property User $users
*/
-class ForumPostingRead extends SimpleORMap
+class PostingRead extends SimpleORMap
{
protected static function configure($config = [])
{
$config['db_table'] = 'forum_posting_reads';
$config['belongs_to']['discussion'] = [
- 'class_name' => ForumDiscussion::class,
+ 'class_name' => Discussion::class,
'foreign_key' => 'discussion_id',
'assoc_foreign_key' => 'discussion_id'
];
@@ -35,9 +35,9 @@ class ForumPostingRead extends SimpleORMap
parent::configure($config);
}
- public static function updateUserReadPoint($user_id, $discussion_id, int $read_index = 0): ForumPostingRead
+ public static function updateUserReadPoint($user_id, $discussion_id, int $read_index = 0): PostingRead
{
- $postingRead = ForumPostingRead::findOneBySQL(
+ $postingRead = PostingRead::findOneBySQL(
"discussion_id = :discussion_id AND user_id = :user_id",
[
'discussion_id' => $discussion_id,
@@ -46,7 +46,7 @@ class ForumPostingRead extends SimpleORMap
);
if (!$postingRead) {
- $postingRead = new ForumPostingRead();
+ $postingRead = new PostingRead();
$postingRead->discussion_id = $discussion_id;
$postingRead->user_id = $user_id;
}
diff --git a/lib/models/Forum/ForumSubscription.php b/lib/models/Forum/Subscription.php
index 2ba8335..47ec6b2 100644
--- a/lib/models/Forum/ForumSubscription.php
+++ b/lib/models/Forum/Subscription.php
@@ -15,12 +15,12 @@ use Forum\Enum\SubscriptionNotificationType;
* @property int $mkdate
* @property int $chdate
*
- * @property ForumDiscussion | ForumTopic $subject_object
+ * @property Discussion | Topic $subject_object
* @property User $user
* @property Range $range
*/
-class ForumSubscription extends SimpleORMap
+class Subscription extends SimpleORMap
{
protected static function configure($config = [])
{
@@ -33,10 +33,10 @@ class ForumSubscription extends SimpleORMap
];
$config['additional_fields']['range'] = [
- 'set' => function (ForumSubscription $subscription, string $field, Range $range) {
+ 'set' => function (Subscription $subscription, string $field, Range $range) {
$subscription->range_id = $range->getRangeId();
},
- 'get' => function (ForumSubscription $subscription): Range {
+ 'get' => function (Subscription $subscription): Range {
return get_object_by_range_id($subscription->range_id);
},
];
@@ -60,11 +60,11 @@ class ForumSubscription extends SimpleORMap
);
}
- public function getSubjectObject(): ForumDiscussion | ForumTopic
+ public function getSubjectObject(): Discussion | Topic
{
return match ($this->subject) {
- 'topic' => ForumTopic::find($this->subject_id),
- 'discussion' => ForumDiscussion::find($this->subject_id)
+ 'topic' => Topic::find($this->subject_id),
+ 'discussion' => Discussion::find($this->subject_id)
};
}
}
diff --git a/lib/models/Forum/ForumTopic.php b/lib/models/Forum/Topic.php
index 8dd5404..a6b298f 100644
--- a/lib/models/Forum/ForumTopic.php
+++ b/lib/models/Forum/Topic.php
@@ -17,36 +17,36 @@ use User;
* @property int $chdate
*
* @property Range $range
- * @property ForumCategory $category
- * @property ForumDiscussion[] $discussions
+ * @property Category $category
+ * @property Discussion[] $discussions
* @property User[] $users
* @property array $metadata
*/
-class ForumTopic extends SimpleORMap
+class Topic extends SimpleORMap
{
protected static function configure($config = [])
{
$config['db_table'] = 'forum_topics';
$config['belongs_to']['category'] = [
- 'class_name' => ForumCategory::class,
+ 'class_name' => Category::class,
'foreign_key' => 'category_id',
'assoc_foreign_key' => 'category_id'
];
$config['has_many']['discussions'] = [
- 'class_name' => ForumDiscussion::class,
+ 'class_name' => Discussion::class,
'foreign_key' => 'topic_id',
'assoc_func' => 'getDiscussions',
'assoc_foreign_key' => 'topic_id',
];
$config['additional_fields']['range'] = [
- 'set' => function (ForumTopic $topic, string $field, Range $range) {
+ 'set' => function (Topic $topic, string $field, Range $range) {
$topic->range_id = $range->getRangeId();
},
- 'get' => function (ForumTopic $topic): Range {
+ 'get' => function (Topic $topic): Range {
return get_object_by_range_id($topic->range_id);
},
];
@@ -101,7 +101,7 @@ class ForumTopic extends SimpleORMap
}
/**
- * @return ForumDiscussion[]
+ * @return Discussion[]
*/
public function getDiscussions(): array
{
@@ -115,7 +115,7 @@ class ForumTopic extends SimpleORMap
GROUP BY discussions.discussion_id
ORDER BY discussions.sticky DESC, latest_post_date DESC",
['topic_id' => $this->topic_id],
- ForumDiscussion::buildExisting(...)
+ Discussion::buildExisting(...)
);
}
@@ -162,7 +162,7 @@ class ForumTopic extends SimpleORMap
public function onDelete(): void
{
- ForumSubscription::deleteBySQL("subject_id = ?", [$this->topic_id]);
- ForumDiscussion::deleteBySQL("topic_id = ?", [$this->topic_id]);
+ Subscription::deleteBySQL("subject_id = ?", [$this->topic_id]);
+ Discussion::deleteBySQL("topic_id = ?", [$this->topic_id]);
}
}
diff --git a/lib/models/User.php b/lib/models/User.php
index 96bfb7b..1741253 100644
--- a/lib/models/User.php
+++ b/lib/models/User.php
@@ -234,17 +234,17 @@ class User extends AuthUserMd5 implements Range, PrivacyObject, Studip\Calendar\
// Forum
$config['has_many']['forum_posting_reads'] = [
- 'class_name' => Forum\ForumPostingRead::class,
+ 'class_name' => Forum\PostingRead::class,
'assoc_foreign_key' => 'user_id',
'on_delete' => 'delete',
];
$config['has_many']['forum_posting_reactions'] = [
- 'class_name' => Forum\ForumPostingReaction::class,
+ 'class_name' => Forum\PostingReaction::class,
'assoc_foreign_key' => 'user_id',
'on_delete' => 'delete',
];
$config['has_many']['forum_subscriptions'] = [
- 'class_name' => Forum\ForumSubscription::class,
+ 'class_name' => Forum\Subscription::class,
'assoc_foreign_key' => 'user_id',
'on_delete' => 'delete',
];
diff --git a/lib/modules/CoreForum.php b/lib/modules/CoreForum.php
index 138fc60..838362b 100644
--- a/lib/modules/CoreForum.php
+++ b/lib/modules/CoreForum.php
@@ -8,7 +8,7 @@
* @since Stud.IP 6.1
*/
-use Forum\ForumPosting;
+use Forum\Posting;
class CoreForum extends CorePlugin implements StudipModule
{
@@ -49,7 +49,7 @@ class CoreForum extends CorePlugin implements StudipModule
$navigation_title = _('Forum');
if ($GLOBALS['perm']->have_studip_perm('user', $course_id)) {
- $recent_posts = ForumPosting::getRecentPosts($course_id, $last_visit);
+ $recent_posts = Posting::getRecentPosts($course_id, $last_visit);
$recent_posts_count = array_sum(array_column($recent_posts, 'posts'));
if ($recent_posts_count > 0) {
@@ -120,7 +120,7 @@ class CoreForum extends CorePlugin implements StudipModule
public static function deleteCourseContents($course_id): void
{
- \Forum\ForumCategory::deleteBySQL("range_id = ?", [$course_id]);
- \Forum\ForumTopic::deleteBySQL("range_id = ?", [$course_id]);
+ \Forum\Category::deleteBySQL("range_id = ?", [$course_id]);
+ \Forum\Topic::deleteBySQL("range_id = ?", [$course_id]);
}
}