SystemRolesController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace App\Http\Controllers\admins;
  3. use App\Modes\SystemRoles;
  4. use App\Modes\SystemUser;
  5. use App\Modes\User;
  6. use Illuminate\Http\Request;
  7. use App\Http\Controllers\Controller;
  8. use Illuminate\Support\Facades\Validator;
  9. use Spatie\Permission\Models\Permission;
  10. use Spatie\Permission\Models\Role;
  11. class SystemRolesController extends Controller
  12. {
  13. /**
  14. * 角色列表
  15. * @author fatty
  16. * @date 2019/1/8
  17. * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  18. * @description
  19. */
  20. public function index()
  21. {
  22. $role = SystemRoles::with(['permissions' => function ($query) {
  23. $query->select(['id', 'name', 'remark', 'pid', 'status']);
  24. }])->get();
  25. return showJson(101, 1001, $role);
  26. }
  27. /**
  28. * 创建角色
  29. * @author fatty
  30. * @date 2019/1/4
  31. * @description
  32. */
  33. public function create(Request $request)
  34. {
  35. if (Role::where(['name' => $request->post('name'), 'guard_name' => config('permission.guard')])->exists()) {
  36. return showJsonErr('角色已存在');
  37. }
  38. $role = Role::create(['name' => $request->post('name'), 'guard_name' => config('permission.guard')]);
  39. return showJson(101, 1001, $role);
  40. }
  41. /**
  42. * 编辑角色
  43. * @author fatty
  44. * @date 2019/1/9
  45. * @param Request $request
  46. * @description
  47. */
  48. public function edit(Request $request)
  49. {
  50. $validator = Validator::make($param = $request->all(), [
  51. 'roleId' => 'required|exists:system_roles,id',
  52. 'roleName' => [
  53. 'required',
  54. 'max:32',
  55. function ($attribute, $value, $fail) {
  56. if (SystemRoles::whereName($value)->whereGuardName(env('Backend_Guard'))->exists()) {
  57. return $fail('角色已存在');
  58. }
  59. }
  60. ]
  61. ]);
  62. if ($validator->fails()) {
  63. return showJson(102, $validator->errors()->first());
  64. }
  65. // 判断登录用户是否拥有该角色
  66. if (!\Auth::user()->hasRole($param['roleId']) && \Auth::user()->is_super != 1) {
  67. return showJson(102, '您未拥有该角色');
  68. }
  69. $result = SystemRoles::edit($param);
  70. if (empty($result)) {
  71. return showJson(102, '更新失败');
  72. }
  73. return showJson(101, '更新成功', $result);
  74. }
  75. /**
  76. * 删除角色
  77. * @author fatty
  78. * @date 2019/1/9
  79. * @param $id
  80. * @description
  81. */
  82. public function del($id)
  83. {
  84. if (!Role::whereId($id)->exists()) {
  85. return showJsonErr('角色ID不存在');
  86. }
  87. // 判断登录用户是否拥有该角色
  88. if (!\Auth::user()->hasRole($id) && \Auth::user()->is_super != 1) {
  89. return showJson(102, '您未拥有该角色');
  90. }
  91. $result = SystemRoles::del($id);
  92. if (empty($result)) {
  93. return showJson(102, '删除角色失败');
  94. }
  95. return showJson(101, '删除角色成功');
  96. }
  97. /**
  98. * 角色拥有的权限
  99. * @author fatty
  100. * @date 2019/1/9
  101. * @description
  102. */
  103. public function show($id)
  104. {
  105. $role = Role::findById($id, config('permission.guard'));
  106. $role->getAllPermissions();
  107. return showJson(101, 1001, $role);
  108. }
  109. }