123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430 |
- /**
- * 后台用户管理控制器
- *
- * @author CaiAoLin
- * @date 2017/6/2
- * @version
- */
- import BaseController from "../../common/base/base_controller";
- import ManagerModel from "../models/manager_model";
- import PermissionModel from "../models/permission_model";
- import PermissionGroupModel from "../models/permission_group_model";
- import Config from "../../../config/config";
- let config = require("../../../config/config.js");
- import { default as category, List as categoryList } from "../../common/const/category_const.js";
- class ManagerController extends BaseController {
- /**
- * 账号管理(管理员列表)
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- async index(request, response) {
- let pageData = {};
- let managerList = [];
- let permissionGroupList = [];
- let filter = request.query;
- try {
- // 查找管理员用户列表
- let managerModel = new ManagerModel();
- let total = await managerModel.count({ super_admin: 0 });
- // 分页数据
- let page = request.query.page === undefined ? 1 : request.query.page;
- pageData = {
- current: page,
- total: parseInt(total / Config.pageSize),
- queryData: response.locals.urlQuery
- };
- // 获取管理员列表
- let condition = managerModel.getFilterCondition(request);
- condition.super_admin = 0;
- managerList = JSON.parse(JSON.stringify(await managerModel.getList(condition, page)));
- let permissionGroupModel = new PermissionGroupModel();
- let permissionModel = new PermissionModel();
- // 添加特定数据到filter里
- if (request.query.office !== undefined && request.query.office !== '') {
- let officeInfo = await categoryList.find(function (item) {
- return item.id === parseInt(request.query.office);
- });
- filter.officeName = officeInfo.name
- }
- if (request.query.permission !== undefined && request.query.permission !== '0') {
- let permissionGroupInfo = await permissionGroupModel.findDataByCondition({ _id: request.query.permission });
- filter.permissionGroupName = permissionGroupInfo.name;
- }
- // 获取权限组列表
- permissionGroupList = JSON.parse(JSON.stringify(await permissionGroupModel.getList()));
- if (permissionGroupList.length > 0) {
- for (let tmp in permissionGroupList) {
- let topPermissionList = [];
- if (permissionGroupList[tmp].permission !== undefined && permissionGroupList[tmp].permission !== '') {
- let groupPermissionList = JSON.parse(permissionGroupList[tmp].permission);
- for (let p in groupPermissionList) {
- if (p === 'top') {
- for (let t of groupPermissionList[p]) {
- let topInfo = await permissionModel.findDataByCondition({ _id: t });
- topPermissionList.push(topInfo.name);
- }
- break;
- }
- }
- }
- permissionGroupList[tmp].top_name = topPermissionList.join(',');
- }
- }
- // 整理数据
- if (managerList.length > 0) {
- for (let tmp in managerList) {
- let cate = await categoryList.find(function (item) {
- return item.id === managerList[tmp].office;
- });
- managerList[tmp].officeName = cate !== undefined ? cate.name : '';
- let groupInfo = managerList[tmp].permission !== '' ? await permissionGroupModel.findDataByCondition({ _id: managerList[tmp].permission }) : '';
- managerList[tmp].permissionName = groupInfo !== undefined && groupInfo !== '' ? groupInfo.name : '';
- }
- }
- } catch (error) {
- console.log(error);
- }
- let permissionGroupList2 = JSON.stringify(permissionGroupList);
- let renderData = {
- managerList: managerList,
- pages: pageData,
- categoryList: categoryList,
- permissionGroupList: permissionGroupList,
- permissionGroupList2: permissionGroupList2,
- layout: 'users/views/layout/layout',
- filter: filter,
- LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
- };
- response.render('users/views/manager/index', renderData);
- }
- /**
- * 权限组分配(管理员页面)
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async groupSave(request, response) {
- let id = request.body.manager_id;
- let permission = request.body.permission !== '0' ? request.body.permission : '';
- let managerModel = new ManagerModel();
- let result = await managerModel.updateById(id, { permission: permission });
- if (!result) {
- throw '修改失败';
- }
- response.redirect(request.headers.referer);
- }
- /**
- * 保存管理员
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- // async modify(request, response) {
- // let permission = request.body.permission;
- // let canLogin = request.body.login;
- // let id = request.params.id;
- //
- // let responseData = {
- // err: 0,
- // msg: ""
- // };
- // try {
- // if (id === '' || id === undefined) {
- // throw 'id有误';
- // }
- // let managerModel = new ManagerModel();
- // let result = await managerModel.updateById(id, {permission: permission, can_login: canLogin});
- //
- // if (!result) {
- // throw '修改失败';
- // }
- //
- // } catch (error) {
- // responseData.err = 1;
- // responseData.msg = error;
- // }
- //
- // response.json(responseData);
- // }
- /**
- * 删除管理员
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- async delete(request, response) {
- let id = request.params.id;
- let managerModel = new ManagerModel();
- let result = await managerModel.deleteById(id, true);
- // 删除成功
- if (result) {
- }
- response.redirect(request.headers.referer);
- }
- /**
- * 操作管理员(启用和停用)
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- async modify(request, response) {
- let canLogin = request.params.login;
- let id = request.params.id;
- let managerModel = new ManagerModel();
- let result = await managerModel.updateById(id, { can_login: canLogin });
- // 修改成功
- if (!result) {
- throw '修改失败';
- }
- response.redirect(request.headers.referer);
- }
- /**
- * 超级管理员修改
- *
- * @param {object} request
- * @param {object} response
- * @return {void}
- */
- async admin(request, response) {
- let adminData = {};
- try {
- // 查找对应超级管理员数据
- let managerModel = new ManagerModel();
- adminData = await managerModel.findDataByCondition({ username: 'admin' });
- } catch (error) {
- console.log(error);
- }
- let renderData = {
- adminData: adminData,
- layout: 'users/views/layout/layout',
- LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
- };
- response.render('users/views/manager/save', renderData);
- }
- /**
- * 超级管理员修改提交
- *
- * @param {object} request
- * @param {object} response
- * @return
- */
- async adminSubmit(request, response) {
- let newPassword = request.body.newPassword.toString();
- let password = request.body.password.toString();
- let managerModel = new ManagerModel();
- let responseData = {
- err: 0,
- msg: ''
- };
- try {
- if (!newPassword || !password) {
- throw '内容有误';
- }
- // 更改密码操作
- managerModel.setScene('changPassword');
- let result = await managerModel.changePassword('admin', password, newPassword);
- if (!result) {
- throw '更新错误';
- }
- } catch (error) {
- console.log(error);
- responseData.err = 40002;
- responseData.msg = error;
- }
- response.json(responseData);
- }
- async create(request, response) {
- let managerModel = new ManagerModel();
- let result = managerModel.changePassword('admin', 'admin123', 'admin123');
- // let result = await managerModel.createManager();
- response.end('success');
- }
- /**
- * 权限组页面
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async authority(request, response) {
- let pageData = {};
- let groupList = [];
- let topPermissionList = [];
- let permissionList = [];
- try {
- // 获取最高级权限列表
- let permissionModel = new PermissionModel();
- topPermissionList = await permissionModel.getList({ pid: 0 });
- // 获取所有权限列表,按排序
- permissionList = topPermissionList;
- for (let index in permissionList) {
- let count = await permissionModel.count({ pid: permissionList[index].ID });
- if (count > 0) {
- permissionList[index].secondPermissionList = await permissionModel.getList({ pid: permissionList[index].ID });
- console.log(permissionList[index].ID)
- console.log(permissionList[index].secondPermissionList);
- } else {
- permissionList[index].secondPermissionList = [];
- }
- permissionList[index].count = count;
- }
- // 获取权限组列表
- let permissionGroupModel = new PermissionGroupModel();
- let total = await permissionGroupModel.count();
- // 分页数据
- let page = request.query.page === undefined ? 1 : request.query.page;
- pageData = {
- current: page,
- total: parseInt(total / Config.pageSize),
- queryData: response.locals.urlQuery
- };
- // 获取管理员列表
- groupList = JSON.parse(JSON.stringify(await permissionGroupModel.getList(null, page)));
- // 整理数据
- if (groupList.length > 0) {
- let managerModel = new ManagerModel();
- for (let tmp in groupList) {
- let managerCount = await managerModel.count({ permission: groupList[tmp]._id });
- groupList[tmp].manager_count = managerCount;
- let groupPermissionList = JSON.parse(groupList[tmp].permission);
- for (let p in groupPermissionList) {
- if (p === 'top') {
- let topPermissionList = [];
- for (let t of groupPermissionList[p]) {
- let topInfo = await permissionModel.findDataByCondition({ _id: t });
- topPermissionList.push(topInfo.name);
- }
- groupList[tmp].top_name = topPermissionList.join(',');
- }
- }
- }
- }
- } catch (error) {
- }
- let renderData = {
- groupList: groupList,
- topPermissionList: topPermissionList,
- permissionList: permissionList,
- pages: pageData,
- layout: 'users/views/layout/layout',
- LicenseKey: config.getLicenseKey(process.env.NODE_ENV)
- };
- response.render('users/views/manager/authority', renderData);
- }
- /**
- * 权限组添加
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async authorityAdd(request, response) {
- let permissionGroupModel = new PermissionGroupModel();
- let result = await permissionGroupModel.createPermissionGroup(request.body);
- if (!result) {
- throw '添加失败';
- }
- response.redirect(request.headers.referer);
- }
- /**
- * 权限组修改保存
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async authoritySave(request, response) {
- let permissionGroupModel = new PermissionGroupModel();
- let result = await permissionGroupModel.savePermissionGroup(request.body);
- if (!result) {
- throw '修改失败';
- }
- response.redirect(request.headers.referer);
- }
- /**
- * 权限组删除
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async authorityDelete(request, response) {
- let id = request.body.id;
- try {
- let permissionGroupModel = new PermissionGroupModel();
- await permissionGroupModel.deleteById(id, true);
- // 并清空用户所在权限组
- let managerModel = new ManagerModel();
- await managerModel.updateByPermission(id);
- } catch (err) {
- throw err;
- }
- response.redirect(request.headers.referer);
- }
- /**
- * 权限添加接口
- * @param request
- * @param response
- * @return {Promise.<void>}
- */
- async permissionAdd(request, response) {
- let permissionModel = new PermissionModel();
- let responseData = {
- err: 0,
- msg: ''
- };
- try {
- permissionModel.setScene('insert');
- let result = await permissionModel.createPermission(request.body);
- if (!result) {
- throw '添加失败';
- }
- } catch (error) {
- console.log(error);
- responseData.err = 1;
- responseData.msg = error;
- }
- response.json(responseData);
- }
- }
- export default ManagerController;
|