Wondering what’s next for npm?Check out our public roadmap! »

    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.

    Install

    npm i role-based-commands

    DownloadsWeekly Downloads

    1

    Version

    1.0.0

    License

    ISC

    Last publish

    Collaborators

    • avatar