Sails.js (0.9v) controllers have policies defined as:
RabbitController: {
'*': false, nurture : 'isRabbitMother', feed : ['isNiceToAnimals', 'hasRabbitFood'] }
is there a way to pass params to these acls eg:
RabbitController: {
'*': false, nurture : 'isRabbitMother(myparam)', feed : ['isNiceToAnimals(myparam1, myparam2)', 'hasRabbitFood(anotherParam)'] }
This may lead to multiple use of these functions for different params. Thanks Arif
The policies are middleware functions with the signature:
function myPolicy (req, res, next)
There's no way to specify additional parameters for these functions. However, you could create wrapper functions to create the policies dynamically:
function policyMaker (myArg) {
return function (req, res, next) {
if (req.params('someParam') == myArg) {
return next();
} else {
return res.forbidden();
}
}
}
module.exports = {
RabbitController: {
// create a policy for the nurture action
nurture: policyMaker('foo'),
// use the policy at
// /api/policies/someOtherPolicy.js for the feed action
feed: 'someOtherPolicy'
}
}
In practice you'd want to separate this code into another file and require
it, but this should get you started.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With