Skip to content

Commit c462047

Browse files
committed
Bugfix Release 9.0.1
- Fixed hasPerm() array handling for addon page permissions - Removed duplicate language key - Translated German comments to English - Added array filtering for addon favorites - Excluded mediapool and adminer from favorites (centrally accessible) - Improved permission checks to properly iterate through permission arrays
1 parent 4a2d848 commit c462047

2 files changed

Lines changed: 39 additions & 7 deletions

File tree

lib/Button/FavoriteButton.php

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,17 @@ public function get(): string
106106

107107
// Check user permission
108108
$requiredPerms = $page->getRequiredPermissions();
109-
if (!empty($requiredPerms) && !$user->hasPerm($requiredPerms)) {
110-
continue;
109+
if (!empty($requiredPerms)) {
110+
$hasAllPerms = true;
111+
foreach ($requiredPerms as $perm) {
112+
if (!$user->hasPerm($perm)) {
113+
$hasAllPerms = false;
114+
break;
115+
}
116+
}
117+
if (!$hasAllPerms) {
118+
continue;
119+
}
111120
}
112121

113122
$attributes = [
@@ -178,15 +187,29 @@ public static function getAvailablePages(): array
178187
if (in_array($pageKey, ['setup', 'login', 'logout', '2factor_auth', '2factor_auth_verify'], true)) {
179188
continue;
180189
}
190+
191+
// Skip mediapool and adminer - they are central and easily accessible
192+
if (in_array($pageKey, ['mediapool', 'adminer'], true)) {
193+
continue;
194+
}
181195

182196
// Skip if user has no permission
183197
if ($page->isHidden()) {
184198
continue;
185199
}
186200

187201
$requiredPerms = $page->getRequiredPermissions();
188-
if (!empty($requiredPerms) && !$user->hasPerm($requiredPerms)) {
189-
continue;
202+
if (!empty($requiredPerms)) {
203+
$hasAllPerms = true;
204+
foreach ($requiredPerms as $perm) {
205+
if (!$user->hasPerm($perm)) {
206+
$hasAllPerms = false;
207+
break;
208+
}
209+
}
210+
if (!$hasAllPerms) {
211+
continue;
212+
}
190213
}
191214

192215
$addonName = $pageKey;
@@ -204,8 +227,17 @@ public static function getAvailablePages(): array
204227
}
205228

206229
$subRequiredPerms = $subpage->getRequiredPermissions();
207-
if (!empty($subRequiredPerms) && !$user->hasPerm($subRequiredPerms)) {
208-
continue;
230+
if (!empty($subRequiredPerms)) {
231+
$hasAllPerms = true;
232+
foreach ($subRequiredPerms as $perm) {
233+
if (!$user->hasPerm($perm)) {
234+
$hasAllPerms = false;
235+
break;
236+
}
237+
}
238+
if (!$hasAllPerms) {
239+
continue;
240+
}
209241
}
210242

211243
$fullKey = $pageKey . '/' . $subpageKey;

package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package: quick_navigation
2-
version: '9.0.0'
2+
version: '9.0.1'
33
author: 'Friends Of REDAXO'
44
supportpage: https://github.com/FriendsOfREDAXO/quick_navigation
55
perm: quick_navigation[]

0 commit comments

Comments
 (0)