Package Exports
- easyrole
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (easyrole) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
easyrole
Easy Role Based Access Control
Install
npm install easyroleExample
var Rbac= require('easyrole');
var rbac= new Rbac();
rbac.setRoles(['admins', 'editors', 'developers', 'users']);
// admins
rbac.admins.allow('*');
// editors
rbac.editors.allow({
blogs: ['create', 'read', 'update', 'delete'],
settings: ['read']
})
// developers
rbac.developers.extend(rbac.editors)
.allow({
settings: ['read', 'update']
})
// users
rbac.users.allow({
blogs: ['read']
})
// can admin creare blog
rbac.can('admins').do('blogs.create') //return true
// can editor update settings
rbac.can('editors').do('settings.update') //return falseGetting Start
set roles first
var Rbac= require('easyrole');
var rbac= new Rbac();
rbac.setRoles(['admins', 'editors', 'developers', 'users']);set permissions to roles
// give admins all permissions
rbac.admins.allow('*');
// editors
rbac.editors.allow({
blogs: ['create', 'read', 'update', 'delete'],
settings: ['read']
})
// extend editors permissoins to developers
rbac.developers.extend(rbac.editors)
.allow({
settings: ['read', 'update']
})use it
rbac.can('admins').do('blogs.create') //return trueApi
rbac.setRoles([roles..])
set roles for your rbac
rbac[role].allow(permissions)
add permissions to role
rbac[role].extend(role object)
inherit a role permission
rbac.can('role').do('resource.action')
return boolean
rbac.can('admins').do('blogs.create') //return truerbac.getRoles('role')
return a role object
var admin= rbac.getRoles('admins');
admin.can('blogs.create') // return trueTodo
- use merge instead of replace in permission extend