summaryrefslogtreecommitdiffstats
path: root/lib/Settings
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Settings')
-rw-r--r--lib/Settings/Admin/AdminSettings.php127
-rw-r--r--lib/Settings/Admin/AllowedGroups.php70
-rw-r--r--lib/Settings/Admin/Commands.php81
-rw-r--r--lib/Settings/Admin/GeneralSettings.php76
-rw-r--r--lib/Settings/Admin/SignalingServer.php73
-rw-r--r--lib/Settings/Admin/StunServer.php79
-rw-r--r--lib/Settings/Admin/TurnServer.php70
7 files changed, 127 insertions, 449 deletions
diff --git a/lib/Settings/Admin/AdminSettings.php b/lib/Settings/Admin/AdminSettings.php
new file mode 100644
index 000000000..36d0fd098
--- /dev/null
+++ b/lib/Settings/Admin/AdminSettings.php
@@ -0,0 +1,127 @@
+<?php
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2019 Joas Schilling <coding@schilljs.com>
+ *
+ * @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/>.
+ *
+ */
+
+namespace OCA\Talk\Settings\Admin;
+
+
+use OCA\Talk\Config;
+use OCA\Talk\Model\Command;
+use OCA\Talk\Participant;
+use OCA\Talk\Room;
+use OCA\Talk\Service\CommandService;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\IConfig;
+use OCP\IInitialStateService;
+use OCP\Settings\ISettings;
+
+class AdminSettings implements ISettings {
+
+ /** @var Config */
+ private $talkConfig;
+ /** @var IConfig */
+ private $serverConfig;
+ /** @var CommandService */
+ private $commandService;
+ /** @var IInitialStateService */
+ private $initialStateService;
+
+ public function __construct(Config $talkConfig,
+ IConfig $serverConfig,
+ CommandService $commandService,
+ IInitialStateService $initialStateService) {
+ $this->talkConfig = $talkConfig;
+ $this->serverConfig = $serverConfig;
+ $this->commandService = $commandService;
+ $this->initialStateService = $initialStateService;
+ }
+
+ /**
+ * @return TemplateResponse
+ */
+ public function getForm(): TemplateResponse {
+ $this->initGeneralSettings();
+ $this->initAllowedGroups();
+ $this->initCommands();
+ $this->initStunServers();
+ $this->initTurnServers();
+ $this->initSignalingServers();
+
+ return new TemplateResponse('spreed', 'settings/admin-settings', [], '');
+ }
+
+ protected function initGeneralSettings(): void {
+ $this->initialStateService->provideInitialState('talk', 'start_calls', (int) $this->serverConfig->getAppValue('spreed', 'start_calls', Room::START_CALL_EVERYONE));
+ $this->initialStateService->provideInitialState('talk', 'default_group_notification', (int) $this->serverConfig->getAppValue('spreed', 'default_group_notification', Participant::NOTIFY_MENTION));
+ $this->initialStateService->provideInitialState('talk', 'conversations_files', (int) $this->serverConfig->getAppValue('spreed', 'conversations_files', '1'));
+ $this->initialStateService->provideInitialState('talk', 'conversations_files_public_shares', (int) $this->serverConfig->getAppValue('spreed', 'conversations_files_public_shares', '1'));
+ }
+
+ protected function initAllowedGroups(): void {
+ $this->initialStateService->provideInitialState('talk', 'allowed_groups', $this->talkConfig->getAllowedGroupIds());
+ }
+
+ protected function initCommands(): void {
+ $commands = $this->commandService->findAll();
+
+ $result = array_map(function(Command $command) {
+ return $command->asArray();
+ }, $commands);
+
+ $this->initialStateService->provideInitialState('talk', 'commands', $result);
+ }
+
+ protected function initStunServers(): void {
+ $this->initialStateService->provideInitialState('talk', 'stun_servers', $this->talkConfig->getStunServers());
+ $this->initialStateService->provideInitialState('talk', 'has_internet_connection', $this->serverConfig->getSystemValueBool('has_internet_connection', true));
+ }
+
+ protected function initTurnServers(): void {
+ $this->initialStateService->provideInitialState('talk', 'turn_servers', $this->talkConfig->getTurnServers());
+ }
+
+ protected function initSignalingServers(): void {
+ $this->initialStateService->provideInitialState('talk', 'signaling_servers', [
+ 'servers' => $this->talkConfig->getSignalingServers(),
+ 'secret' => $this->talkConfig->getSignalingSecret(),
+ 'hideWarning' => $this->talkConfig->getHideSignalingWarning(),
+ ]);
+ }
+
+ /**
+ * @return string the section ID, e.g. 'sharing'
+ */
+ public function getSection(): string {
+ return 'talk';
+ }
+
+ /**
+ * @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.
+ *
+ * E.g.: 70
+ */
+ public function getPriority(): int {
+ return 0;
+ }
+
+}
diff --git a/lib/Settings/Admin/AllowedGroups.php b/lib/Settings/Admin/AllowedGroups.php
deleted file mode 100644
index b969bfe18..000000000
--- a/lib/Settings/Admin/AllowedGroups.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-declare(strict_types=1);
-/**
- * @copyright Copyright (c) 2019 Joas Schilling <coding@schilljs.com>
- *
- * @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/>.
- *
- */
-
-namespace OCA\Talk\Settings\Admin;
-
-
-use OCA\Talk\Config;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IInitialStateService;
-use OCP\Settings\ISettings;
-
-class AllowedGroups implements ISettings {
-
- /** @var Config */
- private $config;
- /** @var IInitialStateService */
- private $initialStateService;
-
- public function __construct(Config $config,
- IInitialStateService $initialStateService) {
- $this->config = $config;
- $this->initialStateService = $initialStateService;
- }
-
- /**
- * @return TemplateResponse
- */
- public function getForm(): TemplateResponse {
- $this->initialStateService->provideInitialState('talk', 'allowed_groups', $this->config->getAllowedGroupIds());
- return new TemplateResponse('spreed', 'settings/admin/allowed-groups', [], '');
- }
-
- /**
- * @return string the section ID, e.g. 'sharing'
- */
- public function getSection(): string {
- return 'talk';
- }
-
- /**
- * @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.
- *
- * E.g.: 70
- */
- public function getPriority(): int {
- return 10;
- }
-
-}
diff --git a/lib/Settings/Admin/Commands.php b/lib/Settings/Admin/Commands.php
deleted file mode 100644
index af1edda27..000000000
--- a/lib/Settings/Admin/Commands.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-declare(strict_types=1);
-/**
- * @copyright Copyright (c) 2019 Joas Schilling <coding@schilljs.com>
- *
- * @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/>.
- *
- */
-
-namespace OCA\Talk\Settings\Admin;
-
-
-use OCA\Talk\Config;
-use OCA\Talk\Model\Command;
-use OCA\Talk\Service\CommandService;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IInitialStateService;
-use OCP\Settings\ISettings;
-
-class Commands implements ISettings {
-
- /** @var CommandService */
- private $commandService;
- /** @var IInitialStateService */
- private $initialStateService;
-
- public function __construct(CommandService $commandService,
- IInitialStateService $initialStateService) {
- $this->commandService = $commandService;
- $this->initialStateService = $initialStateService;
- }
-
-
- /**
- * @return TemplateResponse
- */
- public function getForm(): TemplateResponse {
-
- $commands = $this->commandService->findAll();
-
- $result = array_map(function(Command $command) {
- return $command->asArray();
- }, $commands);
-
- $this->initialStateService->provideInitialState('talk', 'commands', $result);
-
- return new TemplateResponse('spreed', 'settings/admin/commands', [], '');
- }
-
- /**
- * @return string the section ID, e.g. 'sharing'
- */
- public function getSection(): string {
- return 'talk';
- }
-
- /**
- * @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.
- *
- * E.g.: 70
- */
- public function getPriority(): int {
- return 60;
- }
-
-}
diff --git a/lib/Settings/Admin/GeneralSettings.php b/lib/Settings/Admin/GeneralSettings.php
deleted file mode 100644
index aea1b602d..000000000
--- a/lib/Settings/Admin/GeneralSettings.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-declare(strict_types=1);
-/**
- * @copyright Copyright (c) 2019 Joas Schilling <coding@schilljs.com>
- *
- * @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/>.
- *
- */
-
-namespace OCA\Talk\Settings\Admin;
-
-
-use OCA\Talk\Config;
-use OCA\Talk\Participant;
-use OCA\Talk\Room;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IConfig;
-use OCP\IInitialStateService;
-use OCP\Settings\ISettings;
-
-class GeneralSettings implements ISettings {
-
- /** @var IConfig */
- private $config;
- /** @var IInitialStateService */
- private $initialStateService;
-
- public function __construct(IConfig $config,
- IInitialStateService $initialStateService) {
- $this->config = $config;
- $this->initialStateService = $initialStateService;
- }
-
- /**
- * @return TemplateResponse
- */
- public function getForm(): TemplateResponse {
- $this->initialStateService->provideInitialState('talk', 'start_calls', (int) $this->config->getAppValue('spreed', 'start_calls', Room::START_CALL_EVERYONE));
- $this->initialStateService->provideInitialState('talk', 'default_group_notification', (int) $this->config->getAppValue('spreed', 'default_group_notification', Participant::NOTIFY_MENTION));
- $this->initialStateService->provideInitialState('talk', 'conversations_files', (int) $this->config->getAppValue('spreed', 'conversations_files', '1'));
- $this->initialStateService->provideInitialState('talk', 'conversations_files_public_shares', (int) $this->config->getAppValue('spreed', 'conversations_files_public_shares', '1'));
- return new TemplateResponse('spreed', 'settings/admin/general-settings', [], '');
- }
-
- /**
- * @return string the section ID, e.g. 'sharing'
- */
- public function getSection(): string {
- return 'talk';
- }
-
- /**
- * @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.
- *
- * E.g.: 70
- */
- public function getPriority(): int {
- return 0;
- }
-
-}
diff --git a/lib/Settings/Admin/SignalingServer.php b/lib/Settings/Admin/SignalingServer.php
deleted file mode 100644
index 35bc9867f..000000000
--- a/lib/Settings/Admin/SignalingServer.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-declare(strict_types=1);
-/**
- * @author Joachim Bauch <mail@joachim-bauch.de>
- *
- * @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/>.
- *
- */
-
-namespace OCA\Talk\Settings\Admin;
-
-
-use OCA\Talk\Config;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IInitialStateService;
-use OCP\Settings\ISettings;
-
-class SignalingServer implements ISettings {
-
- /** @var Config */
- private $config;
- /** @var IInitialStateService */
- private $initialStateService;
-
- public function __construct(Config $config,
- IInitialStateService $initialStateService) {
- $this->config = $config;
- $this->initialStateService = $initialStateService;
- }
-
- /**
- * @return TemplateResponse
- */
- public function getForm(): TemplateResponse {
- $this->initialStateService->provideInitialState('talk', 'signaling_servers', [
- 'servers' => $this->config->getSignalingServers(),
- 'secret' => $this->config->getSignalingSecret(),
- 'hideWarning' => $this->config->getHideSignalingWarning(),
- ]);
- return new TemplateResponse('spreed', 'settings/admin/signaling-server', [], '');
- }
- /**
- * @return string the section ID, e.g. 'sharing'
- */
- public function getSection(): string {
- return 'talk';
- }
-
- /**
- * @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.
- *
- * E.g.: 70
- */
- public function getPriority(): int {
- return 75;
- }
-
-}
diff --git a/lib/Settings/Admin/StunServer.php b/lib/Settings/Admin/StunServer.php
deleted file mode 100644
index 3c5f55e08..000000000
--- a/lib/Settings/Admin/StunServer.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-declare(strict_types=1);
-/**
- * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com>
- *
- * @author Joas Schilling <coding@schilljs.com>
- *
- * @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/>.
- *
- */
-
-
-namespace OCA\Talk\Settings\Admin;
-
-
-use OCA\Talk\Config;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IConfig;
-use OCP\IInitialStateService;
-use OCP\Settings\ISettings;
-
-class StunServer implements ISettings {
-
- /** @var Config */
- private $config;
- /** @var IConfig */
- private $serverConfig;
- /** @var IInitialStateService */
- private $initialStateService;
-
- public function __construct(Config $config,
- IConfig $serverConfig,
- IInitialStateService $initialStateService) {
- $this->config = $config;
- $this->serverConfig = $serverConfig;
- $this->initialStateService = $initialStateService;
- }
-
- /**
- * @return TemplateResponse
- */
- public function getForm(): TemplateResponse {
- $this->initialStateService->provideInitialState('talk', 'stun_servers', $this->config->getStunServers());
- $this->initialStateService->provideInitialState('talk', 'has_internet_connection', $this->serverConfig->getSystemValueBool('has_internet_connection', true));
- return new TemplateResponse('spreed', 'settings/admin/stun-server', [], '');
- }
-
- /**
- * @return string the section ID, e.g. 'sharing'
- */
- public function getSection(): string {
- return 'talk';
- }
-
- /**
- * @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.
- *
- * E.g.: 70
- */
- public function getPriority(): int {
- return 65;
- }
-
-}
diff --git a/lib/Settings/Admin/TurnServer.php b/lib/Settings/Admin/TurnServer.php
deleted file mode 100644
index 1690df749..000000000
--- a/lib/Settings/Admin/TurnServer.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-declare(strict_types=1);
-/**
- * @author Joachim Bauch <mail@joachim-bauch.de>
- *
- * @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/>.
- *
- */
-
-namespace OCA\Talk\Settings\Admin;
-
-
-use OCA\Talk\Config;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IInitialStateService;
-use OCP\Settings\ISettings;
-
-class TurnServer implements ISettings {
-
- /** @var Config */
- private $config;
- /** @var IInitialStateService */
- private $initialS