account_controller.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict';
  2. /**
  3. * 账号管理相关控制器
  4. *
  5. * @author CaiAoLin
  6. * @date 2018/1/23
  7. * @version
  8. */
  9. module.exports = app => {
  10. class AccountController extends app.BaseController {
  11. /**
  12. * 账号管理页面
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. async index(ctx) {
  18. try {
  19. const sessionProject = ctx.session.sessionProject;
  20. // 获取当前项目的用户列表
  21. const accountList = await ctx.service.projectAccount.getAccountByProjectId(sessionProject.id);
  22. const renderData = {
  23. accountList,
  24. };
  25. await this.layout('account/index.ejs', renderData);
  26. } catch (error) {
  27. this.setMessage(error.toString(), this.messageType.ERROR);
  28. ctx.redirect(ctx.request.headers.referer);
  29. }
  30. }
  31. /**
  32. * 停用/启用操作
  33. *
  34. * @param {Object} ctx - egg全局变量
  35. * @return {void}
  36. */
  37. async enable(ctx) {
  38. let accountId = ctx.params.accountId;
  39. try {
  40. accountId = parseInt(accountId);
  41. if (isNaN(accountId) || accountId <= 0) {
  42. throw '参数错误!';
  43. }
  44. const result = await ctx.service.projectAccount.enableAccount(accountId);
  45. if (!result) {
  46. throw '设置失败';
  47. }
  48. this.setMessage('设置成功', this.messageType.SUCCESS);
  49. } catch (error) {
  50. this.setMessage(error.toString(), this.messageType.ERROR);
  51. }
  52. ctx.redirect(ctx.request.headers.referer);
  53. }
  54. }
  55. return AccountController;
  56. };