mardi 31 mars 2015

Sails Hook route forbidden

I try to make an installable hook to make some security verifications so under my hook.js I set :



routes : {
before : {
"/" : function (req, res, view)
{
.....
res.forbidden();
}
}
},


And I have this error if I try to send forbidden page to the user :



error: Sending 500 ("Server Error") response:
TypeError: Object #<ServerResponse> has no method 'view'
at Object.forbidden (/Users/jaumard/Documents/workspaceIDE/KikiLib/api/responses/forbidden.js:56:19)
at ServerResponse.bound [as forbidden] (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
at isRouteAllowed (/Users/jaumard/Documents/workspaceIDE/KikiLib/api/hooks/acl.js:66:18)
at routeTargetFnWrapper (/usr/local/lib/node_modules/sails/lib/router/bind.js:179:5)
at callbacks (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
at param (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:138:11)
at pass (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:145:5)
at nextRoute (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:100:7)
at callbacks (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:167:11)
at /usr/local/lib/node_modules/sails/lib/router/bind.js:187:7
at /usr/local/lib/node_modules/sails/lib/hooks/i18n/index.js:35:7
at Object.i18nInit [as init] (/usr/local/lib/node_modules/sails/node_modules/i18n/i18n.js:89:5)
at addLocalizationMethod (/usr/local/lib/node_modules/sails/lib/hooks/i18n/index.js:33:11)
at routeTargetFnWrapper (/usr/local/lib/node_modules/sails/lib/router/bind.js:179:5)
at callbacks (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
at param (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:138:11) [TypeError: Object #<ServerResponse> has no method 'view']
error: Server Error:
error: TypeError: Object #<ServerResponse> has no method 'view'
at Object.forbidden (/Users/jaumard/Documents/workspaceIDE/KikiLib/api/responses/forbidden.js:56:19)
at ServerResponse.bound [as forbidden] (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
at isRouteAllowed (/Users/jaumard/Documents/workspaceIDE/KikiLib/api/hooks/acl.js:66:18)
at routeTargetFnWrapper (/usr/local/lib/node_modules/sails/lib/router/bind.js:179:5)
at callbacks (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
at param (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:138:11)
at pass (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:145:5)
at nextRoute (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:100:7)
at callbacks (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:167:11)
at /usr/local/lib/node_modules/sails/lib/router/bind.js:187:7
at /usr/local/lib/node_modules/sails/lib/hooks/i18n/index.js:35:7
at Object.i18nInit [as init] (/usr/local/lib/node_modules/sails/node_modules/i18n/i18n.js:89:5)
at addLocalizationMethod (/usr/local/lib/node_modules/sails/lib/hooks/i18n/index.js:33:11)
at routeTargetFnWrapper (/usr/local/lib/node_modules/sails/lib/router/bind.js:179:5)
at callbacks (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
at param (/usr/local/lib/node_modules/sails/node_modules/express/lib/router/index.js:138:11) [TypeError: Object #<ServerResponse> has no method 'view']


I'm under sails 0.11.0. I don't use policies cause policies apply only for controller action and I want to make ACL for view, controller and more...


All source code available here : http://ift.tt/19zr8P8


For now I use : res.status(403).send("<h1>" + req.__("Forbidden") + "</h1>"); instead of res.forbidden(); but it would be nice to send a view


Aucun commentaire:

Enregistrer un commentaire