diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index c6d3b293..0720ef6a 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -162,16 +162,30 @@ class UserController extends Controller public function getByMedicalCenter( MedicalCenter $MedicalCenter ) { $user = auth( 'api' )->user(); + if ( auth( 'api' )->user()->cant( 'getByMedicalCenter' , $MedicalCenter ) ) { return MessageResponse::error( trans( 'messages.failed' ) ); } - $MedicalCenter = $MedicalCenter->load( [ 'users' => function ( $query ) use ( $user ) { - if ( $user->hasRole( 'User' ) ) { - return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] )->where( 'id' , $user->id ); - } else { - return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] ); - } - } , 'users.roles' ] ); + if ($user->hasRole('Admin')){ + $MedicalCenter = MedicalCenter::with(['users' => function ($query) { + $query->select('id', 'medical_center_id', 'name', 'cell_number', 'status') + ->whereDoesntHave('roles', function ($roleQuery) { + $roleQuery->where('name', 'Admin'); + }); + }, 'users.roles'])->get(); + }else{ + $MedicalCenter = $MedicalCenter->load( [ 'users' => function ( $query ) use ( $user ) { + if ( $user->hasRole( 'User' ) ) { + return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] )->where( 'id' , $user->id ); + } else { + return $query->select( [ 'id' , 'medical_center_id' , 'name' , 'cell_number' , 'status' ] ) + ->whereDoesntHave('roles', function ($roleQuery) { + $roleQuery->where('name', 'Admin'); + }); + } + } , 'users.roles' ] ); + } + return MessageResponse::data( $MedicalCenter ); }