summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/lib
diff options
context:
space:
mode:
authorblizzz <blizzz@arthur-schiwon.de>2019-06-21 11:08:59 +0200
committerGitHub <noreply@github.com>2019-06-21 11:08:59 +0200
commitc1eff72bdf91df623bb377967270befd5c1594f9 (patch)
treeec79e8297f225212bebbf3ef64b1e2e6106f937f /apps/user_ldap/lib
parent08734326da2bf8aef1856129ac547e6d4358d805 (diff)
parent29449f85b688deb1f103f3f67993475a040b4d80 (diff)
downloadnextcloud-server-c1eff72bdf91df623bb377967270befd5c1594f9.tar.gz
nextcloud-server-c1eff72bdf91df623bb377967270befd5c1594f9.zip
Merge pull request #15964 from nextcloud/enh/noid/user-creation-options
Opt-in for generation userid, requiring email addresses
Diffstat (limited to 'apps/user_ldap/lib')
-rw-r--r--apps/user_ldap/lib/Access.php2
-rw-r--r--apps/user_ldap/lib/Group_LDAP.php2
-rw-r--r--apps/user_ldap/lib/User_LDAP.php22
3 files changed, 22 insertions, 4 deletions
diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php
index 6a074bbed2e..5db9dddf8fa 100644
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -635,7 +635,7 @@ class Access extends LDAPUtility {
return false;
}
- protected function mapAndAnnounceIfApplicable(
+ public function mapAndAnnounceIfApplicable(
AbstractMapping $mapper,
string $fdn,
string $name,
diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php
index 5b25979b2d2..d9059b2372f 100644
--- a/apps/user_ldap/lib/Group_LDAP.php
+++ b/apps/user_ldap/lib/Group_LDAP.php
@@ -110,7 +110,7 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface, IGroupLD
$members = $this->access->connection->getFromCache($cacheKeyMembers);
if(!is_null($members)) {
$this->cachedGroupMembers[$gid] = $members;
- $isInGroup = in_array($userDN, $members);
+ $isInGroup = in_array($userDN, $members, true);
$this->access->connection->writeToCache($cacheKey, $isInGroup);
return $isInGroup;
}
diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php
index ada07aa53a9..5e06547533d 100644
--- a/apps/user_ldap/lib/User_LDAP.php
+++ b/apps/user_ldap/lib/User_LDAP.php
@@ -622,8 +622,26 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
if ($this->userPluginManager->implementsActions(Backend::CREATE_USER)) {
if ($dn = $this->userPluginManager->createUser($username, $password)) {
if (is_string($dn)) {
- //updates user mapping
- $this->access->dn2ocname($dn, $username, true);
+ // the NC user creation work flow requires a know user id up front
+ $uuid = $this->access->getUUID($dn, true);
+ if(is_string($uuid)) {
+ $this->access->mapAndAnnounceIfApplicable(
+ $this->access->getUserMapper(),
+ $dn,
+ $username,
+ $uuid,
+ true
+ );
+ $this->access->cacheUserExists($username);
+ } else {
+ \OC::$server->getLogger()->warning(
+ 'Failed to map created LDAP user with userid {userid}, because UUID could not be determined',
+ [
+ 'app' => 'user_ldap',
+ 'userid' => $username,
+ ]
+ );
+ }
} else {
throw new \UnexpectedValueException("LDAP Plugin: Method createUser changed to return the user DN instead of boolean.");
}