Всегда возвращать «HttpError: Недостаточно прав для доступа к ресурсу» - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь реализовать права пользователя, администратора, используя узел 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);

            }); 
});
...