SystemRole.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace app\adminapi\controller\v1\setting;
  3. use app\models\system\SystemRole as RoleModel;
  4. use app\adminapi\controller\AuthController;
  5. use app\models\system\SystemMenus;
  6. use crmeb\services\UtilService as Util;
  7. use think\Request;
  8. class SystemRole extends AuthController
  9. {
  10. /**
  11. * 显示资源列表
  12. *
  13. * @return \think\Response
  14. */
  15. public function index()
  16. {
  17. $where = Util::getMore([
  18. ['page', 1],
  19. ['limit', 20],
  20. ['status', ''],
  21. ['role_name', ''],
  22. ], $this->request);
  23. $where['level'] = $this->adminInfo['level'];
  24. // $where['level'] = -1;
  25. $list = RoleModel::systemPage($where);
  26. return $this->success($list);
  27. }
  28. /**
  29. * 显示创建资源表单页.
  30. *
  31. * @return \think\Response
  32. */
  33. public function create()
  34. {
  35. $menus = $this->adminInfo['level'] == 0 ? SystemMenus::ruleList() : SystemMenus::rolesByRuleList($this->adminInfo['roles']);
  36. return $this->success(compact('menus'));
  37. }
  38. /**
  39. * 保存新建的资源
  40. *
  41. * @param \think\Request $request
  42. * @return \think\Response
  43. */
  44. public function save(Request $request, $id)
  45. {
  46. $data = Util::postMore([
  47. 'role_name',
  48. ['status', 0],
  49. ['checked_menus', [], '', 'rules']
  50. ]);
  51. if (!$data['role_name']) return $this->fail('请输入身份名称');
  52. if (!is_array($data['rules']) || !count($data['rules']))
  53. return $this->fail('请选择最少一个权限');
  54. $data['rules'] = implode(',', $data['rules']);
  55. if ($id) {
  56. if (!RoleModel::edit($data, $id)) return $this->fail('修改失败!');
  57. return $this->success('修改成功!');
  58. } else {
  59. $data['level'] = $this->adminInfo['level'] + 1;
  60. if (!RoleModel::create($data)) return $this->fail('添加身份失败!');
  61. return $this->success('添加身份成功!');
  62. }
  63. }
  64. /**
  65. * 显示编辑资源表单页.
  66. *
  67. * @param int $id
  68. * @return \think\Response
  69. */
  70. public function edit($id)
  71. {
  72. $role = RoleModel::get($id);
  73. $menus = $this->adminInfo['level'] == 0 ? SystemMenus::ruleList() : SystemMenus::rolesByRuleList($this->adminInfo['roles']);
  74. return $this->success(['role' => $role, 'menus' => $menus]);
  75. }
  76. /**
  77. * 删除指定资源
  78. *
  79. * @param int $id
  80. * @return \think\Response
  81. */
  82. public function delete($id)
  83. {
  84. if (!RoleModel::del($id))
  85. return $this->fail(RoleModel::getErrorInfo('删除失败,请稍候再试!'));
  86. else
  87. return $this->success('删除成功!');
  88. }
  89. /**
  90. * 修改状态
  91. * @param $id
  92. * @param $status
  93. * @return mixed
  94. */
  95. public function set_status($id, $status)
  96. {
  97. if (!$id) {
  98. return $this->fail('缺少参数');
  99. }
  100. $role = RoleModel::get($id);
  101. if (!$role) {
  102. return $this->fail('没有查到此身份');
  103. }
  104. $role->status = $status;
  105. if ($role->save()) {
  106. return $this->success('修改成功');
  107. } else {
  108. return $this->fail('修改失败');
  109. }
  110. }
  111. }