1.0.0 • Published 10 years ago
role-based-commands v1.0.0
role-based-commands
Javascript role-based command abstraction.
- Roles have permissions
- Commands have permissions
- Users are given roles
- A command will execute or not based on the user having a role with one of the command's permissions
Getting Started
1. Installation
npm install role-based-commands
2. Examples
Require role-based-commands and configure
var Controller = require('role-based-commands'),
roles = {
root: ['root'],
admin: ['user.admin'],
user: ['user.permission.one', 'user.permission.two']
};
user = {
id: 42,
name: "Foo Bar",
roles: ['user']
}
Create a controller
// Provide the controller with an object containing the user state and the role/permissions
var ctrl = new Controller(user, roles);
Create a command
// A command can be assigned to a local variable
// command = ctrl.command(...);
ctrl.command('command.name', ['user.admin'], function(some, arguments) {
// execute some command
console.log("do %s $s", some, arguments);
});
Calling the command
// the user cannot execute the command without the correct role
// eg. :-
// user.roles = ['user'];
// user.roles = ['admin'];
// The command can be called like a regular function using the variable assignment
command(argument1, argument2);
// - or using the controller's execute method
ctrl.execute('command.name', argument1, argument2);
Copyright and license
Copyright (c) 2015, Any Code lee@anycode.io
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
1.0.0
10 years ago