SysRole.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace app\sys\controller;
  3. use think\facade\View;
  4. use app\common\model\SysMenu;
  5. use app\common\model\SysUser;
  6. use app\common\model\SysRole as SysRoleModel;
  7. use think\facade\Session;
  8. class SysRole extends Base
  9. {
  10. public function index()
  11. {
  12. $list = SysRoleModel::field('roleid,name,permissions,remark,create_time')->select();
  13. View::assign('list', $list);
  14. return View::fetch();
  15. }
  16. public function save($id = 0)
  17. {
  18. if ($this->app->request->isPost()) {
  19. $params = $this->app->request->param();
  20. if ($params['name'] == '') {
  21. $this->error("目录名不能为空");
  22. }
  23. $permissions = '';
  24. if (!empty($params['perm_check'])) {
  25. $perm_checks = $params['perm_check'];
  26. $permissions = implode(',', $perm_checks);
  27. }
  28. unset($params['perm_check']);
  29. $params['permissions'] = $permissions;
  30. try {
  31. $id = $params['roleid'];
  32. unset($params['roleid']);
  33. if ($id != 0) {
  34. SysRoleModel::update($params, ['roleid' => $id]);
  35. } else {
  36. SysRoleModel::create($params);
  37. }
  38. } catch (\Exception $e) {
  39. $msg = $e->getMessage();
  40. $this->error("错误提示:".$msg);
  41. }
  42. $this->success('操作成功', 'sys_role/index');
  43. } else {
  44. if ($id != 0) {
  45. $data = SysRoleModel::find($id);
  46. // 已有权限数组
  47. $rolePowers = explode(',', $data->permissions);
  48. } else {
  49. $data = [
  50. 'roleid' => 0,
  51. 'name' => '',
  52. 'permissions' => '',
  53. 'remark' =>''
  54. ];
  55. $rolePowers = [];
  56. }
  57. // var_dump($data);
  58. // exit;
  59. $sysMenu = new sysMenu();
  60. $dataPermission = obj_tree($sysMenu->select());
  61. return View::fetch('save', [
  62. 'data' => $data,
  63. 'rolePowers' => $rolePowers,
  64. 'dataPermission' => $dataPermission
  65. ]);
  66. }
  67. }
  68. public function delete($id = null)
  69. {
  70. if ($this->app->request->isAjax()) {
  71. $U_role_id = SysUser::where('userid', Session::get('adminuser.roleid'))->value('roleid');
  72. if (is_array($id)) {
  73. if (in_array('1', $id)) {
  74. return ['status'=>0,'msg'=>'超级管理员无法删除'];
  75. }
  76. if (in_array($U_role_id, $id)) {
  77. return ['status'=>0,'msg'=>'当前登录用户角色无法删除'];
  78. }
  79. } else {
  80. if ($id == 1) {
  81. return ['status'=>0,'msg'=>'超级管理员无法删除'];
  82. }
  83. if ($id == $U_role_id) {
  84. return ['status'=>0,'msg'=>'当前登录用户角色无法删除'];
  85. }
  86. }
  87. if (SysRoleModel::destroy($id)) {
  88. return ['code' => 1,'msg'=>'操作成功'];
  89. } else {
  90. return ['code' => 0,'msg'=>'操作失败'];
  91. }
  92. }
  93. }
  94. }