allow admin to configure lookup server

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Bjoern Schiessle 2017-02-22 19:24:26 +01:00 committed by Morris Jobke
parent 2a773310dc
commit 1fc05ea53a
No known key found for this signature in database
GPG Key ID: 9CE5ED29E7FCD38A
3 changed files with 20 additions and 24 deletions

View File

@ -28,18 +28,20 @@ $dispatcher->addListener('OC\AccountManager::userUpdated', function(\Symfony\Com
\OC::$server->getAppDataDir('identityproof'), \OC::$server->getAppDataDir('identityproof'),
\OC::$server->getCrypto() \OC::$server->getCrypto()
); );
$config = \OC::$server->getConfig();
$lookupServer = $config->getSystemValue('lookup_server', '');
$updateLookupServer = new \OCA\LookupServerConnector\UpdateLookupServer( $updateLookupServer = new \OCA\LookupServerConnector\UpdateLookupServer(
new \OC\Accounts\AccountManager(\OC::$server->getDatabaseConnection(), \OC::$server->getEventDispatcher()), new \OC\Accounts\AccountManager(\OC::$server->getDatabaseConnection(), \OC::$server->getEventDispatcher()),
\OC::$server->getConfig(),
\OC::$server->getSecureRandom(),
\OC::$server->getHTTPClientService(), \OC::$server->getHTTPClientService(),
$keyManager,
new \OC\Security\IdentityProof\Signer( new \OC\Security\IdentityProof\Signer(
$keyManager, $keyManager,
new \OC\AppFramework\Utility\TimeFactory(), new \OC\AppFramework\Utility\TimeFactory(),
\OC::$server->getUserManager() \OC::$server->getUserManager()
), ),
\OC::$server->getJobList() \OC::$server->getJobList(),
$lookupServer
); );
$updateLookupServer->userUpdated($user); $updateLookupServer->userUpdated($user);
}); });

View File

@ -23,14 +23,11 @@
namespace OCA\LookupServerConnector; namespace OCA\LookupServerConnector;
use OC\Accounts\AccountManager; use OC\Accounts\AccountManager;
use OC\Security\IdentityProof\Manager;
use OC\Security\IdentityProof\Signer; use OC\Security\IdentityProof\Signer;
use OCA\LookupServerConnector\BackgroundJobs\RetryJob; use OCA\LookupServerConnector\BackgroundJobs\RetryJob;
use OCP\BackgroundJob\IJobList; use OCP\BackgroundJob\IJobList;
use OCP\Http\Client\IClientService; use OCP\Http\Client\IClientService;
use OCP\IConfig;
use OCP\IUser; use OCP\IUser;
use OCP\Security\ISecureRandom;
/** /**
* Class UpdateLookupServer * Class UpdateLookupServer
@ -40,44 +37,36 @@ use OCP\Security\ISecureRandom;
class UpdateLookupServer { class UpdateLookupServer {
/** @var AccountManager */ /** @var AccountManager */
private $accountManager; private $accountManager;
/** @var IConfig */
private $config;
/** @var ISecureRandom */
private $secureRandom;
/** @var IClientService */ /** @var IClientService */
private $clientService; private $clientService;
/** @var Manager */
private $keyManager;
/** @var Signer */ /** @var Signer */
private $signer; private $signer;
/** @var IJobList */ /** @var IJobList */
private $jobList; private $jobList;
/** @var string URL point to lookup server */ /** @var string URL point to lookup server */
private $lookupServer = 'https://lookup.nextcloud.com/users'; private $lookupServer = 'https://lookup.nextcloud.com';
/** /**
* @param AccountManager $accountManager * @param AccountManager $accountManager
* @param IConfig $config
* @param ISecureRandom $secureRandom
* @param IClientService $clientService * @param IClientService $clientService
* @param Manager $manager
* @param Signer $signer * @param Signer $signer
* @param IJobList $jobList * @param IJobList $jobList
* @param string $lookupServer if nothing is given we use the default lookup server
*/ */
public function __construct(AccountManager $accountManager, public function __construct(AccountManager $accountManager,
IConfig $config,
ISecureRandom $secureRandom,
IClientService $clientService, IClientService $clientService,
Manager $manager,
Signer $signer, Signer $signer,
IJobList $jobList) { IJobList $jobList,
$lookupServer = '') {
$this->accountManager = $accountManager; $this->accountManager = $accountManager;
$this->config = $config;
$this->secureRandom = $secureRandom;
$this->clientService = $clientService; $this->clientService = $clientService;
$this->keyManager = $manager;
$this->signer = $signer; $this->signer = $signer;
$this->jobList = $jobList; $this->jobList = $jobList;
if ($lookupServer !== '') {
$this->lookupServer = $lookupServer;
}
$this->lookupServer = rtrim($this->lookupServer, '/');
$this->lookupServer .= '/users';
} }
/** /**

View File

@ -1515,4 +1515,9 @@ $CONFIG = array(
*/ */
'copied_sample_config' => true, 'copied_sample_config' => true,
/**
* use a custom lookup server to publish user data
*/
'lookup_server' => 'https://lookup.nextcloud.com',
); );