65 lines
1.8 KiB
JavaScript
65 lines
1.8 KiB
JavaScript
var connection = require("./connection");
|
|
var async = require("async");
|
|
var dbRights = this;
|
|
|
|
exports.getRights = function(userId,callback){
|
|
connection.query("SELECT * FROM UserRights t1 INNER JOIN UserRightsCodes t2 ON t1.RightId = t2.RightId WHERE t1.UserId = ?;",[userId],function(error,rows,fields){
|
|
if (error){
|
|
callback(error);
|
|
return;
|
|
}
|
|
var rights = [];
|
|
for(var i = 0; i < rows.length; i++){
|
|
if (!rights.indexOf(rows[i].Name) > -1){
|
|
rights.push(rows[i].Name);
|
|
}
|
|
}
|
|
console.log("rights");
|
|
console.log(rights);
|
|
callback(null,rights);
|
|
});
|
|
}
|
|
|
|
exports.addRight = function(userId, rightIdOrRightName, callback){
|
|
|
|
connection.query("INSERT IGNORE INTO UserRights (UserId,RightId) VALUES(?,?);",[userId,rightIdOrRightName],function(error,result){
|
|
if (error){
|
|
callback(error);
|
|
return;
|
|
}
|
|
callback(null,result);
|
|
});
|
|
}
|
|
|
|
exports.addRights = function(userId, rightIdArray, topCallback){
|
|
async.each(rightIdArray,function(item, callback){
|
|
dbRights.addRight(userId,item,function(error,result){
|
|
if (error){
|
|
callback(error);
|
|
} else {
|
|
callback();
|
|
}
|
|
});
|
|
},function(error){
|
|
if (error){
|
|
topCallback(error);
|
|
} else {
|
|
topCallback();
|
|
}
|
|
});
|
|
}
|
|
|
|
exports.hasRight = function(userId, rightName, callback){
|
|
dbRights.getRights(userId,function(error,rights){
|
|
if (error){
|
|
callback(error);
|
|
} else {
|
|
if (rights.indexOf(rightName) > -1){
|
|
callback(null,true);
|
|
} else {
|
|
callback(null,false);
|
|
}
|
|
}
|
|
});
|
|
}
|