Commit abefb320 authored by Mahmoud Aglan's avatar Mahmoud Aglan

fixed UserMatrix login

parent f78b0685
...@@ -12,20 +12,27 @@ use App\Core\Logger; ...@@ -12,20 +12,27 @@ use App\Core\Logger;
use App\Modules\Users\Models\Employee; use App\Modules\Users\Models\Employee;
use App\Modules\Auth\Models\LoginAttempt; use App\Modules\Auth\Models\LoginAttempt;
use App\Modules\Auth\Models\ActiveSession; use App\Modules\Auth\Models\ActiveSession;
use App\Core\Registries\MenuRegistry;
class AuthController extends Controller class AuthController extends Controller
{ {
public function home(Request $request): Response public function home(Request $request): Response
{ {
$redirect = config('auth.default_redirect', '/users'); $employee = App::getInstance()->currentEmployee();
return $this->redirect($redirect); if ($employee) {
return $this->redirect($this->resolveHomePage($employee));
}
return $this->redirect('/login');
} }
public function login(Request $request): Response public function login(Request $request): Response
{ {
$session = App::getInstance()->session(); $session = App::getInstance()->session();
if ($session->get('employee_id')) { if ($session->get('employee_id')) {
return $this->redirect(config('auth.default_redirect', '/users')); $employee = App::getInstance()->currentEmployee();
if ($employee) {
return $this->redirect($this->resolveHomePage($employee));
}
} }
return $this->view('Auth.Views.login', []); return $this->view('Auth.Views.login', []);
} }
...@@ -93,7 +100,7 @@ class AuthController extends Controller ...@@ -93,7 +100,7 @@ class AuthController extends Controller
return $this->redirect('/change-password'); return $this->redirect('/change-password');
} }
return $this->redirect(config('auth.default_redirect', '/users')); return $this->redirect($this->resolveHomePage($employee));
} }
public function logout(Request $request): Response public function logout(Request $request): Response
...@@ -194,8 +201,30 @@ class AuthController extends Controller ...@@ -194,8 +201,30 @@ class AuthController extends Controller
EventBus::dispatch('auth.password_changed', $eventData); EventBus::dispatch('auth.password_changed', $eventData);
Logger::info("Password changed", ['employee_id' => $employee->id]); Logger::info("Password changed", ['employee_id' => $employee->id]);
return $this->redirect(config('auth.default_redirect', '/users')) $emp = $this->currentEmployee();
->withSuccess('تم تغيير كلمة المرور بنجاح'); $target = $emp ? $this->resolveHomePage($emp) : config('auth.default_redirect', '/users');
return $this->redirect($target)->withSuccess('تم تغيير كلمة المرور بنجاح');
}
private function resolveHomePage(object $employee): string
{
$permissions = $employee->getPermissions();
$menuItems = MenuRegistry::getVisible($permissions);
foreach ($menuItems as $item) {
if (!empty($item['route'])) {
return $item['route'];
}
if (!empty($item['children'])) {
foreach ($item['children'] as $child) {
if (!empty($child['route'])) {
return $child['route'];
}
}
}
}
return config('auth.default_redirect', '/users');
} }
private function enforceMaxSessions(int $employeeId, string $currentSessionId): void private function enforceMaxSessions(int $employeeId, string $currentSessionId): void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment