From 4c77d2d4bb82b33629358cf84a0f8dd6b954a098 Mon Sep 17 00:00:00 2001 From: Henrique Varella Ehrenfried <h.v.ehrenfried@gmail.com> Date: Tue, 29 May 2018 11:13:36 -0300 Subject: [PATCH] Make API to always return as a JSONObject Signed-off-by: Henrique Varella Ehrenfried <h.v.ehrenfried@gmail.com> --- server/boot/access-control.js | 89 +++++++++++------------------------ server/boot/hook.js | 11 +++++ 2 files changed, 38 insertions(+), 62 deletions(-) create mode 100644 server/boot/hook.js diff --git a/server/boot/access-control.js b/server/boot/access-control.js index f85a2e1..6abef2d 100644 --- a/server/boot/access-control.js +++ b/server/boot/access-control.js @@ -19,8 +19,7 @@ module.exports = function(app) { process.nextTick(function() { cb(null, false); }); - } - + } switch (context.modelName){ case 'end_user': @@ -33,35 +32,14 @@ module.exports = function(app) { return reject(); } - // // if the target model is not project - // if (context.modelName !== 'project') { - // return reject(); - // } - - // do not allow anonymous users var userId = context.accessToken.userId; if (!userId) { return reject(); } - else{ - console.log("USER ID ::",userId) - } - - console.log("ROLE ::", role) - - console.log("CONTEXT MODEL ::", context.model) - console.log("CONTEXT ID ::", context.id) - // check if userId is in team table for the given project id context.model.findById(userId, function(err, model) { app.models.EndUser.findById(userId, function(err2, user){ - console.log("ERR ::", err) - console.log("ERR 2::", err2) - console.log("MODEL ::", model) - - console.log("ENDUSER MODEL", user) - if (err || err2 || !user || !model) return reject(); if(user.permission !== role) @@ -74,51 +52,38 @@ module.exports = function(app) { Role.registerResolver('user', function(role, context, cb) { - function reject() { - process.nextTick(function() { - cb(null, false); - }); - } - - switch (context.modelName){ - case 'end_user': - break; - case 'geolocation': - break; - case 'category': - break; - default: - return reject(); - } + function reject() { + process.nextTick(function() { + cb(null, false); + }); + } - // // if the target model is not project - // if (context.modelName !== 'project') { - // return reject(); - // } + switch (context.modelName){ + case 'end_user': + break; + case 'geolocation': + break; + case 'category': + break; + default: + return reject(); + } - // do not allow anonymous users var userId = context.accessToken.userId; if (!userId) { - return reject(); + return reject(); } + + context.model.findById(userId, function(err, model) { - // check if userId is in team table for the given project id - context.model.findById(context.modelId, function(err, model) { - if (err || !model) - return reject(); - - var EndUser = app.models.EndUser; - EndUser.count({ - ownerId: model.ownerId, - memberId: userId - }, function(err, count) { - if (err) { - console.log(err); - return cb(null, false); - } - - cb(null, count > 0); // true = is a team member - }); + app.models.EndUser.findById(userId, function(err2, user){ + if (err || err2 || !user || !model) + return reject(); + if(user.permission !== role) + return reject(); + else + return cb(null,true) + }) }); }); }; \ No newline at end of file diff --git a/server/boot/hook.js b/server/boot/hook.js new file mode 100644 index 0000000..35fea51 --- /dev/null +++ b/server/boot/hook.js @@ -0,0 +1,11 @@ +module.exports = function(server) { + var remotes = server.remotes(); + // modify all returned values + remotes.after('**', function (ctx, next) { + ctx.result = { + result: ctx.result + }; + + next(); + }); + }; \ No newline at end of file -- GitLab