From 65a47e8028d3bb0a1f5bd1158f1f17596315ef9a Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Tue, 4 Nov 2025 22:04:41 +0500 Subject: [PATCH] wip --- .../CardOrders/Schemas/CardOrderForm.php | 17 +---- .../Schemas/CardPinOrderForm.php | 17 +---- .../LoanOrders/Schemas/LoanOrderForm.php | 1 + .../FilamentPermissionModule.php | 64 +++++++++++++++++++ .../FilamentPermissionRepository.php | 20 ++++++ 5 files changed, 91 insertions(+), 28 deletions(-) create mode 100644 app/Modules/FilamentPermission/FilamentPermissionModule.php create mode 100644 app/Modules/FilamentPermission/Repositories/FilamentPermissionRepository.php diff --git a/app/Filament/Clusters/Cards/CardOrders/Schemas/CardOrderForm.php b/app/Filament/Clusters/Cards/CardOrders/Schemas/CardOrderForm.php index 76a5dab..8ae1a0f 100644 --- a/app/Filament/Clusters/Cards/CardOrders/Schemas/CardOrderForm.php +++ b/app/Filament/Clusters/Cards/CardOrders/Schemas/CardOrderForm.php @@ -3,6 +3,7 @@ namespace App\Filament\Clusters\Cards\CardOrders\Schemas; use App\Modules\Country\Repositories\CountryRepository; +use App\Modules\FilamentPermission\Repositories\FilamentPermissionRepository; use App\Modules\OrderStatus\Repositories\OrderStatusRepository; use App\Modules\PhoneNumberVerification\Rules\PhoneNumberVerificationRule; use App\Modules\Region\Repositories\RegionRepository; @@ -36,20 +37,8 @@ class CardOrderForm Section::make(__('New card order')) ->columnSpan(4) ->columns(4) - ->disabled(function (string $context) { - if (user()->isSystemUser()) { - return false; - } - - return true; - }) - ->hidden(function (string $context): bool { - if (user()->isSystemUser()) { - return false; - } - - return $context === 'create'; - }) + ->disabled(fn (string $context): bool => FilamentPermissionRepository::forClients()) + ->hidden(fn (string $context) => FilamentPermissionRepository::defaultSystemInput($context)) ->components([ Select::make('status') ->label(__('Status')) diff --git a/app/Filament/Clusters/Cards/Resources/CardPinOrders/Schemas/CardPinOrderForm.php b/app/Filament/Clusters/Cards/Resources/CardPinOrders/Schemas/CardPinOrderForm.php index 07ab626..edc9e85 100644 --- a/app/Filament/Clusters/Cards/Resources/CardPinOrders/Schemas/CardPinOrderForm.php +++ b/app/Filament/Clusters/Cards/Resources/CardPinOrders/Schemas/CardPinOrderForm.php @@ -2,6 +2,7 @@ namespace App\Filament\Clusters\Cards\Resources\CardPinOrders\Schemas; +use App\Modules\FilamentPermission\Repositories\FilamentPermissionRepository; use App\Modules\OrderStatus\Repositories\OrderStatusRepository; use App\Modules\PhoneNumberVerification\Rules\PhoneNumberVerificationRule; use App\Modules\Region\Repositories\RegionRepository; @@ -29,20 +30,8 @@ class CardPinOrderForm Section::make(__('New card pin order')) ->columnSpanFull() - ->disabled(function (string $context) { - if (user()->isSystemUser()) { - return false; - } - - return true; - }) - ->hidden(function (string $context): bool { - if (user()->isSystemUser()) { - return false; - } - - return $context === 'create'; - }) + ->disabled(fn (string $context): bool => FilamentPermissionRepository::forClients()) + ->hidden(fn (string $context) => FilamentPermissionRepository::defaultSystemInput($context)) ->components([ Select::make('status') ->label(__('Status')) diff --git a/app/Filament/Clusters/Loans/LoanOrders/Schemas/LoanOrderForm.php b/app/Filament/Clusters/Loans/LoanOrders/Schemas/LoanOrderForm.php index f7ae527..66def38 100644 --- a/app/Filament/Clusters/Loans/LoanOrders/Schemas/LoanOrderForm.php +++ b/app/Filament/Clusters/Loans/LoanOrders/Schemas/LoanOrderForm.php @@ -39,6 +39,7 @@ class LoanOrderForm Section::make(__('New loan order')) ->columnSpan(4) ->columns(4) + ->components([ Select::make('status') ->label(__('Status')) diff --git a/app/Modules/FilamentPermission/FilamentPermissionModule.php b/app/Modules/FilamentPermission/FilamentPermissionModule.php new file mode 100644 index 0000000..b091bfe --- /dev/null +++ b/app/Modules/FilamentPermission/FilamentPermissionModule.php @@ -0,0 +1,64 @@ +enabled; + } + + /** + * Disable module + */ + public function disable(): void + { + $this->enabled = false; + } + + /** + * Enable module + */ + public function enable(): void + { + $this->enabled = true; + } + + /** + * Check if module has a filament resource + */ + public function hasFilamentResource(): bool + { + return false; + } + + /** + * Get module composer requirements + */ + public function getComposerRequirements(): array + { + return []; + } + + /** + * Get module composer suggestions + */ + public function getComposerSuggestions(): array + { + return []; + } +} diff --git a/app/Modules/FilamentPermission/Repositories/FilamentPermissionRepository.php b/app/Modules/FilamentPermission/Repositories/FilamentPermissionRepository.php new file mode 100644 index 0000000..7953917 --- /dev/null +++ b/app/Modules/FilamentPermission/Repositories/FilamentPermissionRepository.php @@ -0,0 +1,20 @@ +isSystemUser(); + } + + public static function defaultSystemInput(string $context) + { + if (user()->isSystemUser()) { + return false; + } + + return $context === 'create'; + } +}