<?php
$ROLE = "";

/**
 * Un utilisateur a demandé une création de compte.
 * Trois cas de figure se présentent :
 *  1) Le compte n'existe pas.
 *     Le système en crée un avec un mot de passe généré aléatoirement.
 *     Ce compte est en mode "désactivé".
 *     Un mail est envoyé à l'utilisateur pour lui dire que son compte
 *     est en cours de validation.
 *     Un autre mail est envoyé à Fabien pour lui dire qu'il vaut valider
 *     un compte (il y aura un lien dans le mail vers la page de gestion
 *     des comptes.
 *  2) Le compte existe mais est "désactivé".
 *     Un mail part vers l'utilisateur pour lui dire que son compte est en cours
 *     d'activation.
 *  3) Le compte existe et est "activé".
 *     Un mail est envoyé à l'utilisateur pour lui rappeler son mot de passe.
 */
function execService($input) {
  global $DB;

  $mailer = new TP3Mail();
  $mail = $input["mail"];
  // Vérifions si ce compte existe.
  $user = $DB->findUser($mail);
  if ($user) {
    // Le compte existe déjà.
    if ($user["enabled"]) {
      // 3) Le compte existe et est "activé".
      return $mailer->send( $mail,
                            "trail-passion.net : demande de création de compte / Account creation",
                            "<a href='#english'>English</a><hr/>"
                            . "Bonjour " . $user["name"] . "<br/>"
                            . "<p>Vous avez déjà un compte actif sur le site."
                            . "Voici vos identifiants :</p>"
                            . "<table border='0'>"
                            . "<tr><td>Utilisateur</td><td style='border:1px solid black'>"
                            . $mail
                            . "</td></tr>"
                            . "<tr><td>Mot de passe</td><td style='border:1px solid black'>"
                            . $user["password"]
                            . "</td></tr>"
                            . "</table>"
                            . "L'équipe de Trail-Passion.<hr/>"
                            "<a name='english'>Hi</a> " . $user["name"] . "<br/>"
                            "<p>You are still registrer on Trail-Passion:</p>"
                            . "<table border='0'>"
                            . "<tr><td>Login</td><td style='border:1px solid black'>"
                            . $mail
                            . "</td></tr>"
                            . "<tr><td>Password</td><td style='border:1px solid black'>"
                            . $user["password"]
                            . "</td></tr>"
                            . "</table>"
                            . "The Trail-Passion's team.");
      return 3;
    } else {
      // 2) Le compte existe mais est "désactivé".
      return $mailer->send( $mail,
                       "trail-passion.net : demande de création de compte",
                       "Bonjour " . $user["name"] . "<br/>"
                       . "<p>Votre compte est toujours en cours de validation.<br/>"
                       . "Je vais envoyer un mail de rappel à l'équipe qui doit s'en occupper.</p>"
                       . "L'équipe de Trail-Passion.");
      return 2;
    }
  }

  $name = trim($input["name"]);
  if ($name == "") {
    // Si aucun pseudo n'a été spécifié, on prend la première partie du mail.
    $name = explode("@", $mail);
    $name = $name[0];
  }
  $pwd = "" . rand(1000, 9999);
  for ($i=0 ; $i<3 ; $i++) {
    $pwd .= substr( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", rand( 0, 25 ), 1 );
  }
  $pwd .= rand(1000, 9999);

  $user = Array();
  $user["login"] = $mail;
  $user["password"] = $pwd;
  $user["enabled"] = 1;
  $user["name"] = $name;
  $user["roles"] = Array("USER");
  $DB->query("INSERT INTO " . $DB->table("user")
             . "(login, password, name, enabled, roles, data)"
             . "VALUES(?,?,?,?,?,?)",
             $mail,
             $pwd,
             $name,
             1,
             '["USER"]',
             "{}");

  $ok = $mailer->send( $mail,
                  "trail-passion.net : demande de création de compte / Account creation",
                  "<a href='#english'>English</a><hr/>"
                  . "Bonjour $name<br/>"
                  . "<p>Votre compte a été activé avec succès.<br/>"
                  . "Vous pouvez désormais vous connecter sur  "
                  . "<a href='http://beta.trail-passion.net'>Trail-Passion</a>.</p>"
                  . "<ul><li>Identifiant : <b><code>$mail</code></b></li>"
                  . "<li>Mot de passe : <b><code>$pwd</code></li></b></ul><br/>"
                  . "L'équipe de Trail-Passion.<hr/>"
                  . "<a name='english'>Hi</a> $name<br/>"
                  . "<p>Your account has been activated successfully.<br/>"
                  . "You can now connect on "
                  . "<a href='http://beta.trail-passion.net'>Trail-Passion</a>.</p>"
                  . "<ul><li>Login : <b><code>$mail</code></b></li>"
                  . "<li>Password : <b><code>$pwd</code></li></b></ul><br/>"
                  . "The Trail-Passion's team.",
                  "",
                  "contact@trail-passion.net",
                  "contact@trail-passion.net" );
  if ($ok) return 1;
  return 0;
}
?>