UNPKG

nyx_server

Version:

Node内容发布

92 lines (84 loc) 2.77 kB
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]); }) }