1.2.0 • Published 5 years ago
fox-acl v1.2.0
FOX-ACL - Access Control Lists for Node
A simple ACL implementation.
Installation
npm install fox-acl -S
Usage
Get resource ACL by group ID
const acl = [
{
resource: '/doctor',
access: {
create: {any: [3,4,5]},
read: {any: [3,4], own: [5]},
update: {any: [3,4], own: [5]},
delete: {any: [3,4], own: [5]},
},
},
{
resource: '/doctor/specialities',
access: {
create: {any: [3,4,5]},
read: {any: [3,4], own: [5]},
update: {any: [3,4], own: [5]},
delete: {any: [3,4], own: [5]},
},
}
];
const userGroupId = 4;
let groupAcl = getGroupAcl(acl, userGroupId);
groupAcl will be:
[
{
resource: '/doctor',
access: {
create: {any: true},
read: {own: true},
update: {own: true},
delete: {own: true},
},
},
{
resource: '/doctor/specialities',
access: {
create: {any: true},
read: {own: true},
update: {own: true},
delete: {own: true},
},
}
]
To check resource access run:
const acl = [
{
resource: '/doctor',
access: {
create: {any: true},
read: {own: true},
update: {own: true},
},
},
{
resource: '/doctor/specialities',
access: {},
}
];
let accessList = checkResourceAccess('/doctor/specialities', acl);
accessList will return:
{
create: {any: false, own: false},
read: {any: false, own: false},
update: {any: false, own: false},
delete: {any: false, own: false},
}