/** * @param binary or string $puid as returned from ldap_read or other ldap function * */ public function userUserEntityFromPuid($puid) { if ($this->unique_persistent_attr_binary) { $puid = ldap_servers_binary($puid); } // list($account, $user_entity) = ldap_user_load_user_acct_and_entity('jkeats'); //debug('userUserEntityFromPuid:account and user entity'); debug($account); debug($user_entity); $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 // ->entityCondition('bundle', 'user') $result = $query->execute(); // debug("userUserEntityFromPuid: puid=$puid, sid=". $this->sid . "attr=" . $this->unique_persistent_attr); debug($result); 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; } }
/** * @param ldap entry array $ldap_entry * * @return string user's PUID or permanent user id (within ldap), converted from binary, if applicable */ public function userPuidFromLdapEntry($ldap_entry) { if ($this->unique_persistent_attr && isset($ldap_entry[$this->unique_persistent_attr][0]) && is_scalar($ldap_entry[$this->unique_persistent_attr][0])) { $puid = $ldap_entry[$this->unique_persistent_attr][0]; return $this->unique_persistent_attr_binary ? ldap_servers_binary($puid) : $puid; } else { return FALSE; } }
/** * @param ldap entry array $ldap_entry * * @return string user's PUID or permanent user id (within ldap), converted from binary, if applicable */ public function userPuidFromLdapEntry($ldap_entry) { if ($this->unique_persistent_attr && isset($ldap_entry[$this->unique_persistent_attr][0]) && is_scalar($ldap_entry[$this->unique_persistent_attr][0])) { //$puid = $ldap_entry[$this->unique_persistent_attr][0]; //@todo:cristiroma, edw: $ldap_entry['dn'] is not array, but the actual DN string! $puid = $ldap_entry[$this->unique_persistent_attr]; return $this->unique_persistent_attr_binary ? ldap_servers_binary($puid) : $puid; } else { return FALSE; } }