Sails-beforeCreate-Policy
March 2, 2015 ยท View on GitHub
/**
- beforeCreate
- @module :: Policy
- @description :: Simple policy to inject the user creating a record into the records values.
-
Assumes req.user && req.user.id to be set when a user is logged in. - @docs :: http://sailsjs.org/#!documentation/policies
*/
var actionUtil = require( 'sails/lib/hooks/blueprints/actionUtil' );
module.exports = function ( req, res, next ) {
var blueprint = req.options.action;
if ( blueprint === 'create' ) { var Model = actionUtil.parseModel( req ); if ( req.user && req.user.id ) { sails.log.debug( 'Policy beforeCreate: Injecting req.user.id into "' + Model.identity + '" parameters.' ); req.body[ Model.identity ].user = req.user.id; } else { // exception for creating new users, otherwise any creative act needs a logged in user if ( Model.identity !== 'user' ) return res.forbidden( "Create blueprint needs an authenticated user!" ); } }
next();
};