From cf8146fb4c5feab2491a88034e370646a407c17f Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Mon, 8 Sep 2025 14:38:55 +0500 Subject: [PATCH] wip --- app/Providers/AuthServiceProvider.php | 1 + app/Repos/System/Nova/NovaMenuRepo.php | 13 +++++++------ app/Repos/System/Nova/NovaPermissionRepo.php | 8 ++++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 17479d6..7bfc010 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -77,6 +77,7 @@ class AuthServiceProvider extends ServiceProvider Gate::define('isMe', fn (User $user) => $user->isMe()); Gate::define('isSuperAdmin', fn (User $user) => $user->isSuperAdmin()); Gate::define('isAdmin', fn (User $user) => $user->isAdmin()); + Gate::define('isCurrencyMaintainer', fn (User $user) => $user->isCurrencyMaintainer()); Gate::define('systemUser', fn (User $user) => $user->isSystemUser()); Gate::define('fuck', fn () => true); diff --git a/app/Repos/System/Nova/NovaMenuRepo.php b/app/Repos/System/Nova/NovaMenuRepo.php index f50e01e..8941697 100644 --- a/app/Repos/System/Nova/NovaMenuRepo.php +++ b/app/Repos/System/Nova/NovaMenuRepo.php @@ -98,17 +98,18 @@ class NovaMenuRepo MenuItem::resource(Branch::class), ])->collapsedByDefault(), - MenuGroup::make(__('Currencies'), [ - MenuItem::resource(CurrencyRate::class), - MenuItem::resource(NovaVisaMasterSetting::class), - ])->collapsedByDefault(), - MenuGroup::make(__('Locale'), [ MenuItem::resource(LocaleManagerResource::class), ])->collapsedByDefault(), - ])->icon('cog')->collapsedByDefault()->canSee(NovaPermissionRepo::isAdmin()), + MenuSection::make(__('Currencies'), [ + MenuItem::resource(CurrencyRate::class), + MenuItem::resource(NovaVisaMasterSetting::class), + ])->icon('currency-dollar') + ->collapsedByDefault() + ->canSee(fn () => NovaPermissionRepo::isAdmin() || NovaPermissionRepo::isCurrencyMaintainer()), + MenuSection::resource(OnlinePaymentHistoryResource::class) ->icon('credit-card') ->canSee(NovaPermissionRepo::isAdmin()), diff --git a/app/Repos/System/Nova/NovaPermissionRepo.php b/app/Repos/System/Nova/NovaPermissionRepo.php index 6ef4c64..6ee0990 100644 --- a/app/Repos/System/Nova/NovaPermissionRepo.php +++ b/app/Repos/System/Nova/NovaPermissionRepo.php @@ -30,4 +30,12 @@ class NovaPermissionRepo { return fn () => Gate::allows('isAdmin', auth()->user()); } + + /** + * Check if user is a currency maintainer + */ + public static function isCurrencyMaintainer(): Closure + { + return fn () => Gate::allows('isCurrencyMaintainer', auth()->user()); + } }