From 107fab9dfad01ac8d6532e1a3e3758d444a114b0 Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Sun, 16 Dec 2018 18:39:01 +0100 Subject: Add the "where is your data?" frontend Signed-off-by: Michael Weimann --- lib/private/Settings/Personal/PersonalInfo.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index 8c1c8cb19b8..bd9cd263260 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -38,6 +38,7 @@ use OCP\IUser; use OCP\IUserManager; use OCP\L10N\IFactory; use OCP\Settings\ISettings; +use OCP\Encryption\IManager as EncryptionManager; class PersonalInfo implements ISettings { @@ -55,6 +56,8 @@ class PersonalInfo implements ISettings { private $l10nFactory; /** @var IL10N */ private $l; + /** @var EncryptionManager */ + private $encryptionManager; /** * @param IConfig $config @@ -71,7 +74,8 @@ class PersonalInfo implements ISettings { AccountManager $accountManager, IAppManager $appManager, IFactory $l10nFactory, - IL10N $l + IL10N $l, + EncryptionManager $encryptionManager ) { $this->config = $config; $this->userManager = $userManager; @@ -80,6 +84,7 @@ class PersonalInfo implements ISettings { $this->appManager = $appManager; $this->l10nFactory = $l10nFactory; $this->l = $l; + $this->encryptionManager = $encryptionManager; } /** @@ -135,9 +140,15 @@ class PersonalInfo implements ISettings { 'twitterScope' => $userData[AccountManager::PROPERTY_TWITTER]['scope'], 'twitterVerification' => $userData[AccountManager::PROPERTY_TWITTER]['verified'], 'groups' => $this->getGroups($user), + 'dataLocation' => 'Germany', + 'provider' => 'Hetzner Online GmbH', + 'providerLink' => 'https://www.hetzner.de/', + 'providerPrivacyLink' => 'https://www.hetzner.de/rechtliches/datenschutz', + 'encryptionEnabled' => true || $this->encryptionManager->isEnabled(), + 'adminName' => 'Michael Weimann', + 'adminMail' => 'mail@michael-weimann.eu' ] + $messageParameters + $languageParameters + $localeParameters; - return new TemplateResponse('settings', 'settings/personal/personal.info', $parameters, ''); } -- cgit v1.2.3 From 6993faaf67b6e822f7b03bd972fe42c9b4dd1d5d Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Tue, 18 Dec 2018 22:07:41 +0100 Subject: Add the "server info" settings Signed-off-by: Michael Weimann --- lib/private/Settings/Admin/ServerInfo.php | 43 ++++++++++ lib/private/Settings/Manager.php | 2 + lib/private/Settings/Personal/PersonalInfo.php | 2 +- settings/css/_server-info.scss | 95 +++++++++++++++++++++++ settings/css/_where-is-your-data.scss | 6 ++ settings/css/settings.scss | 10 +-- settings/templates/settings/admin/server-info.php | 90 +++++++++++++++++++++ 7 files changed, 240 insertions(+), 8 deletions(-) create mode 100644 lib/private/Settings/Admin/ServerInfo.php create mode 100644 settings/css/_server-info.scss create mode 100644 settings/css/_where-is-your-data.scss create mode 100644 settings/templates/settings/admin/server-info.php (limited to 'lib') diff --git a/lib/private/Settings/Admin/ServerInfo.php b/lib/private/Settings/Admin/ServerInfo.php new file mode 100644 index 00000000000..e4c7a83ed87 --- /dev/null +++ b/lib/private/Settings/Admin/ServerInfo.php @@ -0,0 +1,43 @@ +getPriority()] = [$form]; $form = $this->container->query(Admin\Mail::class); $forms[$form->getPriority()] = [$form]; + $form = $this->container->query(Admin\ServerInfo::class); + $forms[$form->getPriority()] = [$form]; } if ($section === 'security') { /** @var ISettings $form */ diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index bd9cd263260..42a89a5f309 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -141,7 +141,7 @@ class PersonalInfo implements ISettings { 'twitterVerification' => $userData[AccountManager::PROPERTY_TWITTER]['verified'], 'groups' => $this->getGroups($user), 'dataLocation' => 'Germany', - 'provider' => 'Hetzner Online GmbH', + 'provider' => 'Mustermann GmbH', 'providerLink' => 'https://www.hetzner.de/', 'providerPrivacyLink' => 'https://www.hetzner.de/rechtliches/datenschutz', 'encryptionEnabled' => true || $this->encryptionManager->isEnabled(), diff --git a/settings/css/_server-info.scss b/settings/css/_server-info.scss new file mode 100644 index 00000000000..c9f89bd566a --- /dev/null +++ b/settings/css/_server-info.scss @@ -0,0 +1,95 @@ +.server-info-settings { + .label { + display: block; + } + + .form-input { + margin-bottom: 10px; + width: 100%; + } + + .margin-bottom { + margin-bottom: 15px; + } + + .form-actions { + text-align: right; + + .button { + align-items: center; + display: inline-flex; + margin: 0; + transition: background-color 500ms linear; + + .default-label, + .working-label, + .success-label, + .error-label { + align-items: center; + gap: 4px; + } + + .working-label, + .success-label, + .error-label { + display: none; + } + } + + .button-working, + .button-success, + .button-error { + background-color: $color-background-dark; + color: $color-text-lighter; + opacity: 1; + + .default-label { + display: none; + } + } + + .button-working { + .working-label { + display: inline-flex; + } + } + + .button-success { + background-color: $color-success; + border-color: darken($color-success, 10%); + color: $color-primary-text-dark; + + .success-label { + display: inline-flex; + } + } + + .button-error { + background-color: $color-error; + border-color: darken($color-error, 10%); + color: $color-primary-text-dark; + + .error-label { + display: inline-flex; + } + } + } + + @media (min-width: 1000px) { + .label { + display: inline-block; + text-align: right; + width: 175px; + } + + .form-input { + margin-left: 5px; + width: 225px; + } + + .form-actions { + margin-left: 180px; + width: 225px; + } + } +} diff --git a/settings/css/_where-is-your-data.scss b/settings/css/_where-is-your-data.scss new file mode 100644 index 00000000000..7414f6d36d6 --- /dev/null +++ b/settings/css/_where-is-your-data.scss @@ -0,0 +1,6 @@ +.where-is-your-data { + // @todo replace by common link style as soon as available + a:not(.icon-info) { + border-bottom: 1px dotted; + } +} diff --git a/settings/css/settings.scss b/settings/css/settings.scss index 65e66370887..589985aaddc 100644 --- a/settings/css/settings.scss +++ b/settings/css/settings.scss @@ -2,6 +2,9 @@ This file is licensed under the Affero General Public License version 3 or later. See the COPYING-README file. */ +@import "server-info"; +@import "where-is-your-data"; + input { &#openid, &#webdav { width: 20em; @@ -1624,10 +1627,3 @@ doesnotexist:-o-prefocus, .strengthify-wrapper { } } } - -.where-is-your-data { - // @todo replace by common Nextcloud link style as soon as available - a { - border-bottom: 1px dotted; - } -} diff --git a/settings/templates/settings/admin/server-info.php b/settings/templates/settings/admin/server-info.php new file mode 100644 index 00000000000..9c2b3fe4318 --- /dev/null +++ b/settings/templates/settings/admin/server-info.php @@ -0,0 +1,90 @@ + + +
+

t('Server info')); ?>

+

+ t('Enter common info about your Nextcloud instance here. These info are visible to all users.')) ?> +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
-- cgit v1.2.3 From 813ff430f159fdc8aade236048f4a8ff18ac3b2e Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Wed, 19 Dec 2018 23:13:35 +0100 Subject: Implement storing and loading the server info Signed-off-by: Michael Weimann --- lib/private/Settings/Admin/ServerInfo.php | 86 ++++++++++++++++- lib/private/Settings/Personal/PersonalInfo.php | 14 ++- .../Controller/ServerInfoSettingsController.php | 67 ++++++++++++++ settings/css/_server-info.scss | 4 + settings/css/_where-is-your-data.scss | 4 + settings/js/admin.js | 103 +++++++++++++++++++++ settings/routes.php | 1 + settings/templates/settings/admin/server-info.php | 70 +++++++++----- .../ServerInfoSettingsControllerTest.php | 94 +++++++++++++++++++ 9 files changed, 411 insertions(+), 32 deletions(-) create mode 100644 settings/Controller/ServerInfoSettingsController.php create mode 100644 tests/Settings/Controller/ServerInfoSettingsControllerTest.php (limited to 'lib') diff --git a/lib/private/Settings/Admin/ServerInfo.php b/lib/private/Settings/Admin/ServerInfo.php index e4c7a83ed87..8ac4f890504 100644 --- a/lib/private/Settings/Admin/ServerInfo.php +++ b/lib/private/Settings/Admin/ServerInfo.php @@ -1,25 +1,103 @@ + * + * @author Michael Weimann + * + * @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 . + */ namespace OC\Settings\Admin; use OCP\AppFramework\Http\TemplateResponse; +use OCP\IConfig; +use OCP\IGroupManager; +use OCP\IUser; use OCP\Settings\ISettings; /** - * Class ServerInfo - * - * @package OC\Settings\Admin + * This class describes the server info settings. */ class ServerInfo implements ISettings { + const SETTING_LOCATION = 'serverinfo.location'; + const SETTING_PROVIDER = 'serverinfo.provider'; + const SETTING_PROVIDER_WEBSITE = 'serverinfo.provider.website'; + const SETTING_PROVIDER_PRIVACY_LINK = 'serverinfo.provider.privacylink'; + const SETTING_PROVIDER_ADMIN_CONTACT = 'serverinfo.admincontact'; + + /** + * @var IConfig + */ + private $config; + + /** + * @var IGroupManager + */ + private $groupManager; + + /** + * ServerInfo constructor. + * + * @param IConfig $config + * @param IGroupManager $groupManager + */ + public function __construct(IConfig $config, IGroupManager $groupManager) { + $this->config = $config; + $this->groupManager = $groupManager; + } + /** * @return TemplateResponse */ public function getForm() { - $parameters = []; + $parameters = [ + 'location' => $this->config->getSystemValue(self::SETTING_LOCATION), + 'provider' => $this->config->getSystemValue(self::SETTING_PROVIDER), + 'providerWebsite' => $this->config->getSystemValue(self::SETTING_PROVIDER_WEBSITE), + 'providerPrivacyLink' => $this->config->getSystemValue(self::SETTING_PROVIDER_PRIVACY_LINK), + 'adminUsers' => $this->getAdminListValues(), + 'adminContact' => $this->config->getSystemValue(self::SETTING_PROVIDER_ADMIN_CONTACT), + ]; return new TemplateResponse('settings', 'settings/admin/server-info', $parameters, ''); } + /** + * Returns the admin list values. + * + * @return array[] An array or arrays with the keys 'id' and 'displayName' + */ + private function getAdminListValues() { + $adminGroup = $this->groupManager->get('admin'); + $users = $adminGroup->getUsers(); + + $users = array_map(function(IUser $user) { + return [ + 'id' => $user->getUID(), + 'displayName' => $user->getDisplayName() + ]; + }, $users); + + usort($your_data, function(array $a, array $b) { + return strcmp($a['displayName'], $b['displayName']); + }); + + return $users; + } + /** * Returns the server info section id. * diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index 42a89a5f309..444600f967a 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -26,6 +26,7 @@ namespace OC\Settings\Personal; use OC\Accounts\AccountManager; +use OC\Settings\Admin\ServerInfo; use OCA\FederatedFileSharing\AppInfo\Application; use OCP\App\IAppManager; use OCP\AppFramework\Http\TemplateResponse; @@ -115,6 +116,9 @@ class PersonalInfo implements ISettings { $localeParameters = $this->getLocales($user); $messageParameters = $this->getMessageParameters($userData); + $adminContactConfigId = $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_ADMIN_CONTACT); + $adminContact = $this->userManager->get($adminContactConfigId); + $parameters = [ 'total_space' => $totalSpace, 'usage' => \OC_Helper::humanFileSize($storageInfo['used']), @@ -141,12 +145,12 @@ class PersonalInfo implements ISettings { 'twitterVerification' => $userData[AccountManager::PROPERTY_TWITTER]['verified'], 'groups' => $this->getGroups($user), 'dataLocation' => 'Germany', - 'provider' => 'Mustermann GmbH', - 'providerLink' => 'https://www.hetzner.de/', - 'providerPrivacyLink' => 'https://www.hetzner.de/rechtliches/datenschutz', + 'provider' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER), + 'providerLink' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_WEBSITE), + 'providerPrivacyLink' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_PRIVACY_LINK), 'encryptionEnabled' => true || $this->encryptionManager->isEnabled(), - 'adminName' => 'Michael Weimann', - 'adminMail' => 'mail@michael-weimann.eu' + 'adminName' => $adminContact !== null ? $adminContact->getDisplayName() : '', + 'adminMail' => $adminContact !== null ? $adminContact->getEMailAddress() : '', ] + $messageParameters + $languageParameters + $localeParameters; return new TemplateResponse('settings', 'settings/personal/personal.info', $parameters, ''); diff --git a/settings/Controller/ServerInfoSettingsController.php b/settings/Controller/ServerInfoSettingsController.php new file mode 100644 index 00000000000..d1f411592d4 --- /dev/null +++ b/settings/Controller/ServerInfoSettingsController.php @@ -0,0 +1,67 @@ + + * + * @author Michael Weimann + * + * @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 . + */ + +namespace OC\Settings\Controller; + +use OC\Settings\Admin\ServerInfo; +use OCP\AppFramework\Controller; +use OCP\IConfig; +use OCP\IRequest; + +/** + * This controller handles server info settings requests. + */ +class ServerInfoSettingsController extends Controller { + + /** + * @var IConfig + */ + private $config; + + /** + * ServerInfoSettingsController constructor. + * + * @param IConfig $config + */ + public function __construct($appName, IRequest $request, IConfig $config) { + parent::__construct($appName, $request); + $this->config = $config; + } + + public function storeServerInfo( + string $location, + string $provider, + string $providerWebsite, + string $providerPrivacyLink, + string $adminContact + ) { + $configs = [ + ServerInfo::SETTING_LOCATION => $location, + ServerInfo::SETTING_PROVIDER => $provider, + ServerInfo::SETTING_PROVIDER_WEBSITE => $providerWebsite, + ServerInfo::SETTING_PROVIDER_PRIVACY_LINK => $providerPrivacyLink, + ServerInfo::SETTING_PROVIDER_ADMIN_CONTACT => $adminContact + ]; + $this->config->setSystemValues($configs); + } + +} diff --git a/settings/css/_server-info.scss b/settings/css/_server-info.scss index c9f89bd566a..1073cab2954 100644 --- a/settings/css/_server-info.scss +++ b/settings/css/_server-info.scss @@ -1,3 +1,7 @@ +/* Copyright (c) 2018 Michael Weimann 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' => 'ServerInfoSettings#storeServerInfo', 'url' => '/settings/serverinfo', 'verb' => 'POST'], ] ]); diff --git a/settings/templates/settings/admin/server-info.php b/settings/templates/settings/admin/server-info.php index 9c2b3fe4318..3690da6d3b4 100644 --- a/settings/templates/settings/admin/server-info.php +++ b/settings/templates/settings/admin/server-info.php @@ -1,11 +1,39 @@ - + + * + * @author Michael Weimann + * + * @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 . + */ + +/** + * This file contains the server info settings template. + */ + +/** @var array $_ */ + +?>

t('Server info')); ?>

t('Enter common info about your Nextcloud instance here. These info are visible to all users.')) ?>

-
+
@@ -24,6 +53,7 @@ name="provider" type="text" maxlength="100" + value="" placeholder="t('company or person')); ?>">
@@ -34,6 +64,7 @@ name="providerWebsite" type="url" maxlength="200" + value="" placeholder="t('link to website')); ?>">
@@ -44,24 +75,30 @@ name="providerPrivacyLink" type="url" maxlength="200" + value="" placeholder="t('link to privacy policy')); ?>">
- - + + + +
- -
diff --git a/tests/Settings/Controller/ServerInfoSettingsControllerTest.php b/tests/Settings/Controller/ServerInfoSettingsControllerTest.php new file mode 100644 index 00000000000..43dcb90855a --- /dev/null +++ b/tests/Settings/Controller/ServerInfoSettingsControllerTest.php @@ -0,0 +1,94 @@ + + * + * @author Michael Weimann + * + * @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 . + */ + +namespace Settings\Controller; + +use OC\Settings\Admin\ServerInfo; +use OC\Settings\Controller\ServerInfoSettingsController; +use OCP\IConfig; +use OCP\IRequest; +use PHPUnit\Framework\MockObject\MockObject; +use Test\TestCase; + +/** + * This class provides tests for the server info settings controller. + */ +class ServerInfoSettingsControllerTest extends TestCase { + + /** + * @var IConfig|MockObject + */ + private $config; + + /** + * @var ServerInfoSettingsController + */ + private $controller; + + /** + * Does the test setup. + */ + protected function setUp() { + parent::setUp(); + + $request = $this->getMockBuilder(IRequest::class)->getMock(); + /* @var IRequest|MockObject $request */ + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); + $this->controller = new ServerInfoSettingsController( + 'settings', + $request, + $this->config + ); + } + + /** + * Tests that the handler passes the params to the config. + */ + public function testStoreServerInfo() { + + $location = 'test-location'; + $provider = 'test-provider'; + $providerWebsite = 'https://example.com/'; + $providerPrivacyLink = 'https://example.com/privacy'; + $adminContact = 'testuser'; + + $this->config->expects($this->once()) + ->method('setSystemValues') + ->with([ + ServerInfo::SETTING_LOCATION => $location, + ServerInfo::SETTING_PROVIDER => $provider, + ServerInfo::SETTING_PROVIDER_WEBSITE => $providerWebsite, + ServerInfo::SETTING_PROVIDER_PRIVACY_LINK => $providerPrivacyLink, + ServerInfo::SETTING_PROVIDER_ADMIN_CONTACT => $adminContact, + ]); + + $this->controller->storeServerInfo( + $location, + $provider, + $providerWebsite, + $providerPrivacyLink, + $adminContact + ); + + } + +} -- cgit v1.2.3 From 2cd3fd3dc2b31e460ac8ff887a360e14e542ea1c Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Mon, 14 Jan 2019 00:05:11 +0100 Subject: Move server info to theming section Signed-off-by: Michael Weimann --- apps/theming/lib/Settings/Section.php | 83 -------------- apps/theming/tests/ServicesTest.php | 4 - apps/theming/tests/Settings/SectionTest.php | 77 ------------- lib/private/Settings/Admin/ServerInfo.php | 121 --------------------- lib/private/Settings/Manager.php | 7 +- lib/private/Settings/Personal/PersonalInfo.php | 4 +- lib/private/Settings/Theming/ServerInfo.php | 121 +++++++++++++++++++++ .../Controller/ServerInfoSettingsController.php | 2 +- settings/img/theming-dark.svg | 1 + settings/templates/settings/admin/server-info.php | 2 +- .../ServerInfoSettingsControllerTest.php | 2 +- tests/lib/Settings/ManagerTest.php | 12 +- 12 files changed, 141 insertions(+), 295 deletions(-) delete mode 100644 apps/theming/lib/Settings/Section.php delete mode 100644 apps/theming/tests/Settings/SectionTest.php delete mode 100644 lib/private/Settings/Admin/ServerInfo.php create mode 100644 lib/private/Settings/Theming/ServerInfo.php create mode 100644 settings/img/theming-dark.svg (limited to 'lib') diff --git a/apps/theming/lib/Settings/Section.php b/apps/theming/lib/Settings/Section.php deleted file mode 100644 index 9ec990ebe48..00000000000 --- a/apps/theming/lib/Settings/Section.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * @author Arthur Schiwon - * @author Joas Schilling - * - * @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 . - * - */ - -namespace OCA\Theming\Settings; - -use OCP\IL10N; -use OCP\IURLGenerator; -use OCP\Settings\IIconSection; - -class Section implements IIconSection { - /** @var IL10N */ - private $l; - /** @var IURLGenerator */ - private $url; - - /** - * @param IURLGenerator $url - * @param IL10N $l - */ - public function __construct(IURLGenerator $url, IL10N $l) { - $this->url = $url; - $this->l = $l; - } - - /** - * returns the ID of the section. It is supposed to be a lower case string, - * e.g. 'ldap' - * - * @returns string - */ - public function getID() { - return 'theming'; - } - - /** - * returns the translated name as it should be displayed, e.g. 'LDAP / AD - * integration'. Use the L10N service to translate it. - * - * @return string - */ - public function getName() { - return $this->l->t('Theming'); - } - - /** - * @return int whether the form should be rather on the top or bottom of - * the settings navigation. The sections are arranged in ascending order of - * the priority values. It is required to return a value between 0 and 99. - * - * E.g.: 70 - */ - public function getPriority() { - return 30; - } - - /** - * {@inheritdoc} - */ - public function getIcon() { - return $this->url->imagePath('theming', 'app-dark.svg'); - } -} diff --git a/apps/theming/tests/ServicesTest.php b/apps/theming/tests/ServicesTest.php index a46e28235f5..baf7c6edc88 100644 --- a/apps/theming/tests/ServicesTest.php +++ b/apps/theming/tests/ServicesTest.php @@ -26,13 +26,11 @@ namespace OCA\Theming\Tests; use OCA\Theming\Capabilities; use OCA\Theming\Controller\ThemingController; use OCA\Theming\Settings\Admin; -use OCA\Theming\Settings\Section; use OCA\Theming\ThemingDefaults; use OCA\Theming\Util; use OCP\AppFramework\App; use OCP\Capabilities\ICapability; use OCP\IL10N; -use OCP\Settings\ISection; use OCP\Settings\ISettings; use Test\TestCase; @@ -72,8 +70,6 @@ class ServicesTest extends TestCase { // Settings [Admin::class], [Admin::class, ISettings::class], - [Section::class], - [Section::class, ISection::class], ]; } diff --git a/apps/theming/tests/Settings/SectionTest.php b/apps/theming/tests/Settings/SectionTest.php deleted file mode 100644 index 09abf9e34f5..00000000000 --- a/apps/theming/tests/Settings/SectionTest.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * @author Joas Schilling - * @author Lukas Reschke - * - * @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 . - * - */ - -namespace OCA\Theming\Tests\Settings; - -use OCA\Theming\Settings\Section; -use OCP\IL10N; -use OCP\IURLGenerator; -use Test\TestCase; - -class SectionTest extends TestCase { - /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */ - private $url; - /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */ - private $l; - /** @var Section */ - private $section; - - public function setUp() { - parent::setUp(); - $this->url = $this->createMock(IURLGenerator::class); - $this->l = $this->createMock(IL10N::class); - - $this->section = new Section( - $this->url, - $this->l - ); - } - - public function testGetID() { - $this->assertSame('theming', $this->section->getID()); - } - - public function testGetName() { - $this->l - ->expects($this->once()) - ->method('t') - ->with('Theming') - ->willReturn('Theming'); - - $this->assertSame('Theming', $this->section->getName()); - } - - public function testGetPriority() { - $this->assertSame(30, $this->section->getPriority()); - } - - public function testGetIcon() { - $this->url->expects($this->once()) - ->method('imagePath') - ->with('theming', 'app-dark.svg') - ->willReturn('icon'); - - $this->assertSame('icon', $this->section->getIcon()); - } -} diff --git a/lib/private/Settings/Admin/ServerInfo.php b/lib/private/Settings/Admin/ServerInfo.php deleted file mode 100644 index 8ac4f890504..00000000000 --- a/lib/private/Settings/Admin/ServerInfo.php +++ /dev/null @@ -1,121 +0,0 @@ - - * - * @author Michael Weimann - * - * @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 . - */ - -namespace OC\Settings\Admin; - -use OCP\AppFramework\Http\TemplateResponse; -use OCP\IConfig; -use OCP\IGroupManager; -use OCP\IUser; -use OCP\Settings\ISettings; - -/** - * This class describes the server info settings. - */ -class ServerInfo implements ISettings { - - const SETTING_LOCATION = 'serverinfo.location'; - const SETTING_PROVIDER = 'serverinfo.provider'; - const SETTING_PROVIDER_WEBSITE = 'serverinfo.provider.website'; - const SETTING_PROVIDER_PRIVACY_LINK = 'serverinfo.provider.privacylink'; - const SETTING_PROVIDER_ADMIN_CONTACT = 'serverinfo.admincontact'; - - /** - * @var IConfig - */ - private $config; - - /** - * @var IGroupManager - */ - private $groupManager; - - /** - * ServerInfo constructor. - * - * @param IConfig $config - * @param IGroupManager $groupManager - */ - public function __construct(IConfig $config, IGroupManager $groupManager) { - $this->config = $config; - $this->groupManager = $groupManager; - } - - /** - * @return TemplateResponse - */ - public function getForm() { - $parameters = [ - 'location' => $this->config->getSystemValue(self::SETTING_LOCATION), - 'provider' => $this->config->getSystemValue(self::SETTING_PROVIDER), - 'providerWebsite' => $this->config->getSystemValue(self::SETTING_PROVIDER_WEBSITE), - 'providerPrivacyLink' => $this->config->getSystemValue(self::SETTING_PROVIDER_PRIVACY_LINK), - 'adminUsers' => $this->getAdminListValues(), - 'adminContact' => $this->config->getSystemValue(self::SETTING_PROVIDER_ADMIN_CONTACT), - ]; - return new TemplateResponse('settings', 'settings/admin/server-info', $parameters, ''); - } - - /** - * Returns the admin list values. - * - * @return array[] An array or arrays with the keys 'id' and 'displayName' - */ - private function getAdminListValues() { - $adminGroup = $this->groupManager->get('admin'); - $users = $adminGroup->getUsers(); - - $users = array_map(function(IUser $user) { - return [ - 'id' => $user->getUID(), - 'displayName' => $user->getDisplayName() - ]; - }, $users); - - usort($your_data, function(array $a, array $b) { - return strcmp($a['displayName'], $b['displayName']); - }); - - return $users; - } - - /** - * Returns the server info section id. - * - * @return string - */ - public function getSection() { - return 'server-info'; - } - - /** - * Returns the server info settings priority. - * - * @return int whether the form should be rather on the top or bottom of - * the admin section. The forms are arranged in ascending order of the - * priority values. It is required to return a value between 0 and 100. - */ - public function getPriority() { - return 20; - } - -} diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index e20afd44038..3f72557d8ec 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -192,6 +192,7 @@ class Manager implements IManager { 1 => [new Section('server', $this->l->t('Basic settings'), 0, $this->url->imagePath('core', 'actions/settings-dark.svg'))], 5 => [new Section('sharing', $this->l->t('Sharing'), 0, $this->url->imagePath('core', 'actions/share.svg'))], 10 => [new Section('security', $this->l->t('Security'), 0, $this->url->imagePath('core', 'actions/password.svg'))], + 30 => [new Section('theming', $this->l->t('Theming'), 0, $this->url->imagePath('settings', 'theming-dark.svg'))], 50 => [new Section('groupware', $this->l->t('Groupware'), 0, $this->url->imagePath('core', 'places/contacts.svg'))], 98 => [new Section('additional', $this->l->t('Additional settings'), 0, $this->url->imagePath('core', 'actions/settings-dark.svg'))], ]; @@ -231,14 +232,16 @@ class Manager implements IManager { $forms[$form->getPriority()] = [$form]; $form = $this->container->query(Admin\Mail::class); $forms[$form->getPriority()] = [$form]; - $form = $this->container->query(Admin\ServerInfo::class); - $forms[$form->getPriority()] = [$form]; } if ($section === 'security') { /** @var ISettings $form */ $form = $this->container->query(Admin\Security::class); $forms[$form->getPriority()] = [$form]; } + if ($section === 'theming') { + $form = $this->container->query(Theming\ServerInfo::class); + $forms[$form->getPriority()] = [$form]; + } if ($section === 'sharing') { /** @var ISettings $form */ $form = $this->container->query(Admin\Sharing::class); diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index 444600f967a..f3163abff92 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -26,7 +26,7 @@ namespace OC\Settings\Personal; use OC\Accounts\AccountManager; -use OC\Settings\Admin\ServerInfo; +use OC\Settings\Theming\ServerInfo; use OCA\FederatedFileSharing\AppInfo\Application; use OCP\App\IAppManager; use OCP\AppFramework\Http\TemplateResponse; @@ -217,7 +217,7 @@ class PersonalInfo implements ISettings { $userLang = $languages['commonlanguages'][$userLangIndex]; // search in the other languages if ($userLangIndex === false) { - $userLangIndex = array_search($userConfLang, array_column($languages['languages'], 'code')); + $userLangIndex = array_search($userConfLang, array_column($languages['languages'], 'code')); $userLang = $languages['languages'][$userLangIndex]; } // if user language is not available but set somehow: show the actual code as name diff --git a/lib/private/Settings/Theming/ServerInfo.php b/lib/private/Settings/Theming/ServerInfo.php new file mode 100644 index 00000000000..a5cfdd41f52 --- /dev/null +++ b/lib/private/Settings/Theming/ServerInfo.php @@ -0,0 +1,121 @@ + + * + * @author Michael Weimann + * + * @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 . + */ + +namespace OC\Settings\Theming; + +use OCP\AppFramework\Http\TemplateResponse; +use OCP\IConfig; +use OCP\IGroupManager; +use OCP\IUser; +use OCP\Settings\ISettings; + +/** + * This class describes the server info settings. + */ +class ServerInfo implements ISettings { + + const SETTING_LOCATION = 'serverinfo.location'; + const SETTING_PROVIDER = 'serverinfo.provider'; + const SETTING_PROVIDER_WEBSITE = 'serverinfo.provider.website'; + const SETTING_PROVIDER_PRIVACY_LINK = 'serverinfo.provider.privacylink'; + const SETTING_PROVIDER_ADMIN_CONTACT = 'serverinfo.admincontact'; + + /** + * @var IConfig + */ + private $config; + + /** + * @var IGroupManager + */ + private $groupManager; + + /** + * ServerInfo constructor. + * + * @param IConfig $config + * @param IGroupManager $groupManager + */ + public function __construct(IConfig $config, IGroupManager $groupManager) { + $this->config = $config; + $this->groupManager = $groupManager; + } + + /** + * @return TemplateResponse + */ + public function getForm() { + $parameters = [ + 'location' => $this->config->getSystemValue(self::SETTING_LOCATION), + 'provider' => $this->config->getSystemValue(self::SETTING_PROVIDER), + 'providerWebsite' => $this->config->getSystemValue(self::SETTING_PROVIDER_WEBSITE), + 'providerPrivacyLink' => $this->config->getSystemValue(self::SETTING_PROVIDER_PRIVACY_LINK), + 'adminUsers' => $this->getAdminListValues(), + 'adminContact' => $this->config->getSystemValue(self::SETTING_PROVIDER_ADMIN_CONTACT), + ]; + return new TemplateResponse('settings', 'settings/admin/server-info', $parameters, ''); + } + + /** + * Returns the admin list values. + * + * @return array[] An array or arrays with the keys 'id' and 'displayName' + */ + private function getAdminListValues() { + $adminGroup = $this->groupManager->get('admin'); + $users = $adminGroup->getUsers(); + + $users = array_map(function(IUser $user) { + return [ + 'id' => $user->getUID(), + 'displayName' => $user->getDisplayName() + ]; + }, $users); + + usort($your_data, function(array $a, array $b) { + return strcmp($a['displayName'], $b['displayName']); + }); + + return $users; + } + + /** + * Returns the server info section id. + * + * @return string + */ + public function getSection() { + return 'theming'; + } + + /** + * Returns the server info settings priority. + * + * @return int whether the form should be rather on the top or bottom of + * the admin section. The forms are arranged in ascending order of the + * priority values. It is required to return a value between 0 and 100. + */ + public function getPriority() { + return 10; + } + +} diff --git a/settings/Controller/ServerInfoSettingsController.php b/settings/Controller/ServerInfoSettingsController.php index d1f411592d4..29d36b2e196 100644 --- a/settings/Controller/ServerInfoSettingsController.php +++ b/settings/Controller/ServerInfoSettingsController.php @@ -22,7 +22,7 @@ namespace OC\Settings\Controller; -use OC\Settings\Admin\ServerInfo; +use OC\Settings\Theming\ServerInfo; use OCP\AppFramework\Controller; use OCP\IConfig; use OCP\IRequest; diff --git a/settings/img/theming-dark.svg b/settings/img/theming-dark.svg new file mode 100644 index 00000000000..adf97966c41 --- /dev/null +++ b/settings/img/theming-dark.svg @@ -0,0 +1 @@ + diff --git a/settings/templates/settings/admin/server-info.php b/settings/templates/settings/admin/server-info.php index 3690da6d3b4..ac6cf48ee80 100644 --- a/settings/templates/settings/admin/server-info.php +++ b/settings/templates/settings/admin/server-info.php @@ -57,7 +57,7 @@ placeholder="t('company or person')); ?>">
- + manager->registerSection('admin', \OCA\WorkflowEngine\Settings\Section::class); - $this->url->expects($this->exactly(6)) + $this->url->expects($this->exactly(7)) ->method('imagePath') ->willReturnMap([ ['settings', 'admin.svg', '0'], ['core', 'actions/settings-dark.svg', '1'], ['core', 'actions/share.svg', '2'], ['core', 'actions/password.svg', '3'], + ['settings', 'theming-dark.svg', '6'], ['core', 'places/contacts.svg', '5'], ['settings', 'help.svg', '4'], ]); @@ -88,6 +89,7 @@ class ManagerTest extends TestCase { 1 => [new Section('server', 'Basic settings', 0, '1')], 5 => [new Section('sharing', 'Sharing', 0, '2')], 10 => [new Section('security', 'Security', 0, '3')], + 30 => [new Section('theming', 'Theming', 0, '6')], 50 => [new Section('groupware', 'Groupware', 0, '5')], 55 => [\OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class)], 98 => [new Section('additional', 'Additional settings', 0, '1')], @@ -124,13 +126,14 @@ class ManagerTest extends TestCase { ->method('t') ->will($this->returnArgument(0)); - $this->url->expects($this->exactly(6)) + $this->url->expects($this->exactly(7)) ->method('imagePath') ->willReturnMap([ ['settings', 'admin.svg', '0'], ['core', 'actions/settings-dark.svg', '1'], ['core', 'actions/share.svg', '2'], ['core', 'actions/password.svg', '3'], + ['settings', 'theming-dark.svg', '6'], ['core', 'places/contacts.svg', '5'], ['settings', 'help.svg', '4'], ]); @@ -140,6 +143,7 @@ class ManagerTest extends TestCase { 1 => [new Section('server', 'Basic settings', 0, '1')], 5 => [new Section('sharing', 'Sharing', 0, '2')], 10 => [new Section('security', 'Security', 0, '3')], + 30 => [new Section('theming', 'Theming', 0, '6')], 50 => [new Section('groupware', 'Groupware', 0, '5')], 98 => [new Section('additional', 'Additional settings', 0, '1')], ], $this->manager->getAdminSections()); @@ -209,7 +213,7 @@ class ManagerTest extends TestCase { $this->manager->registerSection('personal', \OCA\WorkflowEngine\Settings\Section::class); $this->manager->registerSection('admin', \OCA\WorkflowEngine\Settings\Section::class); - $this->url->expects($this->exactly(9)) + $this->url->expects($this->exactly(10)) ->method('imagePath') ->willReturnMap([ ['core', 'actions/info.svg', '1'], @@ -219,6 +223,7 @@ class ManagerTest extends TestCase { ['core', 'actions/settings-dark.svg', '1'], ['core', 'actions/share.svg', '2'], ['core', 'actions/password.svg', '3'], + ['settings', 'theming-dark.svg', '6'], ['core', 'places/contacts.svg', '5'], ['settings', 'help.svg', '4'], ]); @@ -235,6 +240,7 @@ class ManagerTest extends TestCase { 1 => [new Section('server', 'Basic settings', 0, '1')], 5 => [new Section('sharing', 'Sharing', 0, '2')], 10 => [new Section('security', 'Security', 0, '3')], + 30 => [new Section('theming', 'Theming', 0, '6')], 50 => [new Section('groupware', 'Groupware', 0, '5')], 55 => [\OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class)], 98 => [new Section('additional', 'Additional settings', 0, '1')], -- cgit v1.2.3 From 7562eddb690ca493529b33c9c6fb0cd3c12beb01 Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Mon, 14 Jan 2019 00:12:23 +0100 Subject: Fix location source Signed-off-by: Michael Weimann --- lib/private/Settings/Personal/PersonalInfo.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index f3163abff92..3cac3c7c6c2 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -144,7 +144,7 @@ class PersonalInfo implements ISettings { 'twitterScope' => $userData[AccountManager::PROPERTY_TWITTER]['scope'], 'twitterVerification' => $userData[AccountManager::PROPERTY_TWITTER]['verified'], 'groups' => $this->getGroups($user), - 'dataLocation' => 'Germany', + 'dataLocation' => $this->config->getSystemValue(ServerInfo::SETTING_LOCATION), 'provider' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER), 'providerLink' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_WEBSITE), 'providerPrivacyLink' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_PRIVACY_LINK), -- cgit v1.2.3 From b8d25a1247c7b602976cf3bca2dfb7a2aac5bb81 Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Sun, 20 Jan 2019 11:23:47 +0100 Subject: Remove debug setting Signed-off-by: Michael Weimann --- lib/private/Settings/Personal/PersonalInfo.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index 3cac3c7c6c2..306e5271d8d 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -148,7 +148,7 @@ class PersonalInfo implements ISettings { 'provider' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER), 'providerLink' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_WEBSITE), 'providerPrivacyLink' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_PRIVACY_LINK), - 'encryptionEnabled' => true || $this->encryptionManager->isEnabled(), + 'encryptionEnabled' => $this->encryptionManager->isEnabled(), 'adminName' => $adminContact !== null ? $adminContact->getDisplayName() : '', 'adminMail' => $adminContact !== null ? $adminContact->getEMailAddress() : '', ] + $messageParameters + $languageParameters + $localeParameters; -- cgit v1.2.3 From 6c5282138979a7d56feeb5d38462761f1102f1d1 Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Tue, 29 Jan 2019 19:42:12 +0100 Subject: Make the where is your data section optional Signed-off-by: Michael Weimann --- lib/private/Settings/Personal/PersonalInfo.php | 31 +++++++++++++++++----- .../templates/settings/personal/personal.info.php | 6 ++++- 2 files changed, 30 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index 306e5271d8d..c018ea80ded 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -116,9 +116,6 @@ class PersonalInfo implements ISettings { $localeParameters = $this->getLocales($user); $messageParameters = $this->getMessageParameters($userData); - $adminContactConfigId = $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_ADMIN_CONTACT); - $adminContact = $this->userManager->get($adminContactConfigId); - $parameters = [ 'total_space' => $totalSpace, 'usage' => \OC_Helper::humanFileSize($storageInfo['used']), @@ -144,16 +141,38 @@ class PersonalInfo implements ISettings { 'twitterScope' => $userData[AccountManager::PROPERTY_TWITTER]['scope'], 'twitterVerification' => $userData[AccountManager::PROPERTY_TWITTER]['verified'], 'groups' => $this->getGroups($user), + ] + $this->getWhereIsYourDataParams() + $messageParameters + $languageParameters + $localeParameters; + + return new TemplateResponse('settings', 'settings/personal/personal.info', $parameters, ''); + } + + /** + * Returns the "where is your data" template params. + * + * @return array + */ + private function getWhereIsYourDataParams() { + + $adminContactConfigId = $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_ADMIN_CONTACT); + $adminContact = $this->userManager->get($adminContactConfigId); + + $params = [ 'dataLocation' => $this->config->getSystemValue(ServerInfo::SETTING_LOCATION), 'provider' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER), 'providerLink' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_WEBSITE), 'providerPrivacyLink' => $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_PRIVACY_LINK), 'encryptionEnabled' => $this->encryptionManager->isEnabled(), 'adminName' => $adminContact !== null ? $adminContact->getDisplayName() : '', - 'adminMail' => $adminContact !== null ? $adminContact->getEMailAddress() : '', - ] + $messageParameters + $languageParameters + $localeParameters; + 'adminMail' => $adminContact !== null ? $adminContact->getEMailAddress() : '' + ]; + + $params['show_where_is_your_data_section'] = empty($params['dataLocation']) === false + || empty($params['provider']) === false + || $params['encryptionEnabled'] === true + || empty($params['adminName']) === false; + + return $params; - return new TemplateResponse('settings', 'settings/personal/personal.info', $parameters, ''); } /** diff --git a/settings/templates/settings/personal/personal.info.php b/settings/templates/settings/personal/personal.info.php index 5743777b4b9..a6e3eaf345b 100644 --- a/settings/templates/settings/personal/personal.info.php +++ b/settings/templates/settings/personal/personal.info.php @@ -95,7 +95,11 @@ script('settings', [ 80): ?> class="warn" >
- +
-- cgit v1.2.3 From 587a140c8a75e9a3a0a98ccd37675f785d37f5ab Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Sun, 10 Feb 2019 10:31:46 +0100 Subject: Code style and comment fixes Signed-off-by: Michael Weimann --- lib/private/Settings/Personal/PersonalInfo.php | 4 +++- lib/private/Settings/Theming/ServerInfo.php | 8 ++++---- settings/Controller/ServerInfoSettingsController.php | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index c018ea80ded..0aed4a44848 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -65,8 +65,10 @@ class PersonalInfo implements ISettings { * @param IUserManager $userManager * @param IGroupManager $groupManager * @param AccountManager $accountManager + * @param IAppManager $appManager * @param IFactory $l10nFactory * @param IL10N $l + * @param EncryptionManager $encryptionManager */ public function __construct( IConfig $config, @@ -151,7 +153,7 @@ class PersonalInfo implements ISettings { * * @return array */ - private function getWhereIsYourDataParams() { + private function getWhereIsYourDataParams(): array { $adminContactConfigId = $this->config->getSystemValue(ServerInfo::SETTING_PROVIDER_ADMIN_CONTACT); $adminContact = $this->userManager->get($adminContactConfigId); diff --git a/lib/private/Settings/Theming/ServerInfo.php b/lib/private/Settings/Theming/ServerInfo.php index a5cfdd41f52..ecd2fc418fc 100644 --- a/lib/private/Settings/Theming/ServerInfo.php +++ b/lib/private/Settings/Theming/ServerInfo.php @@ -63,7 +63,7 @@ class ServerInfo implements ISettings { /** * @return TemplateResponse */ - public function getForm() { + public function getForm(): TemplateResponse { $parameters = [ 'location' => $this->config->getSystemValue(self::SETTING_LOCATION), 'provider' => $this->config->getSystemValue(self::SETTING_PROVIDER), @@ -80,7 +80,7 @@ class ServerInfo implements ISettings { * * @return array[] An array or arrays with the keys 'id' and 'displayName' */ - private function getAdminListValues() { + private function getAdminListValues(): array { $adminGroup = $this->groupManager->get('admin'); $users = $adminGroup->getUsers(); @@ -103,7 +103,7 @@ class ServerInfo implements ISettings { * * @return string */ - public function getSection() { + public function getSection(): string { return 'theming'; } @@ -114,7 +114,7 @@ class ServerInfo implements ISettings { * the admin section. The forms are arranged in ascending order of the * priority values. It is required to return a value between 0 and 100. */ - public function getPriority() { + public function getPriority(): int { return 10; } diff --git a/settings/Controller/ServerInfoSettingsController.php b/settings/Controller/ServerInfoSettingsController.php index 29d36b2e196..a5c80211712 100644 --- a/settings/Controller/ServerInfoSettingsController.php +++ b/settings/Controller/ServerInfoSettingsController.php @@ -53,7 +53,7 @@ class ServerInfoSettingsController extends Controller { string $providerWebsite, string $providerPrivacyLink, string $adminContact - ) { + ): void { $configs = [ ServerInfo::SETTING_LOCATION => $location, ServerInfo::SETTING_PROVIDER => $provider, -- cgit v1.2.3