Files
radicall/app/Services/Auth/AuthService.php
T

46 lines
1.2 KiB
PHP

<?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;
}
}