@inspire-platform/sails-hook-permissions
Version:
Comprehensive user permissions and entitlements system for sails.js and Waterline. Supports user authentication with passport.js, role-based permissioning, object ownership, and row-level security.
51 lines (42 loc) • 1.39 kB
JavaScript
var _ = require('lodash');
var _super = require('@inspire-platform/sails-hook-auth/api/controllers/AuthController');
var accessPolicy = require('../../lib/accessPolicy');
var featurePolicy = require('../../lib/featurePolicy');
_.merge(exports, _super);
_.merge(exports, {
accessPolicy: function policy(req, res) {
// does user have session?
if (true === req.session.authenticated) {
// try to get user access policy
return accessPolicy.user(req.user).then(function (policy) {
// got one, return it
return res.send(policy);
})['catch'](function (err) {
// not good, log error
sails.log.debug(err);
// don't provide an error info (paranoid)
return res.forbidden();
});
}
// default to forbidden
return res.forbidden();
},
featurePolicy: function policy(req, res) {
// does user have session?
if (true === req.session.authenticated) {
// try to get user feature policy
return featurePolicy.user(req.user).then(function (policy) {
// got one, return it
return res.send(policy);
})['catch'](function (err) {
// not good, log error
sails.log.debug(err);
// don't provide an error info (paranoid)
return res.forbidden();
});
}
// default to forbidden
return res.forbidden();
}
});
;