Zeile 41 | Zeile 41 |
---|
*/ public $login_data = array();
|
*/ public $login_data = array();
|
| /** * @var bool */
|
public $captcha_verified = true;
|
public $captcha_verified = true;
|
private $captcha = false;
| |
|
|
public $username_method = null;
| /** * @var bool|captcha */ private $captcha = false;
|
|
|
| /** * @var int */ public $username_method = null;
/** * @param int $check_captcha */
|
function verify_attempts($check_captcha = 0) { global $db, $mybb;
|
function verify_attempts($check_captcha = 0) { global $db, $mybb;
|
|
|
$user = &$this->data;
if($check_captcha)
| $user = &$this->data;
if($check_captcha)
|
Zeile 58 | Zeile 70 |
---|
if(!isset($mybb->cookies['loginattempts'])) { $mybb->cookies['loginattempts'] = 0;
|
if(!isset($mybb->cookies['loginattempts'])) { $mybb->cookies['loginattempts'] = 0;
|
}
| }
|
if($mybb->settings['failedcaptchalogincount'] > 0 && ($user['loginattempts'] > $mybb->settings['failedcaptchalogincount'] || (int)$mybb->cookies['loginattempts'] > $mybb->settings['failedcaptchalogincount'])) { $this->captcha_verified = false;
| if($mybb->settings['failedcaptchalogincount'] > 0 && ($user['loginattempts'] > $mybb->settings['failedcaptchalogincount'] || (int)$mybb->cookies['loginattempts'] > $mybb->settings['failedcaptchalogincount'])) { $this->captcha_verified = false;
|
Zeile 67 | Zeile 79 |
---|
} }
|
} }
|
| /** * @return bool */
|
function verify_captcha() { global $db, $mybb;
| function verify_captcha() { global $db, $mybb;
|
Zeile 74 | Zeile 89 |
---|
$user = &$this->data;
if($user['imagestring'] || $mybb->settings['captchaimage'] != 1)
|
$user = &$this->data;
if($user['imagestring'] || $mybb->settings['captchaimage'] != 1)
|
{
| {
|
// Check their current captcha input - if correct, hide the captcha input area require_once MYBB_ROOT.'inc/class_captcha.php'; $this->captcha = new captcha;
| // Check their current captcha input - if correct, hide the captcha input area require_once MYBB_ROOT.'inc/class_captcha.php'; $this->captcha = new captcha;
|
Zeile 106 | Zeile 121 |
---|
} }
|
} }
|
| /** * @return bool */
|
function verify_username()
|
function verify_username()
|
{
| {
|
$this->get_login_data();
|
$this->get_login_data();
|
|
|
if(!$this->login_data['uid']) { $this->invalid_combination(); return false; }
|
if(!$this->login_data['uid']) { $this->invalid_combination(); return false; }
|
| return true;
|
}
|
}
|
| /** * @param bool $strict * * @return bool */
|
function verify_password($strict = true) { global $db, $mybb, $plugins;
| function verify_password($strict = true) { global $db, $mybb, $plugins;
|
Zeile 138 | Zeile 163 |
---|
$plugins->run_hooks('datahandler_login_verify_password_start', $args);
$user = &$this->data;
|
$plugins->run_hooks('datahandler_login_verify_password_start', $args);
$user = &$this->data;
|
$password = md5($user['password']);
|
|
if(!$this->login_data['uid'] || $this->login_data['uid'] && !$this->login_data['salt'] && $strict == false)
|
if(!$this->login_data['uid'] || $this->login_data['uid'] && !$this->login_data['salt'] && $strict == false)
|
{
| {
|
$this->invalid_combination(); }
| $this->invalid_combination(); }
|
Zeile 151 | Zeile 174 |
---|
if(!$this->login_data['salt']) { // Generate a salt for this user and assume the password stored in db is a plain md5 password
|
if(!$this->login_data['salt']) { // Generate a salt for this user and assume the password stored in db is a plain md5 password
|
$this->login_data['salt'] = generate_salt(); $this->login_data['password'] = salt_password($this->login_data['password'], $this->login_data['salt']);
$sql_array = array( "salt" => $this->login_data['salt'], "password" => $this->login_data['password'] );
$db->update_query("users", $sql_array, "uid = '{$this->login_data['uid']}'");
| $password_fields = create_password($this->login_data['password']); $this->login_data = array_merge($this->login_data, $password_fields); $db->update_query("users", $password_fields, "uid = '{$this->login_data['uid']}'");
|
}
if(!$this->login_data['loginkey']) { $this->login_data['loginkey'] = generate_loginkey();
|
}
if(!$this->login_data['loginkey']) { $this->login_data['loginkey'] = generate_loginkey();
|
|
|
$sql_array = array( "loginkey" => $this->login_data['loginkey'] );
$db->update_query("users", $sql_array, "uid = '{$this->login_data['uid']}'"); }
|
$sql_array = array( "loginkey" => $this->login_data['loginkey'] );
$db->update_query("users", $sql_array, "uid = '{$this->login_data['uid']}'"); }
|
}
$salted_password = md5(md5($this->login_data['salt']).$password);
| }
|
$plugins->run_hooks('datahandler_login_verify_password_end', $args);
|
$plugins->run_hooks('datahandler_login_verify_password_end', $args);
|
if($salted_password != $this->login_data['password'])
| if(!verify_user_password($this->login_data, $user['password']))
|
{ $this->invalid_combination(true); return false; }
|
{ $this->invalid_combination(true); return false; }
|
| return true;
|
}
|
}
|
| /** * @param bool $show_login_attempts */
|
function invalid_combination($show_login_attempts = false) { global $db, $lang, $mybb;
| function invalid_combination($show_login_attempts = false) { global $db, $lang, $mybb;
|
Zeile 226 | Zeile 246 |
---|
$user = &$this->data;
$options = array(
|
$user = &$this->data;
$options = array(
|
'fields' => array('uid', 'username', 'password', 'salt', 'loginkey', 'coppauser', 'usergroup', 'loginattempts'),
| 'fields' => '*',
|
'username_method' => (int)$settings['username_method'] );
| 'username_method' => (int)$settings['username_method'] );
|
Zeile 238 | Zeile 258 |
---|
$this->login_data = get_user_by_username($user['username'], $options); }
|
$this->login_data = get_user_by_username($user['username'], $options); }
|
| /** * @return bool */
|
function validate_login() { global $plugins, $mybb;
| function validate_login() { global $plugins, $mybb;
|
Zeile 272 | Zeile 295 |
---|
return true; }
|
return true; }
|
| /** * @return bool true */
|
function complete_login() { global $plugins, $db, $mybb, $session;
| function complete_login() { global $plugins, $db, $mybb, $session;
|