12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- var _ = require('lodash');
- var path = require("path");
- var dao = require(path.join(process.cwd(),"dao/PermissionAPIDAO"));
- // 获取所有权限
- module.exports.getAllRights = function(type,cb) {
- if(!type || (type != "list" && type != "tree")) {
- cb("参数类型错误");
- }
-
- dao.list(function(err,permissions){
- if(err) return cb("获取权限数据失败");
- if(type == "list") {
- var result = [];
- for(idx in permissions) {
- permission = permissions[idx];
- result.push({
- "id" : permission.ps_id,
- "authName" : permission.ps_name,
- "level" : permission.ps_level,
- "pid" : permission.ps_pid,
- "path": permission.ps_api_path
- });
- }
- cb(null,result);
- } else {
- var keyCategories = _.keyBy(permissions,'ps_id');
- // 显示一级
- var permissionsResult = {};
- // 处理一级菜单
- for(idx in permissions) {
- permission = permissions[idx];
- if(permission && permission.ps_level == 0) {
- permissionsResult[permission.ps_id] = {
- "id":permission.ps_id,
- "authName":permission.ps_name,
- "path":permission.ps_api_path,
- "pid" : permission.ps_pid,
- "children":[]
- };
- }
- }
- // 临时存储二级返回结果
- tmpResult = {};
- // 处理二级菜单
- for(idx in permissions) {
- permission = permissions[idx];
- if(permission && permission.ps_level == 1) {
- parentPermissionResult = permissionsResult[permission.ps_pid];
- if(parentPermissionResult) {
- tmpResult[permission.ps_id] = {
- "id":permission.ps_id,
- "authName":permission.ps_name,
- "path":permission.ps_api_path,
- "pid" : permission.ps_pid,
- "children":[]
- }
- parentPermissionResult.children.push(tmpResult[permission.ps_id]);
- }
- }
- }
- // 处理三级菜单
- for(idx in permissions) {
- permission = permissions[idx];
- if(permission && permission.ps_level == 2) {
- parentPermissionResult = tmpResult[permission.ps_pid];
- if(parentPermissionResult) {
-
- parentPermissionResult.children.push({
- "id":permission.ps_id,
- "authName":permission.ps_name,
- "path":permission.ps_api_path,
- "pid" : permission.ps_pid + "," + keyCategories[permission.ps_pid].ps_pid
- });
- }
- }
- }
- cb(null,_.values(permissionsResult));
- }
- });
-
- }
|