SystemPermissionsController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. namespace App\Http\Controllers\admins;
  3. use App\Modes\SystemPermissions;
  4. use App\Modes\SystemRoleHasPermissions;
  5. use App\Modes\User;
  6. use Encore\Admin\Facades\Admin;
  7. use Illuminate\Http\Request;
  8. use App\Http\Controllers\Controller;
  9. use Spatie\Permission\Models\Permission;
  10. class SystemPermissionsController extends Controller
  11. {
  12. protected $tree = [];
  13. /**
  14. * 权限-列表
  15. * @author fatty
  16. * @date 2019/1/8
  17. * @description
  18. */
  19. public function index()
  20. {
  21. $permission = User::find(\Auth::id())->getAllPermissions();
  22. return showJson(101, 1001, $permission);
  23. }
  24. /**
  25. * 权限-添加
  26. * @author fatty
  27. * @date 2019/1/4
  28. * @description
  29. */
  30. public function create(Request $request)
  31. {
  32. $validator = \Validator::make($param = $request->all(), [
  33. 'path' => 'required',
  34. 'pid' => 'required|numeric',
  35. 'remark' => 'required',
  36. 'name' => 'required',
  37. ]);
  38. if ($validator->fails()) {
  39. return showJsonErr($validator->errors()->first());
  40. }
  41. if (Permission::whereName($request->post('name'))->exists()) {
  42. return showJsonErr('权限名称已存在', $request->post('name'));
  43. }
  44. $permission = SystemPermissions::create($request->all());
  45. return showJson(101, 1001, $permission);
  46. }
  47. /**
  48. * 权限-删除
  49. * @author fatty
  50. * @date 2019/1/9
  51. * @param $id
  52. * @description
  53. * 删除角色关联
  54. * 删除权限
  55. */
  56. public function del($id)
  57. {
  58. $result = SystemPermissions::del($id);
  59. if (empty($result)) {
  60. return showJson(102, '删除权限失败');
  61. }
  62. return showJson(101, '删除权限成功');
  63. }
  64. /**
  65. * 详情
  66. * @author fatty
  67. * @date 2019/1/9
  68. * @param $id
  69. * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
  70. * @description
  71. */
  72. public function show($id)
  73. {
  74. $permission = Permission::findById($id, config('permission.guard'));
  75. return showJson(101, 1001, $permission);
  76. }
  77. /**
  78. * 编辑
  79. * @author fatty
  80. * @date 2019/1/9
  81. * @description
  82. */
  83. public function edit(Request $request)
  84. {
  85. $post = filterReq($request->all(), ['pid', 'name', 'id', 'remark', 'path', 'status']);
  86. $validator = \Validator::make($param = $request->all(), [
  87. 'id' => 'required|numeric'
  88. ]);
  89. if ($validator->fails()) {
  90. return showJsonErr($validator->errors()->first());
  91. }
  92. $permission = SystemPermissions::edit($post);
  93. return showJson(101, '编辑权限成功', $permission);
  94. }
  95. public function tree(Request $request)
  96. {
  97. $user = User::find(Admin()->id);
  98. $permission = $user->getAllPermissions();
  99. // var_dump($permission);exit;
  100. $tree = self::getTree($permission);
  101. return showJsonSucc(1001, $tree);
  102. }
  103. private static function getTree(\Illuminate\Support\Collection $permission, $pid = 0)
  104. {
  105. $tree = [];
  106. foreach ($permission as $item) {
  107. if ($item->pid == $pid) {
  108. $tree[] = [
  109. 'id' => $item->id,
  110. 'name' => $item->name,
  111. 'pid' => $item->pid,
  112. 'status' => $item->status,
  113. 'title' => $item->remark,
  114. 'children' => self::getTree($permission, $item['id'])
  115. ];
  116. }
  117. }
  118. return $tree;
  119. }
  120. }