Mejoras de seguridad y nueva tabla de turnos para ayudantes

- Agregado sistema de protección CSRF con tokens
- Creada clase Session para gestión centralizada de sesiones
- Mejorado manejo de errores en Database (sin die())
- Refactorizado Auth para usar nueva clase Session
- Agregada validación CSRF a formularios de login y admin
- Agregada validación de roles en modelo User
- Mejorada vista de ayudante con tabla de horarios por semana
- Agregada tabla de Turnos de Ayudantes con fechas en columnas
This commit is contained in:
nickpons666
2026-01-20 15:24:07 -06:00
parent dc8e83db6c
commit 05631e4a63
10 changed files with 467 additions and 254 deletions

View File

@@ -125,4 +125,20 @@ class User {
$stmt = $this->db->query("SELECT * FROM users WHERE rol = 'ayudante' AND activo = 1 ORDER BY nombre");
return $stmt->fetchAll();
}
public function isValidRole($role) {
return in_array($role, ['admin', 'ayudante']);
}
public function hasRole($userId, $role) {
$stmt = $this->db->prepare("SELECT rol FROM users WHERE id = ?");
$stmt->execute([$userId]);
$user = $stmt->fetch();
return $user && $user['rol'] === $role;
}
public function getAdmins() {
$stmt = $this->db->query("SELECT * FROM users WHERE rol = 'admin' AND activo = 1 ORDER BY nombre");
return $stmt->fetchAll();
}
}