aboutsummaryrefslogtreecommitdiffstats
path: root/apps/settings/lib/Controller/HelpController.php
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2019-10-17 10:54:46 +0200
committerJulius Härtl <jus@bitgrid.net>2019-10-17 11:05:54 +0200
commita307bb285ee6f01982dbc7fde05ff34d038cf1d6 (patch)
tree884605307cb1e51ee6264f63fed25c36c63e6d28 /apps/settings/lib/Controller/HelpController.php
parentbd5189f29fc5b4340298f98f2f7a49aa3a157131 (diff)
downloadnextcloud-server-a307bb285ee6f01982dbc7fde05ff34d038cf1d6.tar.gz
nextcloud-server-a307bb285ee6f01982dbc7fde05ff34d038cf1d6.zip
Move help to controller
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'apps/settings/lib/Controller/HelpController.php')
-rw-r--r--apps/settings/lib/Controller/HelpController.php97
1 files changed, 97 insertions, 0 deletions
diff --git a/apps/settings/lib/Controller/HelpController.php b/apps/settings/lib/Controller/HelpController.php
new file mode 100644
index 00000000000..eaad0be6709
--- /dev/null
+++ b/apps/settings/lib/Controller/HelpController.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+declare(strict_types=1);
+
+namespace OCA\Settings\Controller;
+
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\ContentSecurityPolicy;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\IGroupManager;
+use OCP\INavigationManager;
+use OCP\IRequest;
+use OCP\IURLGenerator;
+use OCP\IUserSession;
+
+class HelpController extends Controller {
+
+ /** @var INavigationManager */
+ private $navigationManager;
+ /** @var IUserSession */
+ private $urlGenerator;
+ /** @var IGroupManager */
+ private $groupManager;
+
+ /** @var string */
+ private $userId;
+
+ public function __construct(
+ string $appName,
+ IRequest $request,
+ INavigationManager $navigationManager,
+ IURLGenerator $urlGenerator,
+ string $userId,
+ IGroupManager $groupManager
+ ) {
+ parent::__construct($appName, $request);
+ $this->navigationManager = $navigationManager;
+ $this->urlGenerator = $urlGenerator;
+ $this->userId = $userId;
+ $this->groupManager = $groupManager;
+ }
+
+ /**
+ * @return TemplateResponse
+ *
+ * @NoCSRFRequired
+ * @NoAdminRequired
+ */
+ public function help(string $mode = 'user'): TemplateResponse {
+ $this->navigationManager->setActiveEntry('help');
+
+ if(!isset($mode) || $mode !== 'admin') {
+ $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']);
+
+ $response = new TemplateResponse('settings', 'help', [
+ 'admin' => $this->groupManager->isAdmin($this->userId),
+ 'url' => $documentationUrl,
+ 'urlUserDocs' => $urlUserDocs,
+ 'urlAdminDocs' => $urlAdminDocs,
+ 'mode' => $mode,
+ ]);
+ $policy = new ContentSecurityPolicy();
+ $policy->addAllowedFrameDomain('\'self\'');
+ $response->setContentSecurityPolicy($policy);
+ return $response;
+
+ }
+
+}