nyx_server
Version:
Node内容发布
92 lines (84 loc) • 2.77 kB
JavaScript
var config = require("../config/default-config");
var DBTemplate = require("../db/DBTemplate");
var dbtemplate = new DBTemplate(config.NYX_DB_CONFIG_NAME);
var _ = require("lodash");
var Promise = require("bluebird");
/**
* permission_t
* name 权限(功能)名称
* module_name 模块名称
* descr 权限描述
*/
/**
* 得到权限列表
*/
function getPermissions(){
var connection = this.connection || dbtemplate;
var sql = "select * from permission_t where";
return connection.query(sql).then(function(result){
if(!result || !result.lenght){
return null;
}else{
return result.map(function(row){
return {
moduleName:row.module.name,
name:row.name,
descr : row.descr
}
});
}
})
}
/**
* 得到功能模块的权限列表
* @param {String}moduleName 功能模块名称
*/
function getPermissionsWhthModule(moduleName){
var connection = this.connection || dbtemplate;
var sql = "select * from permission_t where module_name = ?";
return connection.query(sql , [moduleName]).then(function(result){
if(!result || !result.lenght){
return null;
}else{
return result.map(function(row){
return {
moduleName:row.module.name,
name:row.name,
descr : row.descr
}
});
}
})
}
/**
* 判断权限是否存在
* @param moduleName 模块名称
* @param permissionName 权限名称
*/
function isExistPermission(moduleName , permissionName){
var connection = this.connection || dbtemplate;
var sql = "select id from permission_t where module_name = ? and name =?";
return connection.query(sql , [moduleName , permissionName]).then(function(result){
if(result && result.lenght>0){
return true;
}else{
return false;
}
})
}
/**
* 添加权限
* @param {String}moduleName 模块名称,列入 项目、碎片、模板等等
* @param {String}permissionName 权限名称
* @param {String}descr 权限描述
*/
function addPermission(moduleName , permissionName , descr){
var connection = this.connection || dbtemplate;
return isExistPermission.bind({connection:connection})(moduleName , permissionName).then(function(exist){
if(exist){
throw new Error("权限已经存在")
}
var sql = "insert into permission_t(module_name , name , descr) values(?,?,?)";
return connection.query(sql , [moduleName , permissionName , descr]);
})
}