From f9023086c955ca20e3661aad1749d300d4541c0f Mon Sep 17 00:00:00 2001 From: Moradi Date: Wed, 9 Apr 2025 14:02:13 +0330 Subject: [PATCH] items that belongs to a package cannot be transferred. --- .../Controllers/TransferItemController.php | 2 +- app/Policies/TransferPolicy.php | 22 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/TransferItemController.php b/app/Http/Controllers/TransferItemController.php index dfbdc68a..242b69ba 100644 --- a/app/Http/Controllers/TransferItemController.php +++ b/app/Http/Controllers/TransferItemController.php @@ -58,7 +58,7 @@ class TransferItemController extends Controller public function transfer( StoreTransferRequest $request , Item $Item ) { - if ( auth( 'api' )->user()->cant( 'transferItem' , [ Transfer::class , $Item ] ) ) { + if ( auth( 'api' )->user()->cant( 'transferItem' , [ auth()->user() , $Item ] ) ) { return MessageResponse::error( trans( 'messages.access_denied' ) ); } if ( $Item->user_id != $request->user_id ) { diff --git a/app/Policies/TransferPolicy.php b/app/Policies/TransferPolicy.php index bc21dd3c..b119e626 100644 --- a/app/Policies/TransferPolicy.php +++ b/app/Policies/TransferPolicy.php @@ -17,18 +17,22 @@ class TransferPolicy public function transferItem(User $user, Item $Item) { - if ($user->hasRole('Admin')) { - return true; - } else { - if ($user->hasRole('Supervisor')) { - if ($Item->user->medical_center_id == $user->medical_center_id) { - return true; - } + if(is_null($Item->package_id)){ + if ($user->hasRole('Admin')) { + return true; } else { - if ($Item->user_id == $user->id) { - return true; + if ($user->hasRole('Supervisor')) { + if ($Item->user->medical_center_id == $user->medical_center_id) { + return true; + } + } else { + if ($Item->user_id == $user->id) { + return true; + } } } + } else { + return false; } }