account_controller.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. 'use strict';
  2. /**
  3. * 账号管理相关控制器
  4. *
  5. * @author CaiAoLin
  6. * @date 2018/1/23
  7. * @version
  8. */
  9. const permission = require('../../config/permission');
  10. module.exports = app => {
  11. class AccountController extends app.BaseController {
  12. /**
  13. * 账号管理页面
  14. *
  15. * @param {Object} ctx - egg全局变量
  16. * @return {void}
  17. */
  18. async index(ctx) {
  19. try {
  20. const sessionProject = ctx.session.sessionProject;
  21. // 获取当前项目的用户列表
  22. const accountList = await ctx.service.projectAccount.getAccountByProjectId(sessionProject.id);
  23. const renderData = {
  24. accountList,
  25. permissionList: JSON.stringify(permission.permissionList),
  26. permissionString: JSON.stringify(permission.permissionString),
  27. };
  28. await this.layout('account/index.ejs', renderData);
  29. } catch (error) {
  30. this.setMessage(error.toString(), this.messageType.ERROR);
  31. ctx.redirect(ctx.request.header.referer);
  32. }
  33. }
  34. /**
  35. * 停用/启用操作
  36. *
  37. * @param {Object} ctx - egg全局变量
  38. * @return {void}
  39. */
  40. async enable(ctx) {
  41. let accountId = ctx.params.accountId;
  42. try {
  43. accountId = parseInt(accountId);
  44. if (isNaN(accountId) || accountId <= 0) {
  45. throw '参数错误!';
  46. }
  47. const result = await ctx.service.projectAccount.enableAccount(accountId);
  48. if (!result) {
  49. throw '设置失败';
  50. }
  51. this.setMessage('设置成功', this.messageType.SUCCESS);
  52. } catch (error) {
  53. this.setMessage(error.toString(), this.messageType.ERROR);
  54. }
  55. ctx.redirect(ctx.request.header.referer);
  56. }
  57. /**
  58. * 保存用户权限
  59. *
  60. * @param {Object} ctx - egg全局变量
  61. * @return {void}
  62. */
  63. async savePermission(ctx) {
  64. let accountId = ctx.params.accountId;
  65. const permission = ctx.request.body.permission;
  66. const response = {
  67. err: 0,
  68. msg: '',
  69. };
  70. try {
  71. accountId = parseInt(accountId);
  72. if (isNaN(accountId) || accountId <= 0 || permission === '') {
  73. throw '参数错误';
  74. }
  75. const result = await ctx.service.projectAccount.save({ permission }, accountId);
  76. if (!result) {
  77. throw '保存权限错误';
  78. }
  79. } catch (error) {
  80. response.err = 1;
  81. response.msg = error;
  82. }
  83. ctx.body = response;
  84. }
  85. }
  86. return AccountController;
  87. };