complete Complete User Request Submission section RAD-1
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
namespace App\Services\Auth;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class AuthService
|
||||
{
|
||||
public function getLevelsForPhone(string $phone): array
|
||||
{
|
||||
session()->flush();
|
||||
$users = User::where('phone', $phone)->get(['level']);
|
||||
|
||||
return $users
|
||||
->map(fn($user) => match ($user->level) {
|
||||
'پزشک' => 'doctor',
|
||||
'سرپرست' => 'supervisor',
|
||||
'دانپزشک' => 'veterinarian',
|
||||
default => null,
|
||||
})
|
||||
->filter()
|
||||
->unique()
|
||||
->values()
|
||||
->all();
|
||||
}
|
||||
|
||||
public function authenticateByPhoneAndLevel(string $phone, string $level, string $password): ?User
|
||||
{
|
||||
$user = User::where('phone', $phone)
|
||||
->where('level', $level)
|
||||
->first();
|
||||
|
||||
if (! $user) return null;
|
||||
|
||||
if (! Hash::check($password, $user->password)) return null;
|
||||
|
||||
Auth::login($user);
|
||||
session()->regenerate();
|
||||
session()->forget('register_phone' , 'verified_phone' , 'otp_verified' , 'login_phone' , 'login_level' , 'available_levels');
|
||||
|
||||
return $user;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user