1.2.0 • Published 5 years ago

fox-acl v1.2.0

Weekly downloads
1
License
ISC
Repository
-
Last release
5 years ago

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},
}
1.2.0

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago