ProjectRoleRightController.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Models\ProjectRole;
  4. use App\Models\ProjectRoleRight;
  5. use App\Models\Right;
  6. use Illuminate\Http\Request;
  7. class ProjectRoleRightController extends BaseController
  8. {
  9. protected $model;
  10. protected $department;
  11. protected $model_name = '权限管理';
  12. protected $pre_uri = '/admin/ProjectRoleRight/';
  13. protected $view_path = 'admin.project-role-rights.';
  14. protected $redirect_index = '/admin/ProjectRoleRight/index';
  15. public function __construct()
  16. {
  17. parent::__construct();
  18. $this->model = new ProjectRole();
  19. }
  20. public function index()
  21. {
  22. $rights = Right::all();
  23. $project_roles = ProjectRole::all();
  24. $project_role_rights = ProjectRoleRight::all();
  25. $items = [];
  26. foreach($rights as $right) {
  27. $item = [$right];
  28. foreach($project_roles as $project_role) {
  29. $has_right = $project_role_rights->where('right_id', $right->id)->where('project_role_id', $project_role->id)->first() != null;
  30. array_push($item, ['right_id' => $right->id, 'role_id' => $project_role->id, 'has' => $has_right]);
  31. }
  32. array_push($items, $item);
  33. }
  34. list($model, $model_name, $pre_uri) = array($this->model, $this->model_name, $this->pre_uri);
  35. return view($this->view_path . 'index', compact('model', 'model_name','pre_uri', 'items', 'project_roles'));
  36. }
  37. public function change(Request $request)
  38. {
  39. // 赋予权力
  40. if($request->input('has') == 2) {
  41. ProjectRoleRight::updateOrCreate([
  42. 'project_role_id' => $request->input('role_id'),
  43. 'right_id' => $request->input('right_id')
  44. ]);
  45. } else {
  46. // 取消权利
  47. ProjectRoleRight::where([
  48. ['project_role_id', $request->input('role_id')],
  49. ['right_id', $request->input('right_id')]
  50. ])->delete();
  51. }
  52. return response()->json(['status' => 'success', 'info' => '操作成功']);
  53. }
  54. }