Ejemplo n.º 1
0
 /**
  * @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;
     }
 }
Ejemplo n.º 2
0
 /**
  * @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;
     }
 }
Ejemplo n.º 3
0
 /**
  * @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;
     }
 }