diff options
Diffstat (limited to 'apps/settings/lib/Controller/HelpController.php')
-rw-r--r-- | apps/settings/lib/Controller/HelpController.php | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/apps/settings/lib/Controller/HelpController.php b/apps/settings/lib/Controller/HelpController.php index cf202c28d98..3128cbfaa23 100644 --- a/apps/settings/lib/Controller/HelpController.php +++ b/apps/settings/lib/Controller/HelpController.php @@ -39,6 +39,7 @@ use OCP\IL10N; use OCP\INavigationManager; use OCP\IRequest; use OCP\IURLGenerator; +use OCP\IConfig; #[IgnoreOpenAPI] class HelpController extends Controller { @@ -55,6 +56,9 @@ class HelpController extends Controller { /** @var string */ private $userId; + /** @var IConfig */ + private $config; + public function __construct( string $appName, IRequest $request, @@ -62,7 +66,8 @@ class HelpController extends Controller { IURLGenerator $urlGenerator, ?string $userId, IGroupManager $groupManager, - IL10N $l10n + IL10N $l10n, + IConfig $config, ) { parent::__construct($appName, $request); $this->navigationManager = $navigationManager; @@ -70,6 +75,7 @@ class HelpController extends Controller { $this->userId = $userId; $this->groupManager = $groupManager; $this->l10n = $l10n; + $this->config = $config; } /** @@ -79,19 +85,40 @@ class HelpController extends Controller { * @NoAdminRequired * @NoSubAdminRequired */ - public function help(): TemplateResponse { + public function help(string $mode = 'user'): TemplateResponse { $this->navigationManager->setActiveEntry('help'); - $pageTitle = $this->l10n->t('Nextcloud help overview'); + $pageTitle = $this->l10n->t('Administrator documentation'); + if ($mode !== 'admin') { + $pageTitle = $this->l10n->t('User documentation'); + $mode = 'user'; + } + + $documentationUrl = $this->urlGenerator->getAbsoluteURL( + $this->urlGenerator->linkTo('', 'core/doc/' . $mode . '/index.html') + ); + + $urlUserDocs = $this->urlGenerator->linkToRoute('settings.Help.help', ['mode' => 'user']); + $urlAdminDocs = $this->urlGenerator->linkToRoute('settings.Help.help', ['mode' => 'admin']); - $urlUserDocs = $this->urlGenerator->linkToDocs('user'); - $urlAdminDocs = $this->urlGenerator->linkToDocs('admin'); + $knowledgebaseEmbedded = $this->config->getSystemValueBool('knowledgebase.embedded', false); + if (!$knowledgebaseEmbedded) { + $pageTitle = $this->l10n->t('Nextcloud help overview'); + $urlUserDocs = $this->urlGenerator->linkToDocs('user'); + $urlAdminDocs = $this->urlGenerator->linkToDocs('admin'); + } $response = new TemplateResponse('settings', 'help', [ 'admin' => $this->groupManager->isAdmin($this->userId), + 'url' => $documentationUrl, 'urlUserDocs' => $urlUserDocs, 'urlAdminDocs' => $urlAdminDocs, + 'mode' => $mode, 'pageTitle' => $pageTitle, + 'knowledgebaseEmbedded' => $knowledgebaseEmbedded, ]); + $policy = new ContentSecurityPolicy(); + $policy->addAllowedFrameDomain('\'self\''); + $response->setContentSecurityPolicy($policy); return $response; } } |