1.0.0 • Published 7 years ago

@salomaosnff/acl v1.0.0

Weekly downloads
1
License
MIT
Repository
-
Last release
7 years ago

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