Commit 29bf0b8c authored by ramiro's avatar ramiro

middleware version base funcioanl

parent 02174720
const permisos = require('./permisos_apis');
function obtenerPermiso(ruta, rolesUsuario, verboHttp) {
let respu = false;
// verificar que ruta existe
if (permisos[ruta] === undefined) return false;
// verificar que algun rol existe
let respu1 = false;
for(let rolUsuario of rolesUsuario) {
if (permisos[ruta] === undefined || permisos[ruta][rolUsuario] === undefined) {
respu = !respu;
break;
if (Object.keys(permisos[ruta]).indexOf(rolUsuario.rol.nombre) !== -1) {
respu1 = true;
break
}
}
if(respu) return !respu;
if(!respu1) return false;
// verificar que el verbo existe
let respu2 = false;
for (let rolUsuario of rolesUsuario) {
if (permisos[ruta][rolUsuario].indexOf(verboHttp) === -1) {
if (permisos[ruta][rolUsuario.rol.nombre].indexOf(verboHttp) !== -1) {
respu2 = true;
break;
}
}
return !respu2;
return respu2;
}
function verificarPermiso (rolUsuario, rutaParam, verboHttp) {
try {
const ruta = rutaParam;
let ruta = rutaParam;
ruta = (ruta.split('?'))[0];
const posiblesLlaves = Object.keys(permisos).filter(el => el.startsWith(ruta));
console.log('------posiblesLlaves ', posiblesLlaves);
......@@ -45,7 +49,8 @@ module.exports = (req, res, next) => {
.then(() => verificarPermiso(req.body.audit_usuario.roles, req.path, req.method))
.then((tienePermiso) => {
if (!tienePermiso) {
throw new Error('El usuario no tiene los permisos necesarios para realizar la acción');
console.log('Usuario no tiene permiso para este recurso.');
return res.status(403).json({error: 'Usted no tiene permiso de acceso a esta ruta.'});
}
next();
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment