assertStaff($request); return $this->adminController->index($request); } public function show(Request $request, int $weeklyBrief): JsonResponse { $this->assertStaff($request); return $this->adminController->show($weeklyBrief); } public function generate(Request $request): JsonResponse { $this->assertStaff($request); return $this->adminController->generate($request); } public function weekOptions(Request $request): JsonResponse { $this->assertStaff($request); return $this->adminController->weekOptions(); } public function download(Request $request, int $weeklyBrief): StreamedResponse|JsonResponse { $this->assertStaff($request); return $this->adminController->download($weeklyBrief); } protected function assertStaff(Request $request): MiniappUser { $user = $request->user(); if (! $user instanceof MiniappUser) { abort(401, '请先登录'); } $payload = MiniappPresenter::userPayload($user); if (! ($payload['can_use_crawler'] ?? false)) { abort(403, '无权使用论文周报'); } return $user; } }