public function LdapServer::userUserEntityFromPuid in Lightweight Directory Access Protocol (LDAP) 7.2
Same name and namespace in other branches
- 8.2 ldap_servers/LdapServer.class.php \LdapServer::userUserEntityFromPuid()
UserUserEntityFromPuid.
Parameters
string $puid: Binary or string as returned from ldap_read or other ldap function.
Return value
mixed
File
- ldap_servers/
LdapServer.class.php, line 1062 - Defines server classes and related functions.
Class
- LdapServer
- LDAP Server Class.
Code
public function userUserEntityFromPuid($puid) {
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'user')
->fieldCondition('ldap_user_puid_sid', 'value', $this->sid, '=')
->fieldCondition('ldap_user_puid', 'value', $puid, '=')
->fieldCondition('ldap_user_puid_property', 'value', $this->unique_persistent_attr, '=')
->addMetaData('account', user_load(1));
$result = $query
->execute();
if (isset($result['user'])) {
$uids = array_keys($result['user']);
if (count($uids) == 1) {
$user = entity_load('user', array_keys($result['user']));
return $user[$uids[0]];
}
else {
$uids = join(',', $uids);
$tokens = [
'%uids' => $uids,
'%puid' => $puid,
'%sid' => $this->sid,
'%ldap_user_puid_property' => $this->unique_persistent_attr,
];
watchdog('ldap_servers', 'multiple users (uids: %uids) with same puid (puid=%puid, sid=%sid, ldap_user_puid_property=%ldap_user_puid_property)', $tokens, WATCHDOG_ERROR);
return FALSE;
}
}
else {
return FALSE;
}
}