From 105bf79f99fec2affbf89d3e059d19aa3e22c934 Mon Sep 17 00:00:00 2001 From: Joshua Blum Date: Wed, 3 Jun 2026 19:53:58 +0200 Subject: [PATCH 1/2] Fix configure navs permission not working --- src/Policies/NavTreePolicy.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Policies/NavTreePolicy.php b/src/Policies/NavTreePolicy.php index 1fbdfc8dcef..037cbe44491 100644 --- a/src/Policies/NavTreePolicy.php +++ b/src/Policies/NavTreePolicy.php @@ -10,7 +10,9 @@ class NavTreePolicy extends NavPolicy public function before($user) { - if (User::fromUser($user)->isSuper()) { + $user = User::fromUser($user); + + if ($user->isSuper() || $user->hasPermission('configure navs')) { return true; } } From d9fcf09cceb1c9fb8a36c4fd17eaaa22da949e5e Mon Sep 17 00:00:00 2001 From: Joshua Blum Date: Wed, 3 Jun 2026 19:55:28 +0200 Subject: [PATCH 2/2] Add test --- tests/Policies/NavTreePolicyTest.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/Policies/NavTreePolicyTest.php b/tests/Policies/NavTreePolicyTest.php index 522df211f6e..0091fa78c6b 100644 --- a/tests/Policies/NavTreePolicyTest.php +++ b/tests/Policies/NavTreePolicyTest.php @@ -37,6 +37,17 @@ public function trees_are_viewable_with_view_and_site_permissions() $this->assertTrue($user->can('view', $nav->makeTree('de'))); } + #[Test] + public function trees_are_viewable_and_editable_with_configure_permission() + { + $user = $this->userWithPermissions(['configure navs']); + + $nav = Nav::make('test'); + + $this->assertTrue($user->can('view', $nav->makeTree('en'))); + $this->assertTrue($user->can('edit', $nav->makeTree('en'))); + } + #[Test] public function navs_are_editable_with_edit_permissions() {