only return user's packages and items for supervisor and user role, and adding items field for package index

This commit is contained in:
ehsan.moradi
2025-04-27 11:30:27 +03:30
parent d84a9a18c0
commit 838ad7ca12
4 changed files with 55 additions and 62 deletions
+1 -5
View File
@@ -92,12 +92,8 @@ class ItemController extends Controller
] ); ] );
$user = auth( 'api' )->user(); $user = auth( 'api' )->user();
if ( $user->hasRole( 'User' ) ) { if ( $user->hasRole( 'User' ) or $user->hasRole('Supervisor') ) {
$Items = $Items->where( "user_id" , $user->id ); $Items = $Items->where( "user_id" , $user->id );
} elseif ( $user->hasRole( 'Supervisor' ) ) {
$Items = $Items->whereHas( 'user' , function ( $query ) use ( $user ) {
$query->where( 'medical_center_id' , $user->medical_center_id );
} );
} }
$Items = $Items->orderByDesc( 'id' )->paginate( 10 ); $Items = $Items->orderByDesc( 'id' )->paginate( 10 );
+1 -5
View File
@@ -61,12 +61,8 @@ class PackageController extends Controller
]); ]);
$user = auth('api')->user(); $user = auth('api')->user();
if ($user->hasRole('User')) { if ($user->hasRole('User') or $user->hasRole('Supervisor')) {
$Packages = $Packages->where("user_id", $user->id); $Packages = $Packages->where("user_id", $user->id);
} elseif ($user->hasRole('Supervisor')) {
$Packages = $Packages->whereHas('user', function ($query) use ($user) {
$query->where('medical_center_id', $user->medical_center_id);
});
} }
$Packages = $Packages->orderByDesc('id')->paginate(10); $Packages = $Packages->orderByDesc('id')->paginate(10);
+3
View File
@@ -26,6 +26,7 @@ class PackageRepository implements PackageRepositoryInterface
'user.medical_center' => function ($query) { 'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number'); $query->select('id', 'name', 'address', 'phone_number');
}, },
'items'
]) ])
->whereHas('user', function ($query) use ($user) { ->whereHas('user', function ($query) use ($user) {
$query->where('users.medical_center_id', $user->medical_center_id); $query->where('users.medical_center_id', $user->medical_center_id);
@@ -53,6 +54,7 @@ class PackageRepository implements PackageRepositoryInterface
'user.medical_center' => function ($query) { 'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number'); $query->select('id', 'name', 'address', 'phone_number');
}, },
'items'
])->whereHas('user', function ($query) use ($user) { ])->whereHas('user', function ($query) use ($user) {
$query->where('users.medical_center_id', $user->medical_center_id); $query->where('users.medical_center_id', $user->medical_center_id);
}) })
@@ -78,6 +80,7 @@ class PackageRepository implements PackageRepositoryInterface
'user.medical_center' => function ($query) { 'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number'); $query->select('id', 'name', 'address', 'phone_number');
}, },
'items'
]) ])
->orderByDesc('id') ->orderByDesc('id')
->paginate(10); ->paginate(10);
+16 -18
View File
@@ -15,8 +15,14 @@ class TempSeeder extends Seeder
*/ */
public function run(): void public function run(): void
{ {
$users = [ $roles = [
[ ['name' => 'Admin','guard_name'=>'api'],
['name' => 'Supervisor','guard_name'=>'api'],
['name' => 'User','guard_name'=>'api']
];
Role::insert($roles);
$user = User::create([
'name' => 'user', 'name' => 'user',
'email' => 'user@user', 'email' => 'user@user',
'country_code' => '0098', 'country_code' => '0098',
@@ -30,8 +36,8 @@ class TempSeeder extends Seeder
'remember_token' => '1234567891', 'remember_token' => '1234567891',
'created_at' => now(), 'created_at' => now(),
'updated_at' => now(), 'updated_at' => now(),
], ]);
[ $admin = User::create([
'name' => 'admin', 'name' => 'admin',
'email' => 'admin@admin', 'email' => 'admin@admin',
'country_code' => '0098', 'country_code' => '0098',
@@ -45,8 +51,8 @@ class TempSeeder extends Seeder
'remember_token' => '5432123459', 'remember_token' => '5432123459',
'created_at' => now(), 'created_at' => now(),
'updated_at' => now(), 'updated_at' => now(),
], ]);
[ $supervisor=User::create([
'name' => 'supervisor', 'name' => 'supervisor',
'email' => 'supervisor@supervisor', 'email' => 'supervisor@supervisor',
'country_code' => '0098', 'country_code' => '0098',
@@ -60,18 +66,10 @@ class TempSeeder extends Seeder
'remember_token' => '1234543212', 'remember_token' => '1234543212',
'created_at' => now(), 'created_at' => now(),
'updated_at' => now(), 'updated_at' => now(),
] ]);
];
\App\Models\User::insert($users);
$roles = [
['name' => 'Admin','guard_name'=>'api'],
['name' => 'Supervisor','guard_name'=>'api'],
['name' => 'User','guard_name'=>'api']
];
Role::insert($roles);
User::find(436)->assignRole('User'); $user->assignRole('User');
User::find(437)->assignRole('Admin'); $admin->assignRole('Admin');
User::find(438)->assignRole('Supervisor'); $supervisor->assignRole('Supervisor');
} }
} }