Ver código fonte

feat: :sparkles: Adicionando tipos de usuarios e bloqueando login ao backoffice

Adicionando tipos de usuario PROVIDER e CLIENT, bloqueando login ao backoffice para usuarios CLIENT e PROVIDER, criando usuarios padrao para esses tipos novos no seeder
Gustavo Zanatta 1 mês atrás
pai
commit
1008c97cb8

+ 2 - 1
app/Enums/UserTypeEnum.php

@@ -10,5 +10,6 @@ enum UserTypeEnum: string
 
     case ADMIN = 'ADMIN';
     case USER = 'USER';
-    case GUEST = 'GUEST';
+    case PROVIDER = 'PROVIDER';
+    case CLIENT = 'CLIENT';
 }

+ 1 - 1
app/Services/AuthService.php

@@ -13,7 +13,7 @@ class AuthService
 {
     public function login(string $email, string $password): ?array
     {
-        if (!Auth::attempt(["email" => $email, "password" => $password])) {
+        if (!Auth::attempt(["email" => $email, "password" => $password]) || (User::where("email", $email)->first()->type == 'CLIENT' || User::where("email", $email)->first()->type == 'PROVIDER')) {
             return null;
         }
 

+ 24 - 0
database/seeders/UserSeeder.php

@@ -20,5 +20,29 @@ class UserSeeder extends Seeder
             'type' => UserTypeEnum::ADMIN,
         ]);
         $user->save();
+
+        $user = User::firstOrNew([
+            'name' => 'Usuário Teste',
+            'email' => 'usuario.teste@softpar.inf.br',
+            'password' => 'S@ft2080.',
+            'type' => UserTypeEnum::USER,
+        ]);
+        $user->save();
+
+        $user = User::firstOrNew([
+            'name' => 'Prestador Teste',
+            'email' => 'prestador.teste@softpar.inf.br',
+            'password' => 'S@ft2080.',
+            'type' => UserTypeEnum::PROVIDER,
+        ]);
+        $user->save();
+
+        $user = User::firstOrNew([
+            'name' => 'Cliente Teste',
+            'email' => 'cliente.teste@softpar.inf.br',
+            'password' => 'S@ft2080.',
+            'type' => UserTypeEnum::CLIENT,
+        ]);
+        $user->save();
     }
 }

+ 11 - 4
database/seeders/UserTypePermissionSeeder.php

@@ -38,11 +38,18 @@ class UserTypePermissionSeeder extends Seeder
                     $this->seedUserTypePermissions($userPermissions, UserTypeEnum::USER->value);
                     break;
 
-                case UserTypeEnum::GUEST:
-                    $guestPermissions = [
-                        ['scope' => 'config.user', 'bits' => 1],
+                case UserTypeEnum::PROVIDER:
+                    $providerPermissions = [
+                        ['scope' => 'dashboard', 'bits' => 1],
+                    ];
+                    $this->seedUserTypePermissions($providerPermissions, UserTypeEnum::PROVIDER->value);
+                    break;
+
+                case UserTypeEnum::CLIENT:
+                    $clientPermissions = [
+                        ['scope' => 'dashboard', 'bits' => 1],
                     ];
-                    $this->seedUserTypePermissions($guestPermissions, UserTypeEnum::GUEST->value);
+                    $this->seedUserTypePermissions($clientPermissions, UserTypeEnum::CLIENT->value);
                     break;
             }
         }