SysRole.php 3.2 KB

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