File tree Expand file tree Collapse file tree 2 files changed +27
-2
lines changed Expand file tree Collapse file tree 2 files changed +27
-2
lines changed Original file line number Diff line number Diff line change @@ -55,4 +55,11 @@ id INT AUTO_INCREMENT PRIMARY KEY,
55
55
role_id INT ,
56
56
permission VARCHAR (255 ),
57
57
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
+
Original file line number Diff line number Diff line change 24
24
// Verificar el método de la solicitud HTTP
25
25
$ requestMethod = $ _SERVER ['REQUEST_METHOD ' ];
26
26
27
- // Funciones para verificar la sesión del usuario
27
+ // Funciones para las sesiones y roles
28
28
function verificarSesion ()
29
29
{
30
30
if (!isset ($ _SESSION ['user_id ' ]) || !$ _SESSION ['is_authenticated ' ]) {
@@ -34,6 +34,18 @@ function verificarSesion()
34
34
return true ;
35
35
}
36
36
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
+
37
49
// Procesar la solicitud según el método HTTP y la acción proporcionada
38
50
switch ($ requestMethod ) {
39
51
// Peticiones POST
@@ -64,35 +76,41 @@ function verificarSesion()
64
76
case 'addRole ' :
65
77
// Agregar un rol
66
78
verificarSesion ();
79
+ verificarRol ('admin ' );
67
80
$ response = $ rolController ->addRole ($ _POST );
68
81
jsonResponse ($ response );
69
82
break ;
70
83
case 'updateRole ' :
71
84
// Actualizar un rol
72
85
verificarSesion ();
86
+ verificarRol ('admin ' );
73
87
$ response = $ rolController ->updateRole ($ _POST ['id ' ], $ _POST );
74
88
break ;
75
89
case 'deleteRole ' :
76
90
// Eliminar un rol
77
91
verificarSesion ();
92
+ verificarRol ('admin ' );
78
93
$ response = $ rolController ->deleteRole ($ _POST ['id ' ]);
79
94
jsonResponse ($ response );
80
95
break ;
81
96
case 'addPermission ' :
82
97
// Agregar un permiso
83
98
verificarSesion ();
99
+ verificarRol ('admin ' );
84
100
$ response = $ permisoController ->addPermission ($ _POST );
85
101
jsonResponse ($ response );
86
102
break ;
87
103
case 'updatePermission ' :
88
104
// Actualizar un permiso
89
105
verificarSesion ();
106
+ verificarRol ('admin ' );
90
107
$ response = $ permisoController ->updatePermission ($ _POST ['id ' ], $ _POST );
91
108
jsonResponse ($ response );
92
109
break ;
93
110
case 'deletePermission ' :
94
111
// Eliminar un permiso
95
112
verificarSesion ();
113
+ verificarRol ('admin ' );
96
114
$ response = $ permisoController ->deletePermission ($ _POST ['id ' ]);
97
115
jsonResponse ($ response );
98
116
break ;
You can’t perform that action at this time.
0 commit comments