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.") ;
  }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
 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;
 }
예제 #4
0
 /**
  * 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;
 }