protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'])->getConnection(); $this->logSection('rdvz', "Retrieving users...") ; $ldap = new uapvLdap() ; $users = Doctrine::getTable('user')->retrieveLdapUsers() ; $this->logSection('rdvz', "Updating information...") ; foreach($users as $user) { $us = $ldap->searchOne(sfConfig::get('app_profile_var_translation_uid')."=".$user->getLdapId()) ; $user->setName($us[sfConfig::get('app_profile_var_translation_name')]) ; $user->setSurname($us[sfConfig::get('app_profile_var_translation_surname')]) ; $user->setMail($us[sfConfig::get('app_profile_var_translation_mail')]) ; $user->save(); } $this->logSection('rdvz', "Done.") ; }
/** * TODO: when PHP >= 5.3.0 will be used, rewrite this function * with __callStatic. * * Get all the LDAP entries the parameter attribute. * * @param $attr string * @param $query string * * @return array */ public static function getLdapEntriesBy($attr, $query) { $attr = strtolower($attr); if (is_null(sfConfig::get('app_profile_var_translation_' . $attr))) { throw new sfException('No profile_var_translation attribute : ' . $attr); } // We need to use uapvAuthPlugin here... $ldap = new uapvLdap(); return self::formatUsers($ldap->search(sfConfig::get('app_profile_var_translation_' . $attr) . "={$query}*"), 10); }
private function getUserFromDatabase($ldap_id) { $ldap = new uapvLdap(); $user = Doctrine::getTable('user')->retrieveByLdapId($ldap_id); if ($user === null) { $us = $ldap->searchOne(sfConfig::get('app_profile_var_translation_uid') . "={$ldap_id}"); $user = new user(); $user->setLdapId($ldap_id); $user->setName($us[sfConfig::get('app_profile_var_translation_name')]); $user->setSurname($us[sfConfig::get('app_profile_var_translation_surname')]); $user->setMail($us[sfConfig::get('app_profile_var_translation_mail')]); $user->save(); } return $user; }
/** * Says if the given mail is present in the LDAP. */ private function isMailFromLdap($mail) { $ldap = new uapvLdap(); $tmp = $ldap->search("mail={$mail}"); return empty($tmp) ? false : true; }