1.0.0 • Published 7 years ago
@salomaosnff/acl v1.0.0
Access Control List For JavaScript
Install
npm i --save @salomaosnff/acl
Create a Role
const { ACL, ACLRole } = require('@salomaosnff/acl')
const guest = new ACLRole('guest', ['read'])
const user = new ACLRole('user', ['create'])
user.extends(guest)
const list = new ACL({ guest, user })
// Or
const list = ACL.fromJSON({
guest: {
permissions: ['read']
},
user: {
permissions: ['create'],
extends: ['guest']
}
})
Create a user
const user = {
name: 'John',
roles: ['guest']
}
user.acl = new ACLUser({
roles: user.roles,
})
Check Roles
user.acl.is('guest') // true
user.acl.is('user') // false
// Conditional (and, or, not)
user.acl.is({
or: ['guest', 'user'] // Is guest or user
}) // true
user.acl.is({
and: ['guest', 'user'] // Is guest and user
}) // false
user.acl.is({
not: 'user' // Not is user
}) // true
user.acl.is({
// Is guest or Not is user and is guest
or: [
{ and: 'guest' },
{ not: 'user', and: 'guest' },
]
})
Check permissions
user.acl.can('edit') // false
user.acl.can('read') // true
// Conditionals (and, or, not)
user.alc.can({
not: 'edit'
}) // true
1.0.0
7 years ago