Просмотр исходного кода

feat: adiciona validacao para franqueadora

ebagabee 1 месяц назад
Родитель
Сommit
6443a8bfc8

+ 1 - 0
app/Http/Controllers/AuthController.php

@@ -20,6 +20,7 @@ public function login(AuthRequest $request): JsonResponse
         $result = $this->authService->login(
             email: $validated["email"],
             password: $validated["password"],
+            origem: $validated["origem"]
         );
 
         if (!$result) {

+ 1 - 0
app/Http/Requests/AuthRequest.php

@@ -11,6 +11,7 @@ public function rules(): array
         return [
             "email" => "required|string|email",
             "password" => "required|string",
+            "origem" => "required|string",
         ];
     }
 }

+ 10 - 1
app/Services/AuthService.php

@@ -2,22 +2,31 @@
 
 namespace App\Services;
 
+use App\Enums\UserTypeEnum;
 use App\Models\User;
 use App\Models\PersonalAccessToken;
 use Carbon\Carbon;
+use Exception;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Str;
 
 class AuthService
 {
-    public function login(string $email, string $password): ?array
+    public function login(string $email, string $password, string $origem): ?array
     {
         if (!Auth::attempt(["email" => $email, "password" => $password])) {
             return null;
         }
 
         $user = User::where("email", $email)->first();
+
+        if ($origem === 'admin') {
+            if ($user->user_type !== UserTypeEnum::ADMIN) {
+                throw new Exception('credenciais invalidas para acesso de franqueadora');
+            }
+        }
+
         $deviceId = Str::uuid()->toString();
 
         $accessToken = $user->createAccessToken($deviceId);