Beispiel #1
0
 /**
  * Darse de baja
  * - Si no llega nada, mostrar formulario para que pongan el email de su cuenta
  * - Si llega post es una peticion, comprobar que el email que han puesto es válido
  *      si no es, dejarlos en el formulario y mensaje de error
  *      si es válido, enviar email con la url y mensaje de ok
  *
  * - Si llega un hash, verificar y dar de baja la cuenta (desactivar y ocultar)
  *
  * @param string $token     Codigo
  */
 public function leave($token = null)
 {
     // si el token mola, lo doy de baja
     if (!empty($token)) {
         $token = base64_decode($token);
         $parts = explode('¬', $token);
         if (count($parts) > 1) {
             $query = Model\User::query('SELECT id FROM user WHERE email = ? AND token = ?', array($parts[1], $token));
             if ($id = $query->fetchColumn()) {
                 if (!empty($id)) {
                     // el token coincide con el email y he obtenido una id
                     if (Model\User::cancel($id)) {
                         Message::Info(Text::get('leave-process-completed'));
                         throw new Redirection(SEC_URL . '/user/login');
                     } else {
                         Message::Error(Text::get('leave-process-fail'));
                         throw new Redirection(SEC_URL . '/user/login');
                     }
                 }
             }
         }
         $error = Text::get('leave-token-incorrect');
     }
     if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['leaving'])) {
         if (Model\User::leaving($_POST['email'], $_POST['reason'])) {
             $message = Text::get('leave-email-sended');
             unset($_POST['email']);
             unset($_POST['reason']);
         } else {
             $error = Text::get('leave-request-fail');
         }
     }
     return new View('view/user/leave.html.php', array('error' => $error, 'message' => $message));
 }