diff --git a/public/userarea/include/headscript.php b/public/userarea/include/headscript.php index be39623..68452c1 100644 --- a/public/userarea/include/headscript.php +++ b/public/userarea/include/headscript.php @@ -62,5 +62,5 @@ $photousername = basename($avatar); require_once(__DIR__ . '/../../languages/en/general.php'); //include("generalsettings.php"); - +require_once __DIR__ . '/permissions_helper.php'; ?> diff --git a/public/userarea/include/permissions_helper.php b/public/userarea/include/permissions_helper.php new file mode 100644 index 0000000..eb20ed7 --- /dev/null +++ b/public/userarea/include/permissions_helper.php @@ -0,0 +1,62 @@ +hasPermission($permissionName); + } + + if (method_exists($user, 'hasPermissionTo')) { + return $user->hasPermissionTo($permissionName); + } + + if (method_exists($user, 'can')) { + return $user->can($permissionName); + } + + // Fallback: direct DB check using existing Vanguard tables. + static $permissions = null; + + if ($permissions === null) { + $pdo = DBHandlerSelect::getInstance()->getConnection(); + + $stmt = $pdo->prepare(" + SELECT p.name + FROM auth_permissions p + INNER JOIN auth_permission_role pr ON pr.permission_id = p.id + WHERE pr.role_id = ? + "); + $stmt->execute([(int)$kindofrole]); + + $permissions = $stmt->fetchAll(PDO::FETCH_COLUMN); + } + + return in_array($permissionName, $permissions, true); + } +} + +if (!function_exists('visibleButtons')) { + /** + * Filter visible buttons. + */ + function visibleButtons(array $buttons) + { + return array_values(array_filter($buttons, function ($button) { + return empty($button['permission']) || userCan($button['permission']); + })); + } +} diff --git a/public/userarea/production_dashboard.php b/public/userarea/production_dashboard.php index 1cd750a..50e1eab 100644 --- a/public/userarea/production_dashboard.php +++ b/public/userarea/production_dashboard.php @@ -1,59 +1,5 @@ hasPermission($permissionName); - } - - if (method_exists($user, 'hasPermissionTo')) { - return $user->hasPermissionTo($permissionName); - } - - if (method_exists($user, 'can')) { - return $user->can($permissionName); - } - - // Fallback: direct DB check using existing Vanguard tables. - static $permissions = null; - - if ($permissions === null) { - $pdo = DBHandlerSelect::getInstance()->getConnection(); - - $stmt = $pdo->prepare(" - SELECT p.name - FROM auth_permissions p - INNER JOIN auth_permission_role pr ON pr.permission_id = p.id - WHERE pr.role_id = ? - "); - $stmt->execute([(int)$kindofrole]); - - $permissions = $stmt->fetchAll(PDO::FETCH_COLUMN); - } - - return in_array($permissionName, $permissions, true); -} - -/** - * Filter visible buttons. - */ -function visibleButtons(array $buttons) -{ - return array_values(array_filter($buttons, function ($button) { - return empty($button['permission']) || userCan($button['permission']); - })); -} -?> - 'secOperativo',