/** * This function takes care of actually saving the user data into LDAP * @param String $userId * @param array $data */ protected function _saveUser($userId, $data) { if ($this->userExists($userId)) { $this->_ldap->update($this->_getDNForUserId($userId), $data); } else { $this->_ldap->add($this->_getDNForUserId($userId), $data); } return true; }
/** * Update record data in the backend with passed data object properties values * * @param t41_Data_Object $do * @return boolean */ public function update(ObjectModel\DataObject $do) { // Properties mapping (to array) if ($this->_mapper) { $data = $do->map($this->_mapper, $do->getClass()); } else { $data = $do->toArray(); } $data = $this->_unflattenArray($data); return (bool) $this->_ressource->update($do->getUri()->getIdentifier(), $data); }
protected function _updateUser($user, $newAttributes) { // Hackish, apparently LDAP gives us arrays even for single values? // So for now we assume arrays with only one value are single valued foreach ($user as $userKey => $userValue) { if (is_array($userValue) && count($userValue) === 1) { $user[$userKey] = $userValue[0]; } } if ($user[self::LDAP_ATTR_COLLAB_PERSON_HASH] === $this->_getCollabPersonHash($newAttributes)) { $now = date(DATE_RFC822); $newAttributes = $user + $newAttributes; $newAttributes[self::LDAP_ATTR_COLLAB_PERSON_LAST_ACCESSED] = $now; return $newAttributes; } $newAttributes[self::LDAP_ATTR_COLLAB_PERSON_HASH] = $this->_getCollabPersonHash($newAttributes); $now = date(DATE_RFC822); $newAttributes = array_merge($user, $newAttributes); $newAttributes[self::LDAP_ATTR_COLLAB_PERSON_LAST_ACCESSED] = $now; $newAttributes[self::LDAP_ATTR_COLLAB_PERSON_LAST_UPDATED] = $now; $dn = $this->_getDnForLdapAttributes($newAttributes); $this->_ldapClient->update($dn, $newAttributes); return $newAttributes; }
* * @var $this DbPatch_Command_Patch_PHP * @var $writer DbPatch_Core_Writer * @var $db Zend_Db_Adapter_Abstract * @var $phpFile string */ $ldapConfig = EngineBlock_ApplicationSingleton::getInstance()->getConfiguration()->ldap; $ldapOptions = array('host' => $ldapConfig->host, 'useSsl' => $ldapConfig->useSsl, 'username' => $ldapConfig->userName, 'password' => $ldapConfig->password, 'bindRequiresDn' => $ldapConfig->bindRequiresDn, 'accountDomainName' => $ldapConfig->accountDomainName, 'baseDn' => $ldapConfig->baseDn); $ldapClient = new Zend_Ldap($ldapOptions); $ldapClient->bind(); $writer->info("Retrieving all collabPerson entries from LDAP"); //$filter = '(&(objectclass=collabPerson))'; $filter = '(&(objectclass=collabPerson)(!(collabPersonUUID=*)))'; $users = $ldapClient->search($filter); while (count($users) > 0) { $writer->info("Retrieved " . count($users) . " users from LDAP"); foreach ($users as $user) { foreach ($user as $userKey => $userValue) { if (is_array($userValue) && count($userValue) === 1) { $user[$userKey] = $userValue[0]; } } $user['collabpersonuuid'] = (string) Surfnet_Zend_Uuid::generate(); $now = date(DATE_RFC822); $user['collabpersonlastupdated'] = $now; $dn = 'uid=' . $user['uid'] . ',o=' . $user['o'] . ',' . $ldapClient->getBaseDn(); $ldapClient->update($dn, $user); $writer->info("Set UUID '{$user['collabpersonuuid']}' for DN: '{$dn}'"); } $users = $ldapClient->search($filter); }