account_controller.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. };
  27. await this.layout('account/index.ejs', renderData);
  28. } catch (error) {
  29. this.setMessage(error.toString(), this.messageType.ERROR);
  30. ctx.redirect(ctx.request.headers.referer);
  31. }
  32. }
  33. /**
  34. * 停用/启用操作
  35. *
  36. * @param {Object} ctx - egg全局变量
  37. * @return {void}
  38. */
  39. async enable(ctx) {
  40. let accountId = ctx.params.accountId;
  41. try {
  42. accountId = parseInt(accountId);
  43. if (isNaN(accountId) || accountId <= 0) {
  44. throw '参数错误!';
  45. }
  46. const result = await ctx.service.projectAccount.enableAccount(accountId);
  47. if (!result) {
  48. throw '设置失败';
  49. }
  50. this.setMessage('设置成功', this.messageType.SUCCESS);
  51. } catch (error) {
  52. this.setMessage(error.toString(), this.messageType.ERROR);
  53. }
  54. ctx.redirect(ctx.request.headers.referer);
  55. }
  56. }
  57. return AccountController;
  58. };