Merge pull request #26 from wistityhq/improvement/router

Improve router for user permissions
This commit is contained in:
Loïc Saint-Roch 2015-11-10 17:33:23 +01:00
commit f57cd37512

View File

@ -39,6 +39,22 @@ module.exports = function (strapi) {
*/ */
initialize: function (cb) { initialize: function (cb) {
// Middleware used for every routes.
// Expose the endpoint in `this`.
function globalPolicy(endpoint, value, route) {
return function * (next) {
this.request.route = {
endpoint: _.trim(endpoint),
controller: _.trim(value.controller),
action: _.trim(value.action),
splittedEndpoint: _.trim(route.endpoint),
verb: route.verb && _.trim(route.verb.toLowerCase())
};
yield next;
};
}
if ((cluster.isWorker && strapi.config.reload.workers > 0) || (cluster.isMaster && strapi.config.reload.workers < 1)) { if ((cluster.isWorker && strapi.config.reload.workers > 0) || (cluster.isMaster && strapi.config.reload.workers < 1)) {
let route; let route;
let controller; let controller;
@ -52,20 +68,6 @@ module.exports = function (strapi) {
}); });
} }
// Middleware used for every routes.
// Expose the endpoint in `this`.
function globalPolicy(endpoint, route) {
return function * (next) {
this.request.route = {
endpoint: endpoint,
controller: route.controller,
firstWord: _.startsWith(route.endpoint, '/') ? route.endpoint.split('/')[1] : route.endpoint.split('/')[0],
value: route
};
yield next;
};
}
// Add the `dashboardPolicy` to the list of policies. // Add the `dashboardPolicy` to the list of policies.
if (strapi.config.dashboard.enabled) { if (strapi.config.dashboard.enabled) {
strapi.policies.dashboardToken = dashboardTokenPolicy; strapi.policies.dashboardToken = dashboardTokenPolicy;
@ -89,7 +91,7 @@ module.exports = function (strapi) {
policies = []; policies = [];
// Add the `globalPolicy`. // Add the `globalPolicy`.
policies.push(globalPolicy(endpoint, route)); policies.push(globalPolicy(endpoint, value, route));
if (_.isArray(value.policies) && !_.isEmpty(value.policies)) { if (_.isArray(value.policies) && !_.isEmpty(value.policies)) {
_.forEach(value.policies, function (policy) { _.forEach(value.policies, function (policy) {