SystemRole.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. namespace app\admin\controller\setting;
  3. use app\admin\controller\AuthController;
  4. use app\admin\model\system\{SystemMenus, SystemRole as RoleModel};
  5. use crmeb\services\{UtilService as Util, JsonService as Json};
  6. use think\facade\Route as Url;
  7. /**
  8. * 身份管理 控制器
  9. * Class SystemRole
  10. * @package app\admin\controller\setting
  11. */
  12. class SystemRole extends AuthController
  13. {
  14. /**
  15. * 显示资源列表
  16. *
  17. * @return \think\Response
  18. */
  19. public function index()
  20. {
  21. $where = Util::getMore([
  22. ['status', ''],
  23. ['role_name', ''],
  24. ['type',0],
  25. ], $this->request);
  26. $where['level'] = $this->adminInfo['level'];
  27. $this->assign('where', $where);
  28. $this->assign(RoleModel::systemPage($where));
  29. return $this->fetch();
  30. }
  31. public function company()
  32. {
  33. $where = Util::getMore([
  34. ['status', ''],
  35. ['role_name', ''],
  36. ['type',1],
  37. ], $this->request);
  38. $where['level'] = $this->adminInfo['level'];
  39. $this->assign('where', $where);
  40. $this->assign(RoleModel::systemPage($where));
  41. return $this->fetch('index');
  42. }
  43. /**
  44. * 显示创建资源表单页.
  45. *
  46. * @return \think\Response
  47. */
  48. public function create($type)
  49. {
  50. // if(0 == 0){
  51. // }else{
  52. // dump($this->adminInfo['level']);
  53. // }
  54. $menus = $this->adminInfo['level'] == 0 ? SystemMenus::ruleList() : SystemMenus::rolesByRuleList($this->adminInfo['roles']);
  55. $this->assign(['menus' => json($menus)->getContent(), 'saveUrl' => Url::buildUrl('save')]);
  56. $this->assign('type',$type);
  57. return $this->fetch();
  58. }
  59. /**
  60. * 保存新建的资源
  61. *
  62. * @param \think\Request $request
  63. * @return \think\Response
  64. */
  65. public function save()
  66. {
  67. $data = Util::postMore([
  68. 'role_name',
  69. ['status', 0],
  70. ['type', 0],
  71. ['checked_menus', [], '', 'rules']
  72. ]);
  73. if (!$data['role_name']) return Json::fail('请输入身份名称');
  74. if (!is_array($data['rules']) || !count($data['rules']))
  75. return Json::fail('请选择最少一个权限');
  76. foreach ($data['rules'] as $v) {
  77. $pid = SystemMenus::where('id', $v)->value('pid');
  78. if (!in_array($pid, $data['rules'])) $data['rules'][] = $pid;
  79. }
  80. $data['rules'] = implode(',', $data['rules']);
  81. $data['level'] = $this->adminInfo['level'] + 1;
  82. if (!RoleModel::create($data)) return Json::fail('添加身份失败!');
  83. return Json::successful('添加身份成功!');
  84. }
  85. /**
  86. * 显示指定的资源
  87. *
  88. * @param int $id
  89. * @return \think\Response
  90. */
  91. public function read($id)
  92. {
  93. //
  94. }
  95. /**
  96. * 显示编辑资源表单页.
  97. *
  98. * @param int $id
  99. * @return \think\Response
  100. */
  101. public function edit($id)
  102. {
  103. //
  104. $role = RoleModel::get($id);
  105. $menus = $this->adminInfo['level'] == 0 ? SystemMenus::ruleList() : SystemMenus::rolesByRuleList($this->adminInfo['roles']);
  106. $this->assign(['role' => $role->toJson(), 'menus' => json($menus)->getContent(), 'updateUrl' => Url::buildUrl('update', array('id' => $id))]);
  107. return $this->fetch();
  108. }
  109. /**
  110. * 保存更新的资源
  111. *
  112. * @param \think\Request $request
  113. * @param int $id
  114. * @return \think\Response
  115. */
  116. public function update($id)
  117. {
  118. $data = Util::postMore([
  119. 'role_name',
  120. ['status', 0],
  121. ['checked_menus', [], '', 'rules']
  122. ]);
  123. if (!$data['role_name']) return Json::fail('请输入身份名称');
  124. if (!is_array($data['rules']) || !count($data['rules']))
  125. return Json::fail('请选择最少一个权限');
  126. foreach ($data['rules'] as $v) {
  127. $pid = SystemMenus::where('id', $v)->value('pid');
  128. if (!in_array($pid, $data['rules'])) $data['rules'][] = $pid;
  129. }
  130. $data['rules'] = implode(',', $data['rules']);
  131. if (!RoleModel::edit($data, $id)) return Json::fail('修改失败!');
  132. return Json::successful('修改成功!');
  133. }
  134. /**
  135. * 删除指定资源
  136. *
  137. * @param int $id
  138. * @return \think\Response
  139. */
  140. public function delete($id)
  141. {
  142. if (!RoleModel::del($id))
  143. return Json::fail(RoleModel::getErrorInfo('删除失败,请稍候再试!'));
  144. else
  145. return Json::successful('删除成功!');
  146. }
  147. }