Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mastilver/sails-hook-parametized-policies


https://github.com/mastilver/sails-hook-parametized-policies

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# sails-hook-parametized-policies [![Build Status](https://travis-ci.org/mastilver/sails-hook-parametized-policies.svg?branch=master)](https://travis-ci.org/mastilver/sails-hook-parametized-policies) [![Coverage Status](https://coveralls.io/repos/mastilver/sails-hook-parametized-policies/badge.svg?branch=master)](https://coveralls.io/r/mastilver/sails-hook-parametized-policies?branch=master)

## Install

`$ npm install --save sails-hook-parametized-policies`

## Setup

add your factories inside `api/policyFactories` or in the folder you defined on `sails.config.paths.policyFactories`

example: `is.js`

```
module.exports = function(userType){

return function(req, res, next){

var roles = req.user.roles;

if(roles.indexOf(userType) > 0){
return next();
}

res.forbidden('You must be an ' + userType + ' to access this resource');
};
};
```

or a more complex one: `or.js`

[example of OR policy with a number of arguments](https://gist.github.com/1nstinct/12399f8adc4e5cfd6e88)

## Usage

in your `config/policies.js`

```
{
ProfileController: {
edit: 'isLoggedIn'
create: ['or(is(\'Admin\'), is(\'SubAdmin\'))', 'isLoggedIn'],
delete: ['is(\'Admin\')', 'isLoggedIn'],
}
}
```