diff --git a/red/api/auth/index.js b/red/api/auth/index.js index 344f80bd9..137ac6d49 100644 --- a/red/api/auth/index.js +++ b/red/api/auth/index.js @@ -49,7 +49,7 @@ function needsPermission(permission) { if (!req.user) { return next(); } - if (permissions.hasPermission(req.user,permission)) { + if (permissions.hasPermission(req.authInfo.scope,permission)) { return next(); } return res.send(401); @@ -101,7 +101,7 @@ module.exports = { errorHandler: function(err,req,res,next) { //TODO: standardize json response //TODO: audit log statment - //console.log(err.stack); + console.log(err.stack); //log.log({level:"audit",type:"auth",msg:err.toString()}); return server.errorHandler()(err,req,res,next); }, diff --git a/red/api/auth/permissions.js b/red/api/auth/permissions.js index 680797aa4..e0398c7ba 100644 --- a/red/api/auth/permissions.js +++ b/red/api/auth/permissions.js @@ -19,17 +19,36 @@ var util = require('util'); var readRE = /^((.+)\.)?read$/ var writeRE = /^((.+)\.)?write$/ -function hasPermission(user,permission) { - if (!user.permissions) { - return false; - } - if (user.permissions == "*") { +function hasPermission(userScope,permission) { + var i; + if (util.isArray(userScope)) { + if (userScope.length === 0) { + return false; + } + for (i=0;i