40 lines
884 B
PHP
40 lines
884 B
PHP
<?php
|
|
session_start();
|
|
|
|
function checkLogin() {
|
|
if (!isset($_SESSION['user_id'])) {
|
|
header('Location: index.php');
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function hasRole($roles) {
|
|
if (!isset($_SESSION['user_role'])) return false;
|
|
if (is_array($roles)) {
|
|
return in_array($_SESSION['user_role'], $roles);
|
|
}
|
|
return $_SESSION['user_role'] === $roles;
|
|
}
|
|
|
|
function requireRole($roles) {
|
|
checkLogin();
|
|
if (!hasRole($roles)) {
|
|
die("Acceso denegado. No tienes el rol necesario para ver esta página.");
|
|
}
|
|
}
|
|
|
|
function getUserName() {
|
|
return $_SESSION['user_name'] ?? 'Usuario';
|
|
}
|
|
|
|
function getRoleName() {
|
|
$roles = [
|
|
'superadmin' => 'Super Administrador',
|
|
'admin' => 'Administrador',
|
|
'supervisor' => 'Supervisor',
|
|
'user' => 'Usuario Normal'
|
|
];
|
|
return $roles[$_SESSION['user_role']] ?? 'Desconocido';
|
|
}
|
|
?>
|