Exemplo n.º 1
0
 /**
  * @param string $value
  * @return bool
  */
 public function isValid($value)
 {
     $returnValue = false;
     $this->_setValue($value);
     $users = new Users();
     if (empty($value)) {
         $this->_error(self::EMPTYSTRING);
     } else {
         $user = $users->search("email", $value);
         if ($user !== null && !Login::loggedIn() || Login::loggedIn() && $user->userid !== $_SESSION['user']->userid) {
             $this->_error(self::USED);
             $returnValue = false;
         } else {
             $returnValue = parent::isValid($value);
         }
     }
     return $returnValue;
 }
Exemplo n.º 2
0
 /**
  * @param string $value
  * @return bool
  */
 public function isValid($value)
 {
     $this->_setValue($value);
     if (empty($value) || strlen($value) < 2 || strlen($value) > 20) {
         $this->_error(self::LENGTH);
         return false;
     }
     $users = new Users();
     $user = $users->search("username", $value);
     if ($user !== null && (Login::loggedIn() && $user->userid !== $_SESSION['user']->userid)) {
         $this->_error(self::USED);
         return false;
     }
     $status = preg_match('/^[A-Za-z0-9_.-]*$/', $value);
     if (false === $status || !$status) {
         $this->_error(self::INVALID);
         return false;
     }
     return true;
 }
Exemplo n.º 3
0
 /**
  *
  */
 public function reset()
 {
     $error_messages = [];
     $view = new ResetPassword();
     if (!empty($_POST)) {
         $users = new Users();
         $user = $users->search("email", $_POST['email']);
         if ($user !== null) {
             $tokendata = json_decode($user->password_token, true);
             if ($_POST['token'] == $tokendata['token']) {
                 if (time() - $tokendata["time"] > 1800) {
                     $this->errors["token"] = "The given token has expired! Every token is only valid for 30 minutes";
                 } else {
                     $validatePassword = new Password();
                     if (!$validatePassword->passwordValid($_POST['password'], $_POST['password_repeat'])) {
                         $this->errors["password"] = implode(',', $validatePassword->getMessages());
                         $this->errors["password_repeat"] = "";
                     } else {
                         $user->password = sha1($_POST['password'] . $user->salt);
                         $user->password_token = null;
                         $user->save();
                         new Message("Done!", "Your password was changed successfully! You can now login!", "success");
                         exit;
                     }
                 }
             } else {
                 $this->errors["token"] = "The given token is not correct!";
             }
         } else {
             $this->errors["email"] = "Email was not found in our system!";
         }
         $this->assignErrors($view, $error_messages);
         $view->show();
     } else {
         $view->show();
     }
 }
Exemplo n.º 4
0
 /**
  * @param bool $autologin
  * @return bool|null|\Zend_Db_Table_Row_Abstract
  */
 public static function checkAutoLogin($autologin = true)
 {
     if (!isset($_COOKIE['cunity-login']) || !isset($_COOKIE['cunity-login-token'])) {
         return false;
     }
     $users = new Users();
     $user = $users->search("username", base64_decode($_COOKIE['cunity-login']));
     if (md5($user->salt . "-" . $user->registered . "-" . $user->userhash) == $_COOKIE['cunity-login-token']) {
         if ($autologin) {
             $user->setLogin(true);
             header("Location:" . Url::convertUrl("index.php?m=profile"));
             exit;
         } else {
             return $user;
         }
     }
     return false;
 }
Exemplo n.º 5
0
 /**
  *
  */
 private function forgetPw()
 {
     if (!isset($_POST['resetPw'])) {
         $view = new ForgetPw();
         $view->render();
         exit;
     } else {
         $users = new Users();
         $user = $users->search("email", $_POST['email']);
         if ($user !== null) {
             $token = rand(123123, 999999);
             $user->password_token = json_encode(["token" => $token, "time" => time()]);
             $user->save();
             new ForgetPwMail(["name" => $user->username, "email" => $user->email], $token);
             new Message("Done!", "Please check your mails! We have sent you a token to reset your password!", "success");
             exit;
         }
     }
     $view = new ForgetPw();
     $view->assign("error", true);
     $view->render();
 }