Example #1
0
     $mybb->input['password'] = $mybb->get_input('quick_password');
     $mybb->input['username'] = $mybb->get_input('quick_username');
     $mybb->input['remember'] = $mybb->get_input('quick_remember');
 }
 $user = array('username' => $mybb->get_input('username'), 'password' => $mybb->get_input('password'), 'remember' => $mybb->get_input('remember'), 'imagestring' => $mybb->get_input('imagestring'));
 $options = array('fields' => 'loginattempts', 'username_method' => (int) $mybb->settings['username_method']);
 $user_loginattempts = get_user_by_username($user['username'], $options);
 $user['loginattempts'] = (int) $user_loginattempts['loginattempts'];
 $loginhandler->set_data($user);
 $validated = $loginhandler->validate_login();
 if (!$validated) {
     $mybb->input['action'] = "login";
     $mybb->request_method = "get";
     my_setcookie('loginattempts', $logins + 1);
     $db->update_query("users", array('loginattempts' => 'loginattempts+1'), "uid='" . (int) $loginhandler->login_data['uid'] . "'", 1, true);
     $errors = $loginhandler->get_friendly_errors();
     $user['loginattempts'] = (int) $loginhandler->login_data['loginattempts'];
     // If we need a captcha set it here
     if ($mybb->settings['failedcaptchalogincount'] > 0 && ($user['loginattempts'] > $mybb->settings['failedcaptchalogincount'] || (int) $mybb->cookies['loginattempts'] > $mybb->settings['failedcaptchalogincount'])) {
         $do_captcha = true;
         $correct = $loginhandler->captcha_verified;
     }
 } else {
     if ($validated && $loginhandler->captcha_verified == true) {
         // Successful login
         if ($loginhandler->login_data['coppauser']) {
             error($lang->error_awaitingcoppa);
         }
         $loginhandler->complete_login();
         $plugins->run_hooks("member_do_login_end");
         $mybb->input['url'] = $mybb->get_input('url');
 /**
  * Login procedure for a user + password
  * Possible ToDo: Return error messages / array / whatever
  *
  * @param string $username Username
  * @param string $password Password of User
  * @return boolean
  */
 public function login($username, $password)
 {
     $this->plugins->run_hooks("member_do_login_start");
     /**
      * If we are already logged in, we do not have to perform the login procedure
      */
     if ($this->isLoggedIn()) {
         return true;
     }
     // Is a fatal call if user has had too many tries
     $errors = array();
     $logins = login_attempt_check();
     require_once MYBB_ROOT . "inc/datahandlers/login.php";
     $loginhandler = new LoginDataHandler("get");
     $user = array('username' => $username, 'password' => $password, 'remember' => "yes", 'imagestring' => $captcha_string);
     $options = array('fields' => 'loginattempts', 'username_method' => (int) $this->mybb->settings['username_method']);
     $user_loginattempts = get_user_by_username($user['username'], $options);
     $user['loginattempts'] = (int) $user_loginattempts['loginattempts'];
     $loginhandler->set_data($user);
     $validated = $loginhandler->validate_login();
     if (!$validated) {
         $this->mybb->input['action'] = "login";
         $this->mybb->request_method = "get";
         my_setcookie('loginattempts', $logins + 1);
         $this->db->update_query("users", array('loginattempts' => 'loginattempts+1'), "uid='" . (int) $loginhandler->login_data['uid'] . "'", 1, true);
         $errors = $loginhandler->get_friendly_errors();
         $user['loginattempts'] = (int) $loginhandler->login_data['loginattempts'];
         // TODO: Force Captchas
         return false;
     } else {
         if ($validated && $loginhandler->captcha_verified == true) {
             // Successful login but requires captcha
             if ($loginhandler->login_data['coppauser']) {
                 //error($this->lang->error_awaitingcoppa);
                 return false;
             }
             $loginhandler->complete_login();
             $this->plugins->run_hooks("member_do_login_end");
             $this->mybb->session->init();
             // Saving login data in user, so isLoggedIn works without having to reload the page
             //$this->mybb->user = $loginhandler->login_data;
             //$this->mybb->user = get_user($loginhandler->login_data['uid']);
             // Required to be able to logout immediately after logging in
             // This line is located in class_session.php of mybb
             //$this->mybb->user['logoutkey'] = md5($this->mybb->user['loginkey']);
         }
     }
     $this->plugins->run_hooks("member_do_login_end");
     return true;
 }