summaryrefslogtreecommitdiffstats
path: root/apps
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
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')
-rw-r--r--apps/settings/appinfo/routes.php9
-rw-r--r--apps/settings/composer/composer/autoload_classmap.php1
-rw-r--r--apps/settings/composer/composer/autoload_static.php1
-rw-r--r--apps/settings/help.php58
-rw-r--r--apps/settings/lib/Controller/HelpController.php97
-rw-r--r--apps/settings/templates/help.php13
6 files changed, 109 insertions, 70 deletions
diff --git a/apps/settings/appinfo/routes.php b/apps/settings/appinfo/routes.php
index b55bea0de68..3c80cc05386 100644
--- a/apps/settings/appinfo/routes.php
+++ b/apps/settings/appinfo/routes.php
@@ -89,12 +89,7 @@ $application->registerRoutes($this, [
['name' => 'ChangePassword#changeUserPassword', 'url' => '/settings/users/changepassword', 'verb' => 'POST'],
['name' => 'TwoFactorSettings#index', 'url' => '/settings/api/admin/twofactorauth', 'verb' => 'GET'],
['name' => 'TwoFactorSettings#update', 'url' => '/settings/api/admin/twofactorauth', 'verb' => 'PUT'],
+
+ ['name' => 'Help#help', 'url' => '/settings/help/{mode}', 'verb' => 'GET', 'defaults' => ['mode' => '']],
]
]);
-
-/** @var $this \OCP\Route\IRouter */
-
-// Settings pages
-$this->create('settings_help', '/settings/help')
- ->actionInclude('settings/help.php');
-
diff --git a/apps/settings/composer/composer/autoload_classmap.php b/apps/settings/composer/composer/autoload_classmap.php
index e2a08896ccc..a59c31701e8 100644
--- a/apps/settings/composer/composer/autoload_classmap.php
+++ b/apps/settings/composer/composer/autoload_classmap.php
@@ -27,6 +27,7 @@ return array(
'OCA\\Settings\\Controller\\ChangePasswordController' => $baseDir . '/../lib/Controller/ChangePasswordController.php',
'OCA\\Settings\\Controller\\CheckSetupController' => $baseDir . '/../lib/Controller/CheckSetupController.php',
'OCA\\Settings\\Controller\\CommonSettingsTrait' => $baseDir . '/../lib/Controller/CommonSettingsTrait.php',
+ 'OCA\\Settings\\Controller\\HelpController' => $baseDir . '/../lib/Controller/HelpController.php',
'OCA\\Settings\\Controller\\LogSettingsController' => $baseDir . '/../lib/Controller/LogSettingsController.php',
'OCA\\Settings\\Controller\\MailSettingsController' => $baseDir . '/../lib/Controller/MailSettingsController.php',
'OCA\\Settings\\Controller\\PersonalSettingsController' => $baseDir . '/../lib/Controller/PersonalSettingsController.php',
diff --git a/apps/settings/composer/composer/autoload_static.php b/apps/settings/composer/composer/autoload_static.php
index 3dd12edc57c..2545c97d220 100644
--- a/apps/settings/composer/composer/autoload_static.php
+++ b/apps/settings/composer/composer/autoload_static.php
@@ -42,6 +42,7 @@ class ComposerStaticInitSettings
'OCA\\Settings\\Controller\\ChangePasswordController' => __DIR__ . '/..' . '/../lib/Controller/ChangePasswordController.php',
'OCA\\Settings\\Controller\\CheckSetupController' => __DIR__ . '/..' . '/../lib/Controller/CheckSetupController.php',
'OCA\\Settings\\Controller\\CommonSettingsTrait' => __DIR__ . '/..' . '/../lib/Controller/CommonSettingsTrait.php',
+ 'OCA\\Settings\\Controller\\HelpController' => __DIR__ . '/..' . '/../lib/Controller/HelpController.php',
'OCA\\Settings\\Controller\\LogSettingsController' => __DIR__ . '/..' . '/../lib/Controller/LogSettingsController.php',
'OCA\\Settings\\Controller\\MailSettingsController' => __DIR__ . '/..' . '/../lib/Controller/MailSettingsController.php',
'OCA\\Settings\\Controller\\PersonalSettingsController' => __DIR__ . '/..' . '/../lib/Controller/PersonalSettingsController.php',
diff --git a/apps/settings/help.php b/apps/settings/help.php
deleted file mode 100644
index 62f10ade521..00000000000
--- a/apps/settings/help.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bart Visscher <bartv@thisnet.nl>
- * @author Christopher Schäpers <kondou@ts.unde.re>
- * @author Frank Karlitschek <frank@karlitschek.de>
- * @author Jakob Sack <mail@jakobsack.de>
- * @author Jan-Christoph Borchardt <hey@jancborchardt.net>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-OC_Util::checkLoggedIn();
-
-// Load the files we need
-OC_Util::addStyle( "settings", "settings" );
-\OC::$server->getNavigationManager()->setActiveEntry('help');
-
-
-if(isset($_GET['mode']) and $_GET['mode'] === 'admin') {
- $url=\OCP\Util::linkToAbsolute( 'core', 'doc/admin/index.html' );
- $style1='';
- $style2=' active';
-}else{
- $url=\OCP\Util::linkToAbsolute( 'core', 'doc/user/index.html' );
- $style1=' active';
- $style2='';
-}
-
-$url1=\OC::$server->getURLGenerator()->linkToRoute('settings_help').'?mode=user';
-$url2=\OC::$server->getURLGenerator()->linkToRoute('settings_help').'?mode=admin';
-
-$tmpl = new OC_Template( "settings", "help", "user" );
-$tmpl->assign( "admin", OC_User::isAdminUser(OC_User::getUser()));
-$tmpl->assign( "url", $url );
-$tmpl->assign( "url1", $url1 );
-$tmpl->assign( "url2", $url2 );
-$tmpl->assign( "style1", $style1 );
-$tmpl->assign( "style2", $style2 );
-$tmpl->printPage();
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;
+
+ }
+
+}
diff --git a/apps/settings/templates/help.php b/apps/settings/templates/help.php
index f58fc66f1b2..02e84052ff4 100644
--- a/apps/settings/templates/help.php
+++ b/apps/settings/templates/help.php
@@ -1,15 +1,18 @@
+<?php
+\OC_Util::addStyle( 'settings', "settings" );
+?>
<div id="app-navigation">
<ul>
- <?php if($_['admin']) { ?>
<li>
- <a class="icon-user <?php p($_['style1']); ?>"
- href="<?php print_unescaped($_['url1']); ?> class= "">
+ <a class="icon-user <?php if ($_['mode'] === 'user') { p('active'); } ?>"
+ href="<?php print_unescaped($_['urlUserDocs']); ?>">
<?php p($l->t('User documentation')); ?>
</a>
</li>
+ <?php if($_['admin']) { ?>
<li>
- <a class="icon-user-admin <?php p($_['style2']); ?>"
- href="<?php print_unescaped($_['url2']); ?>">
+ <a class="icon-user-admin <?php if ($_['mode'] === 'admin') { p('active'); } ?>"
+ href="<?php print_unescaped($_['urlAdminDocs']); ?>">
<?php p($l->t('Administrator documentation')); ?>
</a>
</li>