user()->role !== 'admin') { $query->where('owner_id', $request->user()->id); } return $query; } private function authorizeBankOwner(Request $request, QuestionBank $bank): void { abort_if(! $this->ownsResource($request->user(), $bank->owner_id), 403, '权限不足'); } private function authorizeQuestionOwner(Request $request, Question $question): void { $question->loadMissing('bank'); abort_if(! $this->ownsResource($request->user(), $question->bank->owner_id), 403, '权限不足'); } private function authorizePaperOwner(Request $request, Paper $paper): void { abort_if(! $this->ownsResource($request->user(), $paper->owner_id), 403, '权限不足'); } private function ownsResource(User $user, int $ownerId): bool { return $user->role === 'admin' || $ownerId === $user->id; } }