Я пытаюсь реализовать права пользователя, администратора, используя узел acl
к сожалению всегда возвращаю ошибку HttpError: Insufficient permissions to access resource
1. Добавление роли пользователя при входе пользователя в систему
acl.addUserRoles(admin._id.toString(), admin.role)
admin.role is admin
2.checkpermission.js с использованием redis и включением страницы в admin.js
var acl = require('acl');
var redis = require("redis");
var client = require('redis').createClient(6379, '127.0.0.1', {no_ready_check: true});
acl = new acl(new acl.redisBackend(client, "acl_"));
// Using redis backend
acl.allow([
{
roles: ['admin'],
allows: [
{
resources: 'admin',
permissions: ['get', 'post', 'put', 'delete'],
},
]
}
]);
module.exports = acl;
3. admin.js вызовы страницы checkpermission.js
и получение идентификатора зарегистрированного пользователя из сеанса
var acl = require('config/checkpermission');
function get_user_id( request, response ) {
return request.user && request.user.id.toString() || false;
}
......................
......................
router.get('/', [acl.middleware(1, get_user_id)],(req, res, next) =>{
Admin.findById(req.user.id, function (err, data) {
if (err) return err;
return res.json(data);
});
});