/**
  * /forgot_password/submit/ [POST]
  */
 public function submit($parameters)
 {
     if ($parameters) {
         $this->loadView('404');
     }
     if ($this->user_id) {
         header('Location: /admin/');
         exit;
     }
     if (!isset($_POST['email'])) {
         $_SESSION['message'] = array('message' => 'All fields are required.', 'status' => 'danger');
         header('Location: /forgot_password/');
         exit;
     }
     $user = new User($this->db);
     if (!$user->emailExists($_POST['email'])) {
         $_SESSION['message'] = array('message' => 'Email not found.', 'status' => 'danger');
         header('Location: /forgot_password/');
         exit;
     }
     $token = md5(uniqid(rand(), true));
     $user->insertTempForgotPassword($token, $_POST['email']);
     // send email to email with token
     echo '<a href="/reset_password/' . $token . '">' . $token . '</a>';
     die;
     $_SESSION['message'] = array('message' => 'Check your email for instructions.', 'status' => 'success');
     header('Location: /forgot_password/');
     exit;
 }
 /**
  * /signin/submit/ [POST]
  */
 public function submit($parameters)
 {
     if ($parameters) {
         $this->loadView('404');
     }
     if ($this->user_id) {
         header('Location: /admin/');
         exit;
     }
     if (!isset($_POST['email']) || !isset($_POST['password'])) {
         $_SESSION['message'] = array('message' => 'All fields are required.', 'status' => 'danger');
         header('Location: /signin/');
         exit;
     }
     $user = new User($this->db);
     $signin_attempt = $user->processSignin($_POST['email'], $_POST['password']);
     if (!$signin_attempt['status']) {
         $_SESSION['message'] = array('message' => $signin_attempt['message'], 'status' => 'danger');
         header('Location: /signin/');
         exit;
     }
     $_SESSION['user'] = $signin_attempt['user'];
     header('Location: /admin/');
     exit;
 }
 /**
  * /reset_password/submit/ [POST]
  */
 public function submit($parameters)
 {
     if ($parameters) {
         $this->loadView('404');
     }
     if ($this->user_id) {
         header('Location: /admin/');
         exit;
     }
     if (!isset($_POST['token'])) {
         header('Location: /signin/');
         exit;
     }
     if (!isset($_POST['password'])) {
         $_SESSION['message'] = array('message' => 'All fields must be completed.', 'status' => 'error');
         header('Location: /reset_password/' . $_POST['token']);
         exit;
     }
     $user = new User($this->db);
     $email = $user->getEmailFromForgotPasswordToken($_POST['token']);
     $user->processResetPassword($_POST['password'], $email);
     $_SESSION['message'] = array('message' => 'Password successfully reset.', 'status' => 'success');
     header('Location: /signin/');
     exit;
 }