SystemRole.php 4.1 KB

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