1.0.0 • Published 9 years ago

role-based-commands v1.0.0

Weekly downloads
2
License
ISC
Repository
github
Last release
9 years ago

role-based-commands

Build Status

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.