l = $l10n; $this->trustedServers = $trustedServers; } /** * Add server to the list of trusted Nextclouds. * * @throws HintException */ #[AuthorizedAdminSetting(settings: Admin::class)] public function addServer(string $url): DataResponse { $this->checkServer($url); $id = $this->trustedServers->addServer($url); return new DataResponse([ 'url' => $url, 'id' => $id, 'message' => $this->l->t('Added to the list of trusted servers') ]); } /** * Add server to the list of trusted Nextclouds. */ #[AuthorizedAdminSetting(settings: Admin::class)] public function removeServer(int $id): DataResponse { $this->trustedServers->removeServer($id); return new DataResponse(); } /** * Check if the server should be added to the list of trusted servers or not. * * @throws HintException */ #[AuthorizedAdminSetting(settings: Admin::class)] protected function checkServer(string $url): bool { if ($this->trustedServers->isTrustedServer($url) === true) { $message = 'Server is already in the list of trusted servers.'; $hint = $this->l->t('Server is already in the list of trusted servers.'); throw new HintException($message, $hint); } if ($this->trustedServers->isNextcloudServer($url) === false) { $message = 'No server to federate with found'; $hint = $this->l->t('No server to federate with found'); throw new HintException($message, $hint); } return true; } }