Implementación de actualización instantánea de roles sin cierre de sesión

This commit is contained in:
nickpons666
2026-01-31 02:12:51 -06:00
parent 9b219c7856
commit 959b5e3596

View File

@@ -10,6 +10,31 @@ class Auth {
public function __construct() { public function __construct() {
$this->userModel = new User(); $this->userModel = new User();
Session::init(); 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) { public function login($login, $password) {