aboutsummaryrefslogtreecommitdiffstats
path: root/apps/user_ldap
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2018-12-17 00:31:27 +0100
committerBackportbot <backportbot-noreply@rullzer.com>2018-12-17 12:08:10 +0000
commita7a1be792c3005deb8f0459ced48668efa8ae056 (patch)
tree4e9f3d9db62885987b928ebe88d59d4447e17473 /apps/user_ldap
parentacc7eee830b8075bc84c7054488f81c920ef4b22 (diff)
downloadnextcloud-server-a7a1be792c3005deb8f0459ced48668efa8ae056.tar.gz
nextcloud-server-a7a1be792c3005deb8f0459ced48668efa8ae056.zip
LDAP clear cache on config modification also when done via API or CLI
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/user_ldap')
-rw-r--r--apps/user_ldap/lib/AppInfo/Application.php6
-rw-r--r--apps/user_ldap/lib/Command/SetConfig.php5
-rw-r--r--apps/user_ldap/lib/Controller/ConfigAPIController.php9
3 files changed, 19 insertions, 1 deletions
diff --git a/apps/user_ldap/lib/AppInfo/Application.php b/apps/user_ldap/lib/AppInfo/Application.php
index 6d5c416f04f..59d7cdb4924 100644
--- a/apps/user_ldap/lib/AppInfo/Application.php
+++ b/apps/user_ldap/lib/AppInfo/Application.php
@@ -24,6 +24,8 @@
namespace OCA\User_LDAP\AppInfo;
use OCA\User_LDAP\Controller\RenewPasswordController;
+use OCA\User_LDAP\ILDAPWrapper;
+use OCA\User_LDAP\LDAP;
use OCP\AppFramework\App;
use OCP\AppFramework\IAppContainer;
use OCP\IL10N;
@@ -50,5 +52,9 @@ class Application extends App {
$server->getURLGenerator()
);
});
+
+ $container->registerService(ILDAPWrapper::class, function () {
+ return new LDAP();
+ });
}
}
diff --git a/apps/user_ldap/lib/Command/SetConfig.php b/apps/user_ldap/lib/Command/SetConfig.php
index db656558efc..cf73874ade8 100644
--- a/apps/user_ldap/lib/Command/SetConfig.php
+++ b/apps/user_ldap/lib/Command/SetConfig.php
@@ -26,6 +26,8 @@
namespace OCA\User_LDAP\Command;
+use OCA\User_LDAP\ConnectionFactory;
+use OCA\User_LDAP\LDAP;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
@@ -83,5 +85,8 @@ class SetConfig extends Command {
$configHolder = new Configuration($configID);
$configHolder->$key = $value;
$configHolder->saveConfiguration();
+
+ $connectionFactory = new ConnectionFactory(new LDAP());
+ $connectionFactory->get($configID)->clearCache();
}
}
diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php
index a745e4ce060..ce885b7dabb 100644
--- a/apps/user_ldap/lib/Controller/ConfigAPIController.php
+++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php
@@ -27,6 +27,7 @@ use OC\CapabilitiesManager;
use OC\Core\Controller\OCSController;
use OC\Security\IdentityProof\Manager;
use OCA\User_LDAP\Configuration;
+use OCA\User_LDAP\ConnectionFactory;
use OCA\User_LDAP\Helper;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSBadRequestException;
@@ -45,6 +46,9 @@ class ConfigAPIController extends OCSController {
/** @var ILogger */
private $logger;
+ /** @var ConnectionFactory */
+ private $connectionFactory;
+
public function __construct(
$appName,
IRequest $request,
@@ -53,7 +57,8 @@ class ConfigAPIController extends OCSController {
IUserManager $userManager,
Manager $keyManager,
Helper $ldapHelper,
- ILogger $logger
+ ILogger $logger,
+ ConnectionFactory $connectionFactory
) {
parent::__construct(
$appName,
@@ -67,6 +72,7 @@ class ConfigAPIController extends OCSController {
$this->ldapHelper = $ldapHelper;
$this->logger = $logger;
+ $this->connectionFactory = $connectionFactory;
}
/**
@@ -198,6 +204,7 @@ class ConfigAPIController extends OCSController {
}
$configuration->saveConfiguration();
+ $this->connectionFactory->get($configID)->clearCache();
} catch(OCSException $e) {
throw $e;
} catch (\Exception $e) {