<commit_before><?php

class emailRelanceMotDePasseOublieTask extends sfBaseTask
{
  protected function configure()
  {
    // // add your own arguments here
    $this->addArguments(array(
    //   new sfCommandArgument('my_arg', sfCommandArgument::REQUIRED, 'My argument'),
    ));

    $this->addOptions(array(
      new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'civa'),
      new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'prod'),
      new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'default'),
      // add your own options here
    ));

    $this->namespace        = 'email';
    $this->name             = 'relance-mot-de-passe-oublie';
    $this->briefDescription = '';
    $this->detailedDescription = <<<EOF
The [emailRelanceMotDePasseOublieTask|INFO] task does things.
Call it with:

  [php symfony emailRelanceMotDePasseOublieTask|INFO]
EOF;
  }

  protected function execute($arguments = array(), $options = array())
  {
    set_time_limit('240');
    ini_set('memory_limit', '512M');
    
    // initialize the database connection
    $databaseManager = new sfDatabaseManager($this->configuration);
    $connection = $databaseManager->getDatabase($options['connection'])->getConnection();

    $nb_item = 0;
    $nb_email_send = 0;
    $comptes = sfCouchdbManager::getClient("_Compte")->getAll(sfCouchdbClient::HYDRATE_JSON);
    foreach ($comptes as $compte) {
        if ($compte->statut == "MOT_DE_PASSE_OUBLIE") {
            $this->logSection($compte->_id, $compte->email);
            $nb_item++;
            
            try {
              $this->getMailer()->composeAndSend(array("<EMAIL>" => "Webmaster Vinsalsace.pro"), 
                                               "<EMAIL>", 
                                               "CIVA - Mot de passe oublié", 
                                               $this->getMessageBody($compte));
              $nb_email_send++;

            } catch (Exception $exc) {
                
            }
        }
    }

    $this->logSection('Emails have been sended', sprintf('%d / %d envoyés', $nb_email_send,  $nb_item));
  }

  protected function getMessageBody($compte) {
      
      $lien = sfConfig::get('app_base_url') . $this->generateUrl("compte_mot_de_passe_oublie_login", array("login" => $compte->login, "mdp" => str_replace("{OUBLIE}", "", $compte->mot_de_passe)));
      $this->log($lien);
      return "Bonjour " . $compte->nom . ",
          
Vous avez effectué il y a peu une demande de mot de passe oublié, mais n'avez pas encore redéfini votre mot de passe.

Il est toujours possible de le faire en cliquant sur le lien suivant : " . $lien . "
    
Cordialement,

Le CIVA";
  }
  
  protected function generateUrl($route, $params = array(), $absolute = false)
  {<commit_msg>Modification de la tache de relance des mots de passe oublié<commit_after><?php

class emailRelanceMotDePasseOublieTask extends sfBaseTask
{
  protected function configure()
  {
    // // add your own arguments here
    $this->addArguments(array(
    //   new sfCommandArgument('my_arg', sfCommandArgument::REQUIRED, 'My argument'),
    ));

    $this->addOptions(array(
      new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'civa'),
      new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'prod'),
      new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'default'),
      // add your own options here
    ));

    $this->namespace        = 'email';
    $this->name             = 'relance-mot-de-passe-oublie';
    $this->briefDescription = '';
    $this->detailedDescription = <<<EOF
The [emailRelanceMotDePasseOublieTask|INFO] task does things.
Call it with:

  [php symfony emailRelanceMotDePasseOublieTask|INFO]
EOF;
  }

  protected function execute($arguments = array(), $options = array())
  {
    set_time_limit('240');
    ini_set('memory_limit', '512M');
    
    // initialize the database connection
    $databaseManager = new sfDatabaseManager($this->configuration);
    $connection = $databaseManager->getDatabase($options['connection'])->getConnection();

    $nb_item = 0;
    $nb_email_send = 0;
    $comptes = sfCouchdbManager::getClient("_Compte")->getAll(sfCouchdbClient::HYDRATE_JSON);
    foreach ($comptes as $compte) {
        if ($compte->statut == "MOT_DE_PASSE_OUBLIE") {
            $this->logSection($compte->_id, $compte->email);
            $nb_item++;
            
            try {
              $this->getMailer()->composeAndSend(array("<EMAIL>" => "Webmaster Vinsalsace.pro"), 
                                               $compte->email, 
                                               "CIVA - Mot de passe oublié", 
                                               $this->getMessageBody($compte));
              $nb_email_send++;

            } catch (Exception $exc) {
                
            }
        }
    }

    $this->logSection('Emails have been sended', sprintf('%d / %d envoyés', $nb_email_send,  $nb_item));
  }

  protected function getMessageBody($compte) {
      
      $lien = sfConfig::get('app_base_url') . $this->generateUrl("compte_mot_de_passe_oublie_login", array("login" => $compte->login, "mdp" => str_replace("{OUBLIE}", "", $compte->mot_de_passe)));
      $this->log($lien);
      return "Bonjour " . $compte->nom . ",
          
Vous avez effectué il y a peu une demande de mot de passe oublié, mais n'avez pas encore redéfini votre mot de passe.

Il est toujours possible de le faire en cliquant sur le lien suivant : " . $lien . "
    
Cordialement,

Le CIVA";
  }
  
  protected function generateUrl($route, $params = array(), $absolute = false)
  {
{'fraction_non_alphanumeric': 0.13504768392370572, 'fraction_numerical': 0.0027247956403269754, 'mean_word_length': 2.7455357142857144, 'pattern_counts': {'":': 0, '<': 14, '<?xml version=': 0, '>': 59, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7246759', 'n_tokens_mistral': 1805, 'n_tokens_neox': 1782, 'n_words': 384}