public function LdapServer::userUserEntityFromPuid in Lightweight Directory Access Protocol (LDAP) 8.2
Same name and namespace in other branches
- 7.2 ldap_servers/LdapServer.class.php \LdapServer::userUserEntityFromPuid()
Parameters
binary or string $puid as returned from ldap_read or other ldap function:
File
- ldap_servers/
LdapServer.class.php, line 901 - 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));
// run the query as user 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 = array(
'%uids' => $uids,
'%puid' => $puid,
'%sid' => $this->sid,
'%ldap_user_puid_property' => $this->unique_persistent_attr,
);
watchdog('ldap_server', '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;
}
}