RightController.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Http\Controllers\Api\mini;
  3. use App\Models\Order;
  4. use App\Models\ProjectRole;
  5. use App\Models\ProjectRoleRight;
  6. use App\Models\ProjectUser;
  7. use App\Models\Right;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. class RightController extends BaseController
  11. {
  12. protected $model;
  13. public function __construct()
  14. {
  15. $this->model = new Right();
  16. }
  17. public function get(Request $request)
  18. {
  19. $rights = $this->model->all();
  20. $user = Auth::guard('mini')->user();
  21. $order = Order::find($request->input('order_id'));
  22. $project_role = null;
  23. if($user && $project_role) {
  24. $order_user = ProjectUser::where('project_id', $order->project_id)->where('user_id', $user->id)->first();
  25. if($order_user) {
  26. $project_role = ProjectRole::find(ProjectRole::find($order_user->project_role_id));
  27. }
  28. }
  29. $items = [];
  30. foreach($rights as $right) {
  31. $has_right = false;
  32. if($project_role) {
  33. $has_right = ProjectRoleRight::where([
  34. ['project_role_id', $project_role->id],
  35. ['right_id', $right->id]
  36. ])->first() != null;
  37. }
  38. $items[$right->key] = $has_right;
  39. }
  40. return $this->success(['data' => $items]);
  41. }
  42. }