From 914e54859cf18f3d2b5aab9791235aefea706cb8 Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Thu, 7 Nov 2024 10:28:10 +0500 Subject: [PATCH] visa master permissions --- .../Resources/Concerns/VisaMasterAuth.php | 83 +++++++++++++++++++ .../Resources/NovaVisaMasterPaymentOrder.php | 3 + 2 files changed, 86 insertions(+) create mode 100644 app/Modules/VisaMasterPaymentOrder/Nova/Resources/Concerns/VisaMasterAuth.php diff --git a/app/Modules/VisaMasterPaymentOrder/Nova/Resources/Concerns/VisaMasterAuth.php b/app/Modules/VisaMasterPaymentOrder/Nova/Resources/Concerns/VisaMasterAuth.php new file mode 100644 index 0000000..5f16aaf --- /dev/null +++ b/app/Modules/VisaMasterPaymentOrder/Nova/Resources/Concerns/VisaMasterAuth.php @@ -0,0 +1,83 @@ +user(); + + if ($user->isSystemUser()) { + return; + } + + if ($this->resource->user_id == auth()->id()) { + return; + } + + throw new AuthorizationException(); + } + + /** Edit button */ + public function authorizedToUpdate(Request $request): bool + { + $user = auth()->user(); + + if ($user->isSystemUser()) { + return true; + } + + return false; + } + + /** Update */ + public function authorizeToUpdate(Request $request): void + { + $user = auth()->user(); + + if ($user->isSystemUser()) { + return; + } + + if ($this->resource->user_id == auth()->id()) { + return; + } + + throw new AuthorizationException(); + } + + /** Delete button */ + public function authorizedToDelete(Request $request) + { + $user = auth()->user(); + + if ($user->isSystemUser()) { + return true; + } + + return false; + } + + /** Delete */ + public function authorizeToDelete(Request $request) + { + $user = auth()->user(); + + if ($user->isSystemUser()) { + return; + } + + throw new AuthorizationException(); + } + + /** Force delete */ + public function authorizedToForceDelete(Request $request) + { + throw_unless(auth()->user()->isMe(), AuthorizationException::class); + } +} diff --git a/app/Modules/VisaMasterPaymentOrder/Nova/Resources/NovaVisaMasterPaymentOrder.php b/app/Modules/VisaMasterPaymentOrder/Nova/Resources/NovaVisaMasterPaymentOrder.php index 46ebed4..918e25b 100644 --- a/app/Modules/VisaMasterPaymentOrder/Nova/Resources/NovaVisaMasterPaymentOrder.php +++ b/app/Modules/VisaMasterPaymentOrder/Nova/Resources/NovaVisaMasterPaymentOrder.php @@ -4,6 +4,7 @@ namespace App\Modules\VisaMasterPaymentOrder\Nova\Resources; use App\Models\Branch\Branch; use App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder; +use App\Modules\VisaMasterPaymentOrder\Nova\Resources\Concerns\VisaMasterAuth; use App\Modules\VisaMasterPaymentOrder\Nova\Resources\Concerns\VisaMasterPaymentOrderFieldsForDetail; use App\Modules\VisaMasterPaymentOrder\Nova\Resources\Concerns\VisaMasterPaymentOrderFieldsForIndex; use App\Nova\Actions\MakePaymentNovaVisaMaster; @@ -32,6 +33,8 @@ use Outl1ne\NovaSimpleRepeatable\SimpleRepeatable; */ class NovaVisaMasterPaymentOrder extends Resource { + use VisaMasterAuth; + /** * The model the resource corresponds to. *