diff --git a/src/Auth.php b/src/Auth.php index ad3d58c..048a4d6 100755 --- a/src/Auth.php +++ b/src/Auth.php @@ -10,6 +10,31 @@ class Auth { public function __construct() { $this->userModel = new User(); Session::init(); + $this->refreshUserSession(); + } + + /** + * Refresca los datos del usuario en la sesión directamente desde la base de datos + * para que los cambios de rol sean instantáneos. + */ + private function refreshUserSession() { + if ($this->isLoggedIn()) { + $userId = Session::get('user_id'); + $user = $this->userModel->getById($userId); + + if (!$user || (isset($user['activo']) && !$user['activo'])) { + $this->logout(); + return; + } + + // Actualizar solo si hay cambios para evitar escrituras innecesarias en la sesión + if (Session::get('user_rol') !== $user['rol']) { + Session::set('user_rol', $user['rol']); + } + if (Session::get('user_name') !== $user['nombre']) { + Session::set('user_name', $user['nombre']); + } + } } public function login($login, $password) {