summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap
diff options
context:
space:
mode:
authorPeter Kubica <peter@kubica.ch>2019-03-05 14:07:32 +0100
committerPeter Kubica <peter@kubica.ch>2019-03-19 01:58:46 +0100
commit3ed1d158bca3b317893b4d61f75a417f049232bf (patch)
tree88fea457486442af32176ec579e6d4d090ddf9d9 /apps/user_ldap
parent8c0497249879de8fecef8df6357d37bde8fb0676 (diff)
downloadnextcloud-server-3ed1d158bca3b317893b4d61f75a417f049232bf.tar.gz
nextcloud-server-3ed1d158bca3b317893b4d61f75a417f049232bf.zip
LDAP Password Modify Extended Operation support
Signed-off-by: Peter Kubica <peter@kubica.ch>
Diffstat (limited to 'apps/user_ldap')
-rw-r--r--apps/user_ldap/lib/Access.php4
-rw-r--r--apps/user_ldap/lib/LDAP.php11
2 files changed, 14 insertions, 1 deletions
diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php
index 1044938446e..095b5d17f63 100644
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -366,7 +366,9 @@ class Access extends LDAPUtility {
return false;
}
try {
- return @$this->invokeLDAPMethod('modReplace', $cr, $userDN, $password);
+ // try PASSWD extended operation first
+ return @$this->invokeLDAPMethod('exopPasswd', $cr, $userDN, '', $password) ||
+ @$this->invokeLDAPMethod('modReplace', $cr, $userDN, $password);
} catch(ConstraintViolationException $e) {
throw new HintException('Password change rejected.', \OC::$server->getL10N('user_ldap')->t('Password change rejected. Hint: ').$e->getMessage(), $e->getCode());
}
diff --git a/apps/user_ldap/lib/LDAP.php b/apps/user_ldap/lib/LDAP.php
index e6039c77d12..083d77d645d 100644
--- a/apps/user_ldap/lib/LDAP.php
+++ b/apps/user_ldap/lib/LDAP.php
@@ -221,6 +221,17 @@ class LDAP implements ILDAPWrapper {
/**
* @param LDAP $link
+ * @param string $userDN
+ * @param string $oldPassword
+ * @param string $password
+ * @return bool
+ */
+ public function exopPasswd($link, $userDN, $oldPassword, $password) {
+ return $this->invokeLDAPMethod('exop_passwd', $link, $userDN, $oldPassword, $password);
+ }
+
+ /**
+ * @param LDAP $link
* @param string $option
* @param int $value
* @return bool|mixed