From 1fc05ea53a6ed6053c0ceb90ad72a49ca314d57e Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Wed, 22 Feb 2017 19:24:26 +0100 Subject: [PATCH] allow admin to configure lookup server Signed-off-by: Bjoern Schiessle --- apps/lookup_server_connector/appinfo/app.php | 10 ++++--- .../lib/UpdateLookupServer.php | 29 ++++++------------- config/config.sample.php | 5 ++++ 3 files changed, 20 insertions(+), 24 deletions(-) diff --git a/apps/lookup_server_connector/appinfo/app.php b/apps/lookup_server_connector/appinfo/app.php index 639eeafcf3..a98a5de406 100644 --- a/apps/lookup_server_connector/appinfo/app.php +++ b/apps/lookup_server_connector/appinfo/app.php @@ -28,18 +28,20 @@ $dispatcher->addListener('OC\AccountManager::userUpdated', function(\Symfony\Com \OC::$server->getAppDataDir('identityproof'), \OC::$server->getCrypto() ); + + $config = \OC::$server->getConfig(); + $lookupServer = $config->getSystemValue('lookup_server', ''); + $updateLookupServer = new \OCA\LookupServerConnector\UpdateLookupServer( new \OC\Accounts\AccountManager(\OC::$server->getDatabaseConnection(), \OC::$server->getEventDispatcher()), - \OC::$server->getConfig(), - \OC::$server->getSecureRandom(), \OC::$server->getHTTPClientService(), - $keyManager, new \OC\Security\IdentityProof\Signer( $keyManager, new \OC\AppFramework\Utility\TimeFactory(), \OC::$server->getUserManager() ), - \OC::$server->getJobList() + \OC::$server->getJobList(), + $lookupServer ); $updateLookupServer->userUpdated($user); }); diff --git a/apps/lookup_server_connector/lib/UpdateLookupServer.php b/apps/lookup_server_connector/lib/UpdateLookupServer.php index 8686531172..03fd98351c 100644 --- a/apps/lookup_server_connector/lib/UpdateLookupServer.php +++ b/apps/lookup_server_connector/lib/UpdateLookupServer.php @@ -23,14 +23,11 @@ namespace OCA\LookupServerConnector; use OC\Accounts\AccountManager; -use OC\Security\IdentityProof\Manager; use OC\Security\IdentityProof\Signer; use OCA\LookupServerConnector\BackgroundJobs\RetryJob; use OCP\BackgroundJob\IJobList; use OCP\Http\Client\IClientService; -use OCP\IConfig; use OCP\IUser; -use OCP\Security\ISecureRandom; /** * Class UpdateLookupServer @@ -40,44 +37,36 @@ use OCP\Security\ISecureRandom; class UpdateLookupServer { /** @var AccountManager */ private $accountManager; - /** @var IConfig */ - private $config; - /** @var ISecureRandom */ - private $secureRandom; /** @var IClientService */ private $clientService; - /** @var Manager */ - private $keyManager; /** @var Signer */ private $signer; /** @var IJobList */ private $jobList; /** @var string URL point to lookup server */ - private $lookupServer = 'https://lookup.nextcloud.com/users'; + private $lookupServer = 'https://lookup.nextcloud.com'; /** * @param AccountManager $accountManager - * @param IConfig $config - * @param ISecureRandom $secureRandom * @param IClientService $clientService - * @param Manager $manager * @param Signer $signer * @param IJobList $jobList + * @param string $lookupServer if nothing is given we use the default lookup server */ public function __construct(AccountManager $accountManager, - IConfig $config, - ISecureRandom $secureRandom, IClientService $clientService, - Manager $manager, Signer $signer, - IJobList $jobList) { + IJobList $jobList, + $lookupServer = '') { $this->accountManager = $accountManager; - $this->config = $config; - $this->secureRandom = $secureRandom; $this->clientService = $clientService; - $this->keyManager = $manager; $this->signer = $signer; $this->jobList = $jobList; + if ($lookupServer !== '') { + $this->lookupServer = $lookupServer; + } + $this->lookupServer = rtrim($this->lookupServer, '/'); + $this->lookupServer .= '/users'; } /** diff --git a/config/config.sample.php b/config/config.sample.php index 84b98550fb..4646de3308 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -1515,4 +1515,9 @@ $CONFIG = array( */ 'copied_sample_config' => true, +/** + * use a custom lookup server to publish user data + */ +'lookup_server' => 'https://lookup.nextcloud.com', + );