diff options
author | Björn Schießle <bjoern@schiessle.org> | 2015-11-18 15:07:41 +0100 |
---|---|---|
committer | Björn Schießle <bjoern@schiessle.org> | 2015-11-19 18:07:25 +0100 |
commit | 2754afc0747950591b3ddca37248d363c6ab64f3 (patch) | |
tree | 9bae88b29416ec6d9e3f58abdf26e98e0b7d42e8 | |
parent | 8f55b1a27d97f24751542b6dc44a89eb03387a75 (diff) | |
download | nextcloud-server-2754afc0747950591b3ddca37248d363c6ab64f3.tar.gz nextcloud-server-2754afc0747950591b3ddca37248d363c6ab64f3.zip |
add option to auto add servers to the list of trusted servers once a federated share was created and accepted successfully
-rw-r--r-- | apps/federation/appinfo/application.php | 3 | ||||
-rw-r--r-- | apps/federation/appinfo/routes.php | 5 | ||||
-rw-r--r-- | apps/federation/backgroundjob/getsharedsecret.php | 3 | ||||
-rw-r--r-- | apps/federation/backgroundjob/requestsharedsecret.php | 3 | ||||
-rw-r--r-- | apps/federation/controller/settingscontroller.php | 11 | ||||
-rw-r--r-- | apps/federation/js/settings-admin.js | 9 | ||||
-rw-r--r-- | apps/federation/lib/trustedservers.php | 31 | ||||
-rw-r--r-- | apps/federation/settings/settings-admin.php | 4 | ||||
-rw-r--r-- | apps/federation/templates/settings-admin.php | 6 |
9 files changed, 67 insertions, 8 deletions
diff --git a/apps/federation/appinfo/application.php b/apps/federation/appinfo/application.php index e91506a30bd..72a30f9ae0a 100644 --- a/apps/federation/appinfo/application.php +++ b/apps/federation/appinfo/application.php @@ -73,7 +73,8 @@ class Application extends \OCP\AppFramework\App { \OC::$server->getHTTPClientService(), \OC::$server->getLogger(), \OC::$server->getJobList(), - \OC::$server->getSecureRandom() + \OC::$server->getSecureRandom(), + \OC::$server->getConfig() ); }); diff --git a/apps/federation/appinfo/routes.php b/apps/federation/appinfo/routes.php index f45db43e4e7..8c1629a4fc6 100644 --- a/apps/federation/appinfo/routes.php +++ b/apps/federation/appinfo/routes.php @@ -35,6 +35,11 @@ $application->registerRoutes( 'url' => '/trusted-servers/{id}', 'verb' => 'DELETE' ], + [ + 'name' => 'Settings#autoAddServers', + 'url' => '/auto-add-servers', + 'verb' => 'POST' + ], ] ] ); diff --git a/apps/federation/backgroundjob/getsharedsecret.php b/apps/federation/backgroundjob/getsharedsecret.php index 665c6ec6cce..3e8597cd78b 100644 --- a/apps/federation/backgroundjob/getsharedsecret.php +++ b/apps/federation/backgroundjob/getsharedsecret.php @@ -85,7 +85,8 @@ class GetSharedSecret extends QueuedJob{ \OC::$server->getHTTPClientService(), \OC::$server->getLogger(), $this->jobList, - \OC::$server->getSecureRandom() + \OC::$server->getSecureRandom(), + \OC::$server->getConfig() ); } } diff --git a/apps/federation/backgroundjob/requestsharedsecret.php b/apps/federation/backgroundjob/requestsharedsecret.php index b61026a4d66..b73b620b4b7 100644 --- a/apps/federation/backgroundjob/requestsharedsecret.php +++ b/apps/federation/backgroundjob/requestsharedsecret.php @@ -77,7 +77,8 @@ class RequestSharedSecret extends QueuedJob { \OC::$server->getHTTPClientService(), \OC::$server->getLogger(), $this->jobList, - \OC::$server->getSecureRandom() + \OC::$server->getSecureRandom(), + \OC::$server->getConfig() ); } } diff --git a/apps/federation/controller/settingscontroller.php b/apps/federation/controller/settingscontroller.php index 8d522328120..2e28cd60cfa 100644 --- a/apps/federation/controller/settingscontroller.php +++ b/apps/federation/controller/settingscontroller.php @@ -26,6 +26,7 @@ use OCA\Federation\TrustedServers; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; +use OCP\IConfig; use OCP\IL10N; use OCP\IRequest; @@ -87,6 +88,16 @@ class SettingsController extends Controller { } /** + * enable/disable to automatically add servers to the list of trusted servers + * once a federated share was created and accepted successfully + * + * @param bool $autoAddServers + */ + public function autoAddServers($autoAddServers) { + $this->trustedServers->setAutoAddServers($autoAddServers); + } + + /** * check if the server should be added to the list of trusted servers or not * * @param string $url diff --git a/apps/federation/js/settings-admin.js b/apps/federation/js/settings-admin.js index 1bc7a8cc0aa..7d531b39d8c 100644 --- a/apps/federation/js/settings-admin.js +++ b/apps/federation/js/settings-admin.js @@ -70,4 +70,13 @@ $(document).ready(function () { }); + $("#ocFederationSettings #autoAddServers").change(function() { + $.post( + OC.generateUrl('/apps/federation/auto-add-servers'), + { + autoAddServers: $(this).is(":checked") + } + ); + }); + }); diff --git a/apps/federation/lib/trustedservers.php b/apps/federation/lib/trustedservers.php index f3ac6e24fc6..96a29178076 100644 --- a/apps/federation/lib/trustedservers.php +++ b/apps/federation/lib/trustedservers.php @@ -25,6 +25,7 @@ namespace OCA\Federation; use OCP\AppFramework\Http; use OCP\BackgroundJob\IJobList; use OCP\Http\Client\IClientService; +use OCP\IConfig; use OCP\ILogger; use OCP\Security\ISecureRandom; @@ -52,25 +53,31 @@ class TrustedServers { /** @var ISecureRandom */ private $secureRandom; + /** @var IConfig */ + private $config; + /** * @param DbHandler $dbHandler * @param IClientService $httpClientService * @param ILogger $logger * @param IJobList $jobList * @param ISecureRandom $secureRandom + * @param IConfig $config */ public function __construct( DbHandler $dbHandler, IClientService $httpClientService, ILogger $logger, IJobList $jobList, - ISecureRandom $secureRandom + ISecureRandom $secureRandom, + IConfig $config ) { $this->dbHandler = $dbHandler; $this->httpClientService = $httpClientService; $this->logger = $logger; $this->jobList = $jobList; $this->secureRandom = $secureRandom; + $this->config = $config; } /** @@ -98,6 +105,28 @@ class TrustedServers { } /** + * enable/disable to automatically add servers to the list of trusted servers + * once a federated share was created and accepted successfully + * + * @param bool $status + */ + public function setAutoAddServers($status) { + $value = $status ? '1' : '0'; + $this->config->setAppValue('federation', 'autoAddServers', $value); + } + + /** + * return if we automatically add servers to the list of trusted servers + * once a federated share was created and accepted successfully + * + * @return bool + */ + public function getAutoAddServers() { + $value = $this->config->getAppValue('federation', 'autoAddServers', '1'); + return $value === '1'; + } + + /** * get shared secret for the given server * * @param string $url diff --git a/apps/federation/settings/settings-admin.php b/apps/federation/settings/settings-admin.php index c160b7ee825..76ae0c3b6e0 100644 --- a/apps/federation/settings/settings-admin.php +++ b/apps/federation/settings/settings-admin.php @@ -33,9 +33,11 @@ $trustedServers = new \OCA\Federation\TrustedServers( \OC::$server->getHTTPClientService(), \OC::$server->getLogger(), \OC::$server->getJobList(), - \OC::$server->getSecureRandom() + \OC::$server->getSecureRandom(), + \OC::$server->getConfig() ); $template->assign('trustedServers', $trustedServers->getServers()); +$template->assign('autoAddServers', $trustedServers->getAutoAddServers()); return $template->fetchPage(); diff --git a/apps/federation/templates/settings-admin.php b/apps/federation/templates/settings-admin.php index f9087137d56..854bb744179 100644 --- a/apps/federation/templates/settings-admin.php +++ b/apps/federation/templates/settings-admin.php @@ -10,9 +10,9 @@ style('federation', 'settings-admin') <h2><?php p($l->t('Federation')); ?></h2> <em><?php p($l->t('ownCloud Federation allows you to connect with other trusted ownClouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing.')); ?></em> - <p id="ocFederationShareUsers"> - <input type="checkbox" class="checkbox" id="shareUsers" /> - <label for="shareUsers">Share internal user list with other ownClouds</label> + <p> + <input id="autoAddServers" type="checkbox" class="checkbox" <?php if($_['autoAddServers']) p('checked'); ?> /> + <label for="autoAddServers">Add server automatically once a federated share was created successfully</label> </p> <h3>Trusted ownCloud Servers</h3> |