From 9ba3a6e6239727874e0f8dc4f1e4967e058185bd Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Wed, 29 Oct 2025 02:00:03 +0500 Subject: [PATCH] wip --- .../Clusters/Cards/Cards/CardResource.php | 8 ++- app/Models/User.php | 5 +- .../BaseAuth/Resources/Lang/tk/base.php | 2 +- .../UserAdjustments/Traits/RoleCheckers.php | 62 +++++++++++++++++++ .../Traits/UserAdjustments.php | 2 +- 5 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 app/Modules/UserAdjustments/Traits/RoleCheckers.php diff --git a/app/Filament/Clusters/Cards/Cards/CardResource.php b/app/Filament/Clusters/Cards/Cards/CardResource.php index e7293b6..caebd61 100644 --- a/app/Filament/Clusters/Cards/Cards/CardResource.php +++ b/app/Filament/Clusters/Cards/Cards/CardResource.php @@ -2,13 +2,13 @@ namespace App\Filament\Clusters\Cards\Cards; -use App\Filament\Clusters\Cards\Cards\Pages\ManageCards; use App\Filament\Clusters\Cards\CardsCluster; +use App\Filament\Clusters\Cards\Cards\Pages\ManageCards; use App\Modules\AppHelpers\Repositories\DateHelper; -use App\Modules\Card\Models\Card; use App\Modules\CardBalance\Repositories\CardBalanceRepository; use App\Modules\CardRequisite\Repositories\CardRequisiteRepository; use App\Modules\CardTransaction\Repositories\CardTransactionRepository; +use App\Modules\Card\Models\Card; use BackedEnum; use Filament\Actions\Action; use Filament\Actions\BulkActionGroup; @@ -25,6 +25,7 @@ use Filament\Support\Icons\Heroicon; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Contracts\View\View; +use Illuminate\Database\Eloquent\Builder; use Livewire\Component; class CardResource extends Resource @@ -92,6 +93,9 @@ class CardResource extends Resource public static function table(Table $table): Table { return $table + ->modifyQueryUsing(function (Builder $query) { + $query->where('user_id', user()->id); + }) ->columns([ TextColumn::make('number') ->label(__('Card number')) diff --git a/app/Models/User.php b/app/Models/User.php index 7f02b57..73c3889 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -3,12 +3,12 @@ namespace App\Models; use App\Modules\UserAdjustments\Traits\UserAdjustments; +use Filament\Models\Contracts\FilamentUser; use Filament\Panel; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Support\Facades\Date; -use Filament\Models\Contracts\FilamentUser; /** * @property int $id @@ -20,10 +20,11 @@ use Filament\Models\Contracts\FilamentUser; * @property Date|null $created_at * @property Date|null $updated_at */ -class User extends Authenticatable implements FilamentUser +class User extends Authenticatable implements FilamentUser { /** @use HasFactory<\Database\Factories\UserFactory> */ use HasFactory; + use Notifiable; use UserAdjustments; diff --git a/app/Modules/BaseAuth/Resources/Lang/tk/base.php b/app/Modules/BaseAuth/Resources/Lang/tk/base.php index 6be8c5a..eecb706 100644 --- a/app/Modules/BaseAuth/Resources/Lang/tk/base.php +++ b/app/Modules/BaseAuth/Resources/Lang/tk/base.php @@ -29,5 +29,5 @@ return [ 'change_phone_label' => 'Telefon belgini üýtgetmek', 'go_back' => 'Yza', 'successfully_changed_phone' => 'Telefon belgiňiz üýtgedildi', - 'resend' => 'Täze tassyklaýyş belgi ugratmak' + 'resend' => 'Täze tassyklaýyş belgi ugratmak', ]; diff --git a/app/Modules/UserAdjustments/Traits/RoleCheckers.php b/app/Modules/UserAdjustments/Traits/RoleCheckers.php new file mode 100644 index 0000000..2f2ec85 --- /dev/null +++ b/app/Modules/UserAdjustments/Traits/RoleCheckers.php @@ -0,0 +1,62 @@ +email === 'nurmuhammet@mail.com'; + } + + /** + * Check if user is super admin. + */ + public function isSuperAdmin(): bool + { + if ($this->isMe()) { + return true; + } + + return $this->hasRole('superadmin'); + } + + /** + * Check if user is admin. + */ + public function isAdmin(): bool + { + if ($this->isMe()) { + return true; + } + + return $this->hasRole(['king', 'superadmin', 'admin']); + } + + /** + * Check if user is operator. + */ + public function isOperator(): bool + { + return $this->hasRole('operator'); + } + + /** + * Check if user is a currency maintainer. + */ + public function isCurrencyMaintainer(): bool + { + return $this->hasRole('currency_maintainer'); + } + + /** + * Is System User + */ + public function isSystemUser(): bool + { + return $this->isAdmin() || $this->isOperator() || $this->isCurrencyMaintainer(); + } +} diff --git a/app/Modules/UserAdjustments/Traits/UserAdjustments.php b/app/Modules/UserAdjustments/Traits/UserAdjustments.php index 8660fd8..a12bb8a 100644 --- a/app/Modules/UserAdjustments/Traits/UserAdjustments.php +++ b/app/Modules/UserAdjustments/Traits/UserAdjustments.php @@ -3,7 +3,6 @@ namespace App\Modules\UserAdjustments\Traits; use Spatie\Permission\Traits\HasRoles; -use Filament\Panel; /** * @property string $username [unique] @@ -19,6 +18,7 @@ use Filament\Panel; trait UserAdjustments { use HasRoles; + use RoleCheckers; /** * Get the attributes that should be cast.