role-based-commands

1.0.0 • Public • Published

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.

Dependents (0)

Package Sidebar

Install

npm i role-based-commands

Weekly Downloads

2

Version

1.0.0

License

ISC

Last publish

Collaborators

  • qrb