Skip to content

Commit 90dc03b

Browse files
committed
implementando roles admin y user
1 parent 9661141 commit 90dc03b

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

config.sql

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,11 @@ id INT AUTO_INCREMENT PRIMARY KEY,
5555
role_id INT,
5656
permission VARCHAR(255),
5757
FOREIGN KEY (role_id) REFERENCES user_roles(id)
58-
);
58+
);
59+
60+
-- Creación de roles iniciales
61+
INSERT INTO user_roles (name, description)
62+
VALUES
63+
('admin', 'Administrador del sistema'),
64+
('user', 'Usuario del sistema');
65+

routes/api.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
// Verificar el método de la solicitud HTTP
2525
$requestMethod = $_SERVER['REQUEST_METHOD'];
2626

27-
// Funciones para verificar la sesión del usuario
27+
// Funciones para las sesiones y roles
2828
function verificarSesion()
2929
{
3030
if (!isset($_SESSION['user_id']) || !$_SESSION['is_authenticated']) {
@@ -34,6 +34,18 @@ function verificarSesion()
3434
return true;
3535
}
3636

37+
function verificarRol($rolRequerido) {
38+
// Primero, verificamos si el usuario está autenticado
39+
verificarSesion();
40+
41+
// Luego, verificamos si tiene el rol requerido
42+
if ($_SESSION['role_id'] != $rolRequerido) {
43+
jsonResponse(["message" => "No tienes permiso para realizar esta acción."], 403);
44+
exit;
45+
}
46+
}
47+
48+
3749
// Procesar la solicitud según el método HTTP y la acción proporcionada
3850
switch ($requestMethod) {
3951
// Peticiones POST
@@ -64,35 +76,41 @@ function verificarSesion()
6476
case 'addRole':
6577
// Agregar un rol
6678
verificarSesion();
79+
verificarRol('admin');
6780
$response = $rolController->addRole($_POST);
6881
jsonResponse($response);
6982
break;
7083
case 'updateRole':
7184
// Actualizar un rol
7285
verificarSesion();
86+
verificarRol('admin');
7387
$response = $rolController->updateRole($_POST['id'], $_POST);
7488
break;
7589
case 'deleteRole':
7690
// Eliminar un rol
7791
verificarSesion();
92+
verificarRol('admin');
7893
$response = $rolController->deleteRole($_POST['id']);
7994
jsonResponse($response);
8095
break;
8196
case 'addPermission':
8297
// Agregar un permiso
8398
verificarSesion();
99+
verificarRol('admin');
84100
$response = $permisoController->addPermission($_POST);
85101
jsonResponse($response);
86102
break;
87103
case 'updatePermission':
88104
// Actualizar un permiso
89105
verificarSesion();
106+
verificarRol('admin');
90107
$response = $permisoController->updatePermission($_POST['id'], $_POST);
91108
jsonResponse($response);
92109
break;
93110
case 'deletePermission':
94111
// Eliminar un permiso
95112
verificarSesion();
113+
verificarRol('admin');
96114
$response = $permisoController->deletePermission($_POST['id']);
97115
jsonResponse($response);
98116
break;

0 commit comments

Comments
 (0)