|
|
@@ -10,83 +10,87 @@ use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
class UserTypePermissionSeeder extends Seeder
|
|
|
{
|
|
|
- /**
|
|
|
- * Seed the application's database.
|
|
|
- */
|
|
|
- public function run(): void
|
|
|
- {
|
|
|
- foreach (UserTypeEnum::cases() as $userType) {
|
|
|
- switch ($userType) {
|
|
|
- case UserTypeEnum::ADMIN:
|
|
|
- $permissions = Permission::get()->map(function ($permission) {
|
|
|
- return [
|
|
|
- 'scope' => $permission->scope,
|
|
|
- 'bits' => $permission->bits,
|
|
|
- ];
|
|
|
- })->toArray();
|
|
|
- $this->seedUserTypePermissions($permissions, UserTypeEnum::ADMIN->value);
|
|
|
- break;
|
|
|
+ /**
|
|
|
+ * Seed the application's database.
|
|
|
+ */
|
|
|
+ public function run(): void
|
|
|
+ {
|
|
|
+ foreach (UserTypeEnum::cases() as $userType) {
|
|
|
+ switch ($userType) {
|
|
|
+ case UserTypeEnum::ADMIN:
|
|
|
+ $permissions = Permission::get()->map(function ($permission) {
|
|
|
+ return [
|
|
|
+ 'scope' => $permission->scope,
|
|
|
+ 'bits' => $permission->bits,
|
|
|
+ ];
|
|
|
+ })->toArray();
|
|
|
+ $this->seedUserTypePermissions($permissions, UserTypeEnum::ADMIN->value);
|
|
|
+ break;
|
|
|
|
|
|
- case UserTypeEnum::USER:
|
|
|
- $userPermissions = [
|
|
|
- ['scope' => 'dashboard', 'bits' => 1],
|
|
|
- ['scope' => 'config.user', 'bits' => 5],
|
|
|
- ['scope' => 'config.address', 'bits' => 271],
|
|
|
- ['scope' => 'config.city', 'bits' => 1],
|
|
|
- ['scope' => 'config.client', 'bits' => 271],
|
|
|
- ['scope' => 'config.client_favorite_provider', 'bits' => 271],
|
|
|
- ['scope' => 'config.provider_client_block', 'bits' => 271],
|
|
|
- ['scope' => 'config.client_provider_block', 'bits' => 271],
|
|
|
- ['scope' => 'config.client_payment_method', 'bits' => 271],
|
|
|
- ['scope' => 'config.schedule', 'bits' => 271],
|
|
|
- ['scope' => 'config.custom_schedule', 'bits' => 271],
|
|
|
- ['scope' => 'config.country', 'bits' => 1],
|
|
|
- ['scope' => 'config.state', 'bits' => 1],
|
|
|
- ['scope' => 'config.provider', 'bits' => 271],
|
|
|
- ['scope' => 'config.provider_speciality', 'bits' => 271],
|
|
|
- ['scope' => 'config.provider_services_types', 'bits' => 271],
|
|
|
- ['scope' => 'config.provider_payment_method', 'bits' => 271],
|
|
|
- ['scope' => 'config.provider_working_day', 'bits' => 271],
|
|
|
- ['scope' => 'config.provider_blocked_day', 'bits' => 271],
|
|
|
- ['scope' => 'config.improvement_type', 'bits' => 271],
|
|
|
- ['scope' => 'config.media', 'bits' => 271],
|
|
|
- ['scope' => 'config.service_type', 'bits' => 271],
|
|
|
- ['scope' => 'config.speciality', 'bits' => 271],
|
|
|
- ['scope' => 'config.review', 'bits' => 271],
|
|
|
- ['scope' => 'config.review_improvement', 'bits' => 271],
|
|
|
- ];
|
|
|
- $this->seedUserTypePermissions($userPermissions, UserTypeEnum::USER->value);
|
|
|
- break;
|
|
|
+ case UserTypeEnum::USER:
|
|
|
+ $userPermissions = [
|
|
|
+ ['scope' => 'dashboard', 'bits' => 1],
|
|
|
+ ['scope' => 'config.user', 'bits' => 5],
|
|
|
+ ['scope' => 'config.address', 'bits' => 271],
|
|
|
+ ['scope' => 'config.city', 'bits' => 1],
|
|
|
+ ['scope' => 'config.client', 'bits' => 271],
|
|
|
+ ['scope' => 'config.client_favorite_provider', 'bits' => 271],
|
|
|
+ ['scope' => 'config.provider_client_block', 'bits' => 271],
|
|
|
+ ['scope' => 'config.client_provider_block', 'bits' => 271],
|
|
|
+ ['scope' => 'config.client_payment_method', 'bits' => 271],
|
|
|
+ ['scope' => 'config.schedule', 'bits' => 271],
|
|
|
+ ['scope' => 'config.custom_schedule', 'bits' => 271],
|
|
|
+ ['scope' => 'config.country', 'bits' => 1],
|
|
|
+ ['scope' => 'config.state', 'bits' => 1],
|
|
|
+ ['scope' => 'config.provider', 'bits' => 271],
|
|
|
+ ['scope' => 'config.provider_speciality', 'bits' => 271],
|
|
|
+ ['scope' => 'config.provider_services_types', 'bits' => 271],
|
|
|
+ ['scope' => 'config.provider_payment_method', 'bits' => 271],
|
|
|
+ ['scope' => 'config.provider_working_day', 'bits' => 271],
|
|
|
+ ['scope' => 'config.provider_blocked_day', 'bits' => 271],
|
|
|
+ ['scope' => 'config.improvement_type', 'bits' => 271],
|
|
|
+ ['scope' => 'config.media', 'bits' => 271],
|
|
|
+ ['scope' => 'config.service_type', 'bits' => 271],
|
|
|
+ ['scope' => 'config.speciality', 'bits' => 271],
|
|
|
+ ['scope' => 'config.review', 'bits' => 271],
|
|
|
+ ['scope' => 'config.review_improvement', 'bits' => 271],
|
|
|
+ ];
|
|
|
+ $this->seedUserTypePermissions($userPermissions, UserTypeEnum::USER->value);
|
|
|
+ break;
|
|
|
|
|
|
- case UserTypeEnum::PROVIDER:
|
|
|
- $providerPermissions = [
|
|
|
- ['scope' => 'dashboard', 'bits' => 1],
|
|
|
- ];
|
|
|
- $this->seedUserTypePermissions($providerPermissions, UserTypeEnum::PROVIDER->value);
|
|
|
- break;
|
|
|
+ case UserTypeEnum::PROVIDER:
|
|
|
+ $providerPermissions = [
|
|
|
+ ['scope' => 'dashboard', 'bits' => 1],
|
|
|
+ ['scope' => 'config.user', 'bits' => 5],
|
|
|
+ ['scope' => 'config.address', 'bits' => 271],
|
|
|
+ ];
|
|
|
+ $this->seedUserTypePermissions($providerPermissions, UserTypeEnum::PROVIDER->value);
|
|
|
+ break;
|
|
|
|
|
|
- case UserTypeEnum::CLIENT:
|
|
|
- $clientPermissions = [
|
|
|
- ['scope' => 'dashboard', 'bits' => 1],
|
|
|
- ];
|
|
|
- $this->seedUserTypePermissions($clientPermissions, UserTypeEnum::CLIENT->value);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ case UserTypeEnum::CLIENT:
|
|
|
+ $clientPermissions = [
|
|
|
+ ['scope' => 'dashboard', 'bits' => 1],
|
|
|
+ ['scope' => 'config.user', 'bits' => 5],
|
|
|
+ ['scope' => 'config.address', 'bits' => 271],
|
|
|
+ ];
|
|
|
+ $this->seedUserTypePermissions($clientPermissions, UserTypeEnum::CLIENT->value);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- private function seedUserTypePermissions(array $permissions, string $userType): void
|
|
|
- {
|
|
|
- foreach ($permissions as $permissionData) {
|
|
|
- $permission = Permission::where('scope', $permissionData['scope'])->first();
|
|
|
- if ($permission) {
|
|
|
- $userTypePermission = UserTypePermission::firstOrNew([
|
|
|
- 'user_type' => $userType,
|
|
|
- 'permission_id' => $permission->id,
|
|
|
- 'bits' => $permissionData['bits'],
|
|
|
- ]);
|
|
|
- $userTypePermission->save();
|
|
|
- }
|
|
|
- }
|
|
|
+ private function seedUserTypePermissions(array $permissions, string $userType): void
|
|
|
+ {
|
|
|
+ foreach ($permissions as $permissionData) {
|
|
|
+ $permission = Permission::where('scope', $permissionData['scope'])->first();
|
|
|
+ if ($permission) {
|
|
|
+ $userTypePermission = UserTypePermission::firstOrNew([
|
|
|
+ 'user_type' => $userType,
|
|
|
+ 'permission_id' => $permission->id,
|
|
|
+ 'bits' => $permissionData['bits'],
|
|
|
+ ]);
|
|
|
+ $userTypePermission->save();
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
}
|