/** * 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)); }