From 8d5ff0a7aec4e49d9fb234cbdf2b8b84ccc91bb3 Mon Sep 17 00:00:00 2001 From: kang Date: Wed, 24 Jun 2026 10:14:36 +0800 Subject: [PATCH] fix: correct recursive call in requireDefaultAdminSiteId and remove platform_only flag from settings navigation - Fixed infinite recursion bug in AdminUser::requireDefaultAdminSiteId() by calling defaultAdminSiteId() instead of itself - Removed platform_only restriction from settings navigation to allow site-level access to reconciliation and rebate management features --- app/Models/AdminUser.php | 2 +- app/Support/AdminAuthorizationRegistry.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Models/AdminUser.php b/app/Models/AdminUser.php index 57ab9bf..87102a6 100644 --- a/app/Models/AdminUser.php +++ b/app/Models/AdminUser.php @@ -67,7 +67,7 @@ final class AdminUser extends Authenticatable public static function requireDefaultAdminSiteId(): int { - $siteId = self::requireDefaultAdminSiteId(); + $siteId = self::defaultAdminSiteId(); if ($siteId === null) { throw ValidationException::withMessages([ 'admin_site_id' => [__('admin.no_integration_site')], diff --git a/app/Support/AdminAuthorizationRegistry.php b/app/Support/AdminAuthorizationRegistry.php index e1fd2a9..7134759 100644 --- a/app/Support/AdminAuthorizationRegistry.php +++ b/app/Support/AdminAuthorizationRegistry.php @@ -166,7 +166,7 @@ final class AdminAuthorizationRegistry ['segment' => 'admin_users', 'label' => 'Admin Users', 'href' => '/admin/admin-users', 'nav_group' => 'platform', 'platform_only' => true, 'requiredAny' => ['prd.admin_user.manage']], ['segment' => 'admin_roles', 'label' => 'Admin Roles', 'href' => '/admin/admin-roles', 'nav_group' => 'platform', 'platform_only' => true, 'requiredAny' => ['prd.admin_role.manage']], ['segment' => 'audit', 'label' => 'Audit Logs', 'href' => '/admin/audit-logs', 'nav_group' => 'platform', 'platform_only' => true, 'requiredAny' => ['prd.audit.view']], - ['segment' => 'settings', 'label' => 'Settings', 'href' => '/admin/settings', 'nav_group' => 'platform', 'platform_only' => true, 'requiredAny' => ['prd.wallet_reconcile.manage', 'prd.rebate.manage', 'prd.rebate.view', 'prd.payout.manage']], + ['segment' => 'settings', 'label' => 'Settings', 'href' => '/admin/settings', 'nav_group' => 'platform', 'requiredAny' => ['prd.wallet_reconcile.manage', 'prd.rebate.manage', 'prd.rebate.view', 'prd.payout.manage']], ['segment' => 'risk', 'label' => 'Risk', 'href' => '/admin/risk', 'nav_group' => 'platform', 'platform_only' => true, 'requiredAny' => ['prd.risk.view', 'prd.risk.manage']], ]; }