Как access-control-middleware понимает, какое поле нужно проверять внутри объекта пользователя? - PullRequest
0 голосов
/ 09 апреля 2019

Я использую https://github.com/onury/accesscontrol библиотеку и https://github.com/scandinave/accessControlMiddleware связующее ПО.

У меня есть grantsObject, в котором административная роль имеет полный доступ ко всем ресурсам, но связующее ПО выдает мне 403.

В каком месте эти библиотеки понимают, какое поле в объекте req.user нужно проверить?

module.exports.permissions = {
    admin: {
        users: {
            'create:any': ['*'],
            'read:any': ['*'],
            'update:any': ['*'],
            'delete:any': ['*']
        }
    },
    user: {
        users: {
            'create:own': ['*', '!salt', '!hash'],
            'read:own': ['*'],
            'update:own': ['*', '!rating', '!views'],
            'delete:own': ['*']
        }
    }
};

const ac = new AccessControl(permissions);
const AccessControlMiddleware = require('@scandinave/access-control-middleware');
const acm = new AccessControlMiddleware({
    secret: process.env.JWT_SECRET,
    accessControl: ac,
    userIdKey: '_id'
});

router.get('/', acm.check([{ resource: 'users', action: 'read' }]), controller.getAllUsers);

{
  _id: 5c8c0b795ea0d2230c874bbe,
  name: 'EvgeniyUpdateTwoLast',
  email: 'test@test.ua',
  __v: 0,
  img: 'https://i.imgur.com/rLsU09I.png',
  sex: 'male',
  dob: '1991-02-07T21:00:00.000Z',
  lang: 'en',
  role: 'admin',
  info: 'info about me',
}
...