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();
if ( $user->hasRole( 'User' ) ) {
if ( $user->hasRole( 'User' ) or $user->hasRole('Supervisor') ) {
$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 );
+1 -5
View File
@@ -61,12 +61,8 @@ class PackageController extends Controller
]);
$user = auth('api')->user();
if ($user->hasRole('User')) {
if ($user->hasRole('User') or $user->hasRole('Supervisor')) {
$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);
+3
View File
@@ -26,6 +26,7 @@ class PackageRepository implements PackageRepositoryInterface
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])
->whereHas('user', function ($query) use ($user) {
$query->where('users.medical_center_id', $user->medical_center_id);
@@ -53,6 +54,7 @@ class PackageRepository implements PackageRepositoryInterface
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])->whereHas('user', function ($query) use ($user) {
$query->where('users.medical_center_id', $user->medical_center_id);
})
@@ -78,6 +80,7 @@ class PackageRepository implements PackageRepositoryInterface
'user.medical_center' => function ($query) {
$query->select('id', 'name', 'address', 'phone_number');
},
'items'
])
->orderByDesc('id')
->paginate(10);
+50 -52
View File
@@ -15,54 +15,6 @@ class TempSeeder extends Seeder
*/
public function run(): void
{
$users = [
[
'name' => 'user',
'email' => 'user@user',
'country_code' => '0098',
'cell_number' => '09392349878',
'gender' => 'Male',
'verified' => 'Verified',
'status' => 'Active',
'medical_center_id' => 1, // ایجاد مرکز پزشکی به طور خودکار
'password' => bcrypt('password'), // رمز عبور پیش‌فرض
'address' => 'yyop.st 45 5.No',
'remember_token' => '1234567891',
'created_at' => now(),
'updated_at' => now(),
],
[
'name' => 'admin',
'email' => 'admin@admin',
'country_code' => '0098',
'cell_number' => '09121231234',
'gender' => 'Male',
'verified' => 'Verified',
'status' => 'Active',
'medical_center_id' => 1, // ایجاد مرکز پزشکی به طور خودکار
'password' => bcrypt('password'), // رمز عبور پیش‌فرض
'address' => 'rgdforp.st 49 8.No',
'remember_token' => '5432123459',
'created_at' => now(),
'updated_at' => now(),
],
[
'name' => 'supervisor',
'email' => 'supervisor@supervisor',
'country_code' => '0098',
'cell_number' => '09101231232',
'gender' => 'Male',
'verified' => 'Verified',
'status' => 'Active',
'medical_center_id' => 1, // ایجاد مرکز پزشکی به طور خودکار
'password' => bcrypt('password'), // رمز عبور پیش‌فرض
'address' => 'yyhdfghop.st 43 6.No',
'remember_token' => '1234543212',
'created_at' => now(),
'updated_at' => now(),
]
];
\App\Models\User::insert($users);
$roles = [
['name' => 'Admin','guard_name'=>'api'],
['name' => 'Supervisor','guard_name'=>'api'],
@@ -70,8 +22,54 @@ class TempSeeder extends Seeder
];
Role::insert($roles);
User::find(436)->assignRole('User');
User::find(437)->assignRole('Admin');
User::find(438)->assignRole('Supervisor');
$user = User::create([
'name' => 'user',
'email' => 'user@user',
'country_code' => '0098',
'cell_number' => '09392349878',
'gender' => 'Male',
'verified' => 'Verified',
'status' => 'Active',
'medical_center_id' => 1, // ایجاد مرکز پزشکی به طور خودکار
'password' => bcrypt('password'), // رمز عبور پیش‌فرض
'address' => 'yyop.st 45 5.No',
'remember_token' => '1234567891',
'created_at' => now(),
'updated_at' => now(),
]);
$admin = User::create([
'name' => 'admin',
'email' => 'admin@admin',
'country_code' => '0098',
'cell_number' => '09121231234',
'gender' => 'Male',
'verified' => 'Verified',
'status' => 'Active',
'medical_center_id' => 1, // ایجاد مرکز پزشکی به طور خودکار
'password' => bcrypt('password'), // رمز عبور پیش‌فرض
'address' => 'rgdforp.st 49 8.No',
'remember_token' => '5432123459',
'created_at' => now(),
'updated_at' => now(),
]);
$supervisor=User::create([
'name' => 'supervisor',
'email' => 'supervisor@supervisor',
'country_code' => '0098',
'cell_number' => '09101231232',
'gender' => 'Male',
'verified' => 'Verified',
'status' => 'Active',
'medical_center_id' => 1, // ایجاد مرکز پزشکی به طور خودکار
'password' => bcrypt('password'), // رمز عبور پیش‌فرض
'address' => 'yyhdfghop.st 43 6.No',
'remember_token' => '1234543212',
'created_at' => now(),
'updated_at' => now(),
]);
$user->assignRole('User');
$admin->assignRole('Admin');
$supervisor->assignRole('Supervisor');
}
}
}