0.0.5 • Published 9 years ago

easyrole v0.0.5

Weekly downloads
2
License
mit
Repository
github
Last release
9 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

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago

0.0.0

9 years ago