Vergleich inc/datahandlers/login.php - 1.8.0 - 1.8.7

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 41Zeile 41
	 */
public $login_data = array();


	 */
public $login_data = array();


 
	/**
* @var bool
*/

	public $captcha_verified = true;

	public $captcha_verified = true;

	





/**
* @var bool|captcha
*/

	private $captcha = false;


	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;

		$user = &$this->data;





		if($check_captcha)
{
if(!isset($mybb->cookies['loginattempts']))

		if($check_captcha)
{
if(!isset($mybb->cookies['loginattempts']))

Zeile 61Zeile 75
			{
$this->captcha_verified = false;
$this->verify_captcha();

			{
$this->captcha_verified = false;
$this->verify_captcha();

			}
}
}





			}
}
}

/**
* @return bool
*/

	function verify_captcha()
{
global $db, $mybb;

	function verify_captcha()
{
global $db, $mybb;

Zeile 104Zeile 121
		}
}


		}
}


 
	/**
* @return bool
*/

	function verify_username()

	function verify_username()

	{
global $db, $mybb;

$user = &$this->data;
$username = $db->escape_string(my_strtolower($user['username']));

$query = $db->simple_select("users", "COUNT(*) as user", "LOWER(username) = '{$username}' OR LOWER(email) = '{$username}'", array('limit' => 1));

if($db->fetch_field($query, 'user') != 1)
{
$this->invalid_combination();
return false;
}

// Add username to data
$this->login_data['username'] = $username;
}

	{
$this->get_login_data();

if(!$this->login_data['uid'])
{
$this->invalid_combination();
return false;
}

return true;
}











 
	/**
* @param bool $strict
*
* @return bool
*/

	function verify_password($strict = true)
{

	function verify_password($strict = true)
{

		global $db, $mybb;



		global $db, $mybb, $plugins;

$this->get_login_data();


if(empty($this->login_data['username']))
{


if(empty($this->login_data['username']))
{

Zeile 133Zeile 154
			$this->invalid_combination();
return false;
}

			$this->invalid_combination();
return false;
}

 

$args = array(
'this' => &$this,
'strict' => &$strict,
);

$plugins->run_hooks('datahandler_login_verify_password_start', $args);


$user = &$this->data;


$user = &$this->data;

 


		$password = md5($user['password']);

		$password = md5($user['password']);

		$username = $this->login_data['username'];

$options = array(
'fields' => array('username', 'password', 'salt', 'loginkey', 'coppauser', 'usergroup')
);

$this->login_data = get_user_by_username($username, $options);

 

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 160Zeile 182
				$sql_array = array(
"salt" => $this->login_data['salt'],
"password" => $this->login_data['password']

				$sql_array = array(
"salt" => $this->login_data['salt'],
"password" => $this->login_data['password']

				);

$db->update_query("users", $sql_array, "uid = '{$this->login_data['uid']}'");
}

				);

$db->update_query("users", $sql_array, "uid = '{$this->login_data['uid']}'");
}


if(!$this->login_data['loginkey'])
{


if(!$this->login_data['loginkey'])
{

Zeile 179Zeile 201

$salted_password = md5(md5($this->login_data['salt']).$password);



$salted_password = md5(md5($this->login_data['salt']).$password);


		if($salted_password != $this->login_data['password'])



		$plugins->run_hooks('datahandler_login_verify_password_end', $args);

if($salted_password !== $this->login_data['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;





		// Don't show an error when the captcha was wrong!
if(!$this->captcha_verified)

		// Don't show an error when the captcha was wrong!
if(!$this->captcha_verified)

		{

		{

			return;
}


			return;
}


Zeile 204Zeile 233
				$logins = login_attempt_check(false) + 1;
$login_text = $lang->sprintf($lang->failed_login_again, $mybb->settings['failedlogincount'] - $logins);
}

				$logins = login_attempt_check(false) + 1;
$login_text = $lang->sprintf($lang->failed_login_again, $mybb->settings['failedlogincount'] - $logins);
}

		}


		}


		switch($mybb->settings['username_method'])
{
case 1:

		switch($mybb->settings['username_method'])
{
case 1:

Zeile 220Zeile 249
		}
}


		}
}


 
	function get_login_data()
{
global $db, $settings;

$user = &$this->data;

$options = array(
'fields' => array('uid', 'username', 'password', 'salt', 'loginkey', 'coppauser', 'usergroup', 'loginattempts'),
'username_method' => (int)$settings['username_method']
);

if($this->username_method !== null)
{
$options['username_method'] = (int)$this->username_method;
}

$this->login_data = get_user_by_username($user['username'], $options);
}

/**
* @return bool
*/

	function validate_login()
{
global $plugins, $mybb;

$user = &$this->data;

	function validate_login()
{
global $plugins, $mybb;

$user = &$this->data;





		$plugins->run_hooks('datahandler_login_validate_start', $this);


		$plugins->run_hooks('datahandler_login_validate_start', $this);


		$this->verify_attempts($mybb->settings['captchaimage']);




		if(!defined('IN_ADMINCP'))
{
$this->verify_attempts($mybb->settings['captchaimage']);
}


if(array_key_exists('username', $user))
{


if(array_key_exists('username', $user))
{

Zeile 251Zeile 305
		return true;
}


		return true;
}


 
	/**
* @return bool true
*/

	function complete_login()
{
global $plugins, $db, $mybb, $session;

	function complete_login()
{
global $plugins, $db, $mybb, $session;