Skip to content

mickhansen/ssacl-attribute-roles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7121f78 · Nov 9, 2017

History

21 Commits
Oct 17, 2017
May 7, 2015
Mar 15, 2015
Mar 15, 2015
Oct 17, 2017
Mar 15, 2015
Nov 9, 2017
Oct 17, 2017

Repository files navigation

ssacl: attribute roles

Build Status Test Coverage

Not maintained

Simple attribute whitelisting/blacklisting with roles for Sequelize

A part of ssacl but can be used standalone aswell

Install

npm install --save ssacl-attribute-roles

Usage

var ssaclAttributeRoles = require('ssacl-attribute-roles')
  , sequelize = new Sequelize()
  , User = sequelize.define('user', {});

ssaclAttributeRoles(sequelize);
ssaclAttributeRoles(User);

User = sequelize.define('user', {
  email: {
    type: Sequelize.STRING,
    roles: {
      admin: {get: true},
      self: true
    }
  },
  password: {
    type: Sequelize.STRING,
    roles: false
  },
  rank: {
    type: Sequelize.STRING,
    roles: {
      self: {set: false, get: true}
      admin: true
    }
  }
});

user.get(); // Will never include email or password
user.get({role: 'admin'}); // Will include email but not password
user.get({raw: true}); // Ignores roles, will include all

user.set({rank: 'UBER'}, {role: 'self'||undefined}); // Will be ignored
user.set({rank: 'UBER'}, {role: 'admin'}); // Will be set