From e2319de55b5565925edd4c1186b2b8049d025177 Mon Sep 17 00:00:00 2001 From: DariusIII Date: Fri, 27 Mar 2026 14:39:27 +0100 Subject: [PATCH] Fix forum category views --- app/Policies/CategoryPolicy.php | 5 ++++- tests/Unit/Policies/ForumGuestPolicyTest.php | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/Policies/CategoryPolicy.php b/app/Policies/CategoryPolicy.php index fccb02a4b..6a609fed5 100644 --- a/app/Policies/CategoryPolicy.php +++ b/app/Policies/CategoryPolicy.php @@ -79,6 +79,9 @@ class CategoryPolicy extends \TeamTeaTime\Forum\Policies\CategoryPolicy private function canViewCategory(mixed $user): bool { - return $user instanceof User && $user->hasAnyRole(['Admin', 'Moderator']); + // Forum v8 applies category view checks when filtering private category trees. + // Allow any authenticated forum user to see categories while keeping category + // management actions restricted to admins. + return $user instanceof User; } } diff --git a/tests/Unit/Policies/ForumGuestPolicyTest.php b/tests/Unit/Policies/ForumGuestPolicyTest.php index 41b4a115a..a7d2819a7 100644 --- a/tests/Unit/Policies/ForumGuestPolicyTest.php +++ b/tests/Unit/Policies/ForumGuestPolicyTest.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Tests\Unit\Policies; +use App\Models\User; use App\Policies\CategoryPolicy; use App\Policies\PostPolicy; use App\Policies\ThreadPolicy; @@ -28,6 +29,15 @@ final class ForumGuestPolicyTest extends TestCase $this->assertFalse($policy->view(null, $category)); } + public function test_authenticated_non_staff_user_can_view_categories(): void + { + $policy = new CategoryPolicy; + $category = new Category; + $user = new User; + + $this->assertTrue($policy->view($user, $category)); + } + public function test_guest_thread_actions_are_denied_but_threads_remain_viewable(): void { $policy = new ThreadPolicy;