0.0.5 • Published 10 years ago

easyrole v0.0.5

Weekly downloads
2
License
mit
Repository
github
Last release
10 years ago

easyrole

Easy Role Based Access Control

Install

npm install easyrole

Example

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 false

Getting 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 true

Api

rbac.setRoles(roles..)

set roles for your rbac

rbacrole.allow(permissions)

add permissions to role

rbacrole.extend(role object)

inherit a role permission

rbac.can('role').do('resource.action')

return boolean

rbac.can('admins').do('blogs.create') //return true

rbac.getRoles('role')

return a role object

var admin= rbac.getRoles('admins');
admin.can('blogs.create') // return true

Todo

  • use merge instead of replace in permission extend
0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago

0.0.0

10 years ago