DefinitelyTyped/types/easy-rbac/easy-rbac-tests.ts
Adam Zerella 76168b497f
Typing for "easy-rbac" (#43149)
Co-authored-by: Adam Zerella <adamzerella@users.noreply.github.com>
2020-03-26 22:23:08 -07:00

28 lines
718 B
TypeScript

import RBAC = require('easy-rbac');
import rbac = require('easy-rbac');
const roles = {
manager: {
can: ['post:save', 'post:delete', 'account:*'],
inherits: ['user']
},
user: {
can: [
'post:add',
{
name: 'post:save',
when: async () => true,
},
'user:create'
],
inherits: ['manager']
}
};
const RBACInstance = new RBAC(roles);
RBACInstance.can(['user', 'manager'], 'post:save', { userId: 1, ownerId: 2 });
const RBACFunction = rbac.create(roles);
RBACFunction.can('user', 'post:save', { userId: 1, ownerId: 2 });
RBACFunction.can(['user', 'manager'], 'post:save', { userId: 1 });