user->isAdmin()) { throw new Forbidden(); } } /** * @throws Error */ public function postActionRebuild(): bool { $this->dataManager->rebuild(); return true; } /** * @throws Error */ public function postActionClearCache(): bool { $this->dataManager->clearCache(); return true; } /** * @return string[] */ public function getActionJobs(): array { return $this->scheduledJob->getAvailableList(); } /** * @return object{ * id: string, * version: string, * } * @throws Forbidden * @throws Error * @throws BadRequest */ public function postActionUploadUpgradePackage(Request $request): object { if ( $this->config->get('restrictedMode') && !$this->user->isSuperAdmin() ) { throw new Forbidden(); } $data = $request->getBodyContents(); if (!$data) { throw new BadRequest(); } $upgradeManager = new UpgradeManager($this->container); $upgradeId = $upgradeManager->upload($data); $manifest = $upgradeManager->getManifest(); return (object) [ 'id' => $upgradeId, 'version' => $manifest['version'], ]; } /** * @throws Forbidden * @throws Error */ public function postActionRunUpgrade(Request $request): bool { $data = $request->getParsedBody(); if ( $this->config->get('restrictedMode') && !$this->user->isSuperAdmin() ) { throw new Forbidden(); } $upgradeManager = new UpgradeManager($this->container); $upgradeManager->install(get_object_vars($data)); return true; } /** * @return object{ * message: string, * command: string, * } */ public function getActionCronMessage(): object { return (object) $this->scheduledJob->getSetupMessage(); } /** * @return array */ public function getActionAdminNotificationList(): array { return $this->adminNotificationManager->getNotificationList(); } /** * @return object{ * php: array>, * database: array>, * permission: array>, * } */ public function getActionSystemRequirementList(): object { return (object) $this->systemRequirements->getAllRequiredList(); } }