Vergleich admin/index.php - 1.6.10 - 1.6.11

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 91Zeile 91
if($mybb->input['action'] == "unlock")
{
$user = array();

if($mybb->input['action'] == "unlock")
{
$user = array();

 
	$error = '';

	if($mybb->input['username'])
{

	if($mybb->input['username'])
{

		$query = $db->simple_select("users", "*", "LOWER(username)='".$db->escape_string(my_strtolower($mybb->input['username']))."'");
















		$username = $db->escape_string(my_strtolower($mybb->input['username']));
switch($mybb->settings['username_method'])
{
case 0:
$query = $db->simple_select("users", "*", "LOWER(username)='".$username."'", array('limit' => 1));
break;
case 1:
$query = $db->simple_select("users", "*", "LOWER(email)='".$username."'", array('limit' => 1));
break;
case 2:
$query = $db->simple_select("users", "*", "LOWER(username)='".$username."' OR LOWER(email)='".$username."'", array('limit' => 1));
break;
default:
$query = $db->simple_select("users", "*", "LOWER(username)='".$username."'", array('limit' => 1));
break;
}

		$user = $db->fetch_array($query);
if(!$user['uid'])
{

		$user = $db->fetch_array($query);
if(!$user['uid'])
{

			$error[] = $lang->error_invalid_username;

			$error = $lang->error_invalid_username;

		}
}
else if($mybb->input['uid'])

		}
}
else if($mybb->input['uid'])

Zeile 105Zeile 121
		$query = $db->simple_select("users", "*", "uid='".intval($mybb->input['uid'])."'");
$user = $db->fetch_array($query);
if(!$user['uid'])

		$query = $db->simple_select("users", "*", "uid='".intval($mybb->input['uid'])."'");
$user = $db->fetch_array($query);
if(!$user['uid'])

		{
$error[] = $lang->error_invalid_uid;
}

		{
$error = $lang->error_invalid_uid;
}

	}

	}

	



	// Do we have the token? If so let's process it
if($mybb->input['token'] && $user['uid'])

	// Do we have the token? If so let's process it
if($mybb->input['token'] && $user['uid'])

	{		

	{

		$query = $db->simple_select("awaitingactivation", "COUNT(aid) AS num", "uid='".intval($user['uid'])."' AND code='".$db->escape_string($mybb->input['token'])."' AND type='l'");

		$query = $db->simple_select("awaitingactivation", "COUNT(aid) AS num", "uid='".intval($user['uid'])."' AND code='".$db->escape_string($mybb->input['token'])."' AND type='l'");

		



		// If we're good to go
if($db->fetch_field($query, "num") > 0)
{
$db->delete_query("awaitingactivation", "uid='".intval($user['uid'])."' AND code='".$db->escape_string($mybb->input['token'])."' AND type='l'");
$db->update_query("adminoptions", array('loginlockoutexpiry' => 0, 'loginattempts' => 0), "uid='".intval($user['uid'])."'");

		// If we're good to go
if($db->fetch_field($query, "num") > 0)
{
$db->delete_query("awaitingactivation", "uid='".intval($user['uid'])."' AND code='".$db->escape_string($mybb->input['token'])."' AND type='l'");
$db->update_query("adminoptions", array('loginlockoutexpiry' => 0, 'loginattempts' => 0), "uid='".intval($user['uid'])."'");

			



			admin_redirect("index.php");

			admin_redirect("index.php");

		}

		}

		else
{

		else
{

			$error[] = $lang->error_invalid_token;

			$error = $lang->error_invalid_token;

		}
}

		}
}

	
$default_page->show_lockout_unlock();


$default_page->show_lockout_unlock($error, 'error');

}
elseif($mybb->input['do'] == "login")

}
elseif($mybb->input['do'] == "login")

{	

{

	$user = validate_password_from_username($mybb->input['username'], $mybb->input['password']);
if($user['uid'])
{

	$user = validate_password_from_username($mybb->input['username'], $mybb->input['password']);
if($user['uid'])
{

Zeile 148Zeile 164
		}

$db->delete_query("adminsessions", "uid='{$mybb->user['uid']}'");

		}

$db->delete_query("adminsessions", "uid='{$mybb->user['uid']}'");

		



		$sid = md5(uniqid(microtime(true)));

		$sid = md5(uniqid(microtime(true)));

		



		// Create a new admin session for this user
$admin_session = array(
"sid" => $sid,

		// Create a new admin session for this user
$admin_session = array(
"sid" => $sid,

Zeile 167Zeile 183
		my_setcookie("adminsid", $sid);
my_setcookie('acploginattempts', 0);
$post_verify = false;

		my_setcookie("adminsid", $sid);
my_setcookie('acploginattempts', 0);
$post_verify = false;

	



		$mybb->request_method = "get";

		$mybb->request_method = "get";

		



		if(!empty($mybb->input['module']))
{
// $query_string should contain the module
$query_string = '?module='.htmlspecialchars_uni($mybb->input['module']);

		if(!empty($mybb->input['module']))
{
// $query_string should contain the module
$query_string = '?module='.htmlspecialchars_uni($mybb->input['module']);

			



			// Now we look for any paramters passed in $_SERVER['QUERY_STRING']
if($_SERVER['QUERY_STRING'])
{

			// Now we look for any paramters passed in $_SERVER['QUERY_STRING']
if($_SERVER['QUERY_STRING'])
{

Zeile 182Zeile 198
				$qstring = str_replace('action=logout', '', $qstring);
$qstring = preg_replace('#&+#', '&', $qstring);
$qstring = str_replace('?&', '?', $qstring);

				$qstring = str_replace('action=logout', '', $qstring);
$qstring = preg_replace('#&+#', '&', $qstring);
$qstring = str_replace('?&', '?', $qstring);

				



				// So what do we do? We know that parameters are devided by ampersands
// That means we must get to work!
$parameters = explode('&', $qstring);

				// So what do we do? We know that parameters are devided by ampersands
// That means we must get to work!
$parameters = explode('&', $qstring);

				



				// Remove our first member if it's for the module
if(substr($parameters[0], 0, 8) == '?module=')

				// Remove our first member if it's for the module
if(substr($parameters[0], 0, 8) == '?module=')

				{

				{

					unset($parameters[0]);
}

					unset($parameters[0]);
}

				



				foreach($parameters as $key => $param)
{
$params = explode("=", $param);

				foreach($parameters as $key => $param)
{
$params = explode("=", $param);

					



					$query_string .= '&'.htmlspecialchars_uni($params[0])."=".htmlspecialchars_uni($params[1]);
}
}

					$query_string .= '&'.htmlspecialchars_uni($params[0])."=".htmlspecialchars_uni($params[1]);
}
}

		



			admin_redirect("index.php".$query_string);
}
}
else
{

			admin_redirect("index.php".$query_string);
}
}
else
{

		$query = $db->simple_select("users", "uid,email", "LOWER(username) = '".$db->escape_string(my_strtolower($mybb->input['username']))."'");
















		$username = $db->escape_string(my_strtolower($mybb->input['username']));
switch($mybb->settings['username_method'])
{
case 0:
$query = $db->simple_select("users", "uid,email", "LOWER(username)='".$username."'", array('limit' => 1));
break;
case 1:
$query = $db->simple_select("users", "uid,email", "LOWER(email)='".$username."'", array('limit' => 1));
break;
case 2:
$query = $db->simple_select("users", "uid,email", "LOWER(username)='".$username."' OR LOWER(email)='".$username."'", array('limit' => 1));
break;
default:
$query = $db->simple_select("users", "uid,email", "LOWER(username)='".$username."'", array('limit' => 1));
break;
}

		$login_user = $db->fetch_array($query);

		$login_user = $db->fetch_array($query);

		



		if($login_user['uid'] > 0)
{
$db->update_query("adminoptions", array("loginattempts" => "loginattempts+1"), "uid='".intval($login_user['uid'])."'", 1, true);
}

		if($login_user['uid'] > 0)
{
$db->update_query("adminoptions", array("loginattempts" => "loginattempts+1"), "uid='".intval($login_user['uid'])."'", 1, true);
}

		



		$loginattempts = login_attempt_check_acp($login_user['uid'], true);

		$loginattempts = login_attempt_check_acp($login_user['uid'], true);

		



		// Have we attempted too many times?
if($loginattempts['loginattempts'] > 0)
{
// Have we set an expiry yet?
if($loginattempts['loginlockoutexpiry'] == 0)

		// Have we attempted too many times?
if($loginattempts['loginattempts'] > 0)
{
// Have we set an expiry yet?
if($loginattempts['loginlockoutexpiry'] == 0)

			{

			{

				$db->update_query("adminoptions", array("loginlockoutexpiry" => TIME_NOW+(intval($mybb->settings['loginattemptstimeout'])*60)), "uid='".intval($login_user['uid'])."'", 1);
}

				$db->update_query("adminoptions", array("loginlockoutexpiry" => TIME_NOW+(intval($mybb->settings['loginattemptstimeout'])*60)), "uid='".intval($login_user['uid'])."'", 1);
}

			
// Did we hit lockout for the first time? Send the unlock email to the administrator


// Did we hit lockout for the first time? Send the unlock email to the administrator

			if($loginattempts['loginattempts'] == $mybb->settings['maxloginattempts'])

			if($loginattempts['loginattempts'] == $mybb->settings['maxloginattempts'])

			{				

			{

				$db->delete_query("awaitingactivation", "uid='".intval($login_user['uid'])."' AND type='l'");
$lockout_array = array(
"uid" => $login_user['uid'],

				$db->delete_query("awaitingactivation", "uid='".intval($login_user['uid'])."' AND type='l'");
$lockout_array = array(
"uid" => $login_user['uid'],

Zeile 236Zeile 267
					"type" => "l"
);
$db->insert_query("awaitingactivation", $lockout_array);

					"type" => "l"
);
$db->insert_query("awaitingactivation", $lockout_array);

				



				$subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']);

				$subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']);

				$message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->input['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code']);

				$message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->input['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code'], $lockout_array['uid']);

				my_mail($login_user['email'], $subject, $message);
}

				my_mail($login_user['email'], $subject, $message);
}

			



			$default_page->show_lockedout();
}

			$default_page->show_lockedout();
}

		



		$fail_check = 1;
}
}

		$fail_check = 1;
}
}

Zeile 307Zeile 338
							break;
}
}

							break;
}
}

					



					// IP doesn't match properly - show message on logon screen
if(!$valid_ip)
{

					// IP doesn't match properly - show message on logon screen
if(!$valid_ip)
{

Zeile 321Zeile 352
}

if($mybb->input['action'] == "logout" && $mybb->user)

}

if($mybb->input['action'] == "logout" && $mybb->user)

{

{

	if(verify_post_check($mybb->input['my_post_key']))
{
$db->delete_query("adminsessions", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'");
my_unsetcookie('adminsid');
$logged_out = true;

	if(verify_post_check($mybb->input['my_post_key']))
{
$db->delete_query("adminsessions", "sid='".$db->escape_string($mybb->cookies['adminsid'])."'");
my_unsetcookie('adminsid');
$logged_out = true;

	}
}

	}
}


if(!isset($mybb->user['usergroup']))
{


if(!isset($mybb->user['usergroup']))
{

Zeile 346Zeile 377
	if(isset($mybb->user['uid']))
{
$uid = intval($mybb->user['uid']);

	if(isset($mybb->user['uid']))
{
$uid = intval($mybb->user['uid']);

	}

	}

	$db->delete_query("adminsessions", "uid = '{$uid}'");
unset($mybb->user);
my_unsetcookie('adminsid');

	$db->delete_query("adminsessions", "uid = '{$uid}'");
unset($mybb->user);
my_unsetcookie('adminsid');

Zeile 356Zeile 387
{
$query = $db->simple_select("adminoptions", "*", "uid='".$mybb->user['uid']."'");
$admin_options = $db->fetch_array($query);

{
$query = $db->simple_select("adminoptions", "*", "uid='".$mybb->user['uid']."'");
$admin_options = $db->fetch_array($query);

	



	if(!empty($admin_options['cpstyle']) && file_exists(MYBB_ADMIN_DIR."/styles/{$admin_options['cpstyle']}/main.css"))
{
$cp_style = $admin_options['cpstyle'];

	if(!empty($admin_options['cpstyle']) && file_exists(MYBB_ADMIN_DIR."/styles/{$admin_options['cpstyle']}/main.css"))
{
$cp_style = $admin_options['cpstyle'];

Zeile 370Zeile 401

// Fetch administrator permissions
$mybb->admin['permissions'] = get_admin_permissions($mybb->user['uid']);


// Fetch administrator permissions
$mybb->admin['permissions'] = get_admin_permissions($mybb->user['uid']);

}


}


// Include the layout generation class overrides for this style
if(file_exists(MYBB_ADMIN_DIR."/styles/{$cp_style}/style.php"))
{

// Include the layout generation class overrides for this style
if(file_exists(MYBB_ADMIN_DIR."/styles/{$cp_style}/style.php"))
{

Zeile 401Zeile 432

// Do not have a valid Admin user, throw back to login page.
if(!isset($mybb->user['uid']) || $logged_out == true)


// Do not have a valid Admin user, throw back to login page.
if(!isset($mybb->user['uid']) || $logged_out == true)

{	

{

	if($logged_out == true)

	if($logged_out == true)

	{

	{

		$page->show_login($lang->success_logged_out);
}
elseif($fail_check == 1)

		$page->show_login($lang->success_logged_out);
}
elseif($fail_check == 1)

Zeile 419Zeile 450
			die;
}
$page->show_login($login_message, "error");

			die;
}
$page->show_login($login_message, "error");

	}
}


	}
}


$page->add_breadcrumb_item($lang->home, "index.php");

// Begin dealing with the modules

$page->add_breadcrumb_item($lang->home, "index.php");

// Begin dealing with the modules

Zeile 434Zeile 465
	if(is_dir($modules_dir."/".$module) && !in_array($module, array(".", "..")) && file_exists($modules_dir."/".$module."/module_meta.php"))
{
require_once $modules_dir."/".$module."/module_meta.php";

	if(is_dir($modules_dir."/".$module) && !in_array($module, array(".", "..")) && file_exists($modules_dir."/".$module."/module_meta.php"))
{
require_once $modules_dir."/".$module."/module_meta.php";

		



		// Need to always load it for admin permissions / quick access
$lang->load($module."_module_meta", false, true);

		// Need to always load it for admin permissions / quick access
$lang->load($module."_module_meta", false, true);

		



		$has_permission = false;
if(function_exists($module."_admin_permissions"))

		$has_permission = false;
if(function_exists($module."_admin_permissions"))

		{

		{

			if(isset($mybb->admin['permissions'][$module]) || $is_super_admin == true)
{
$has_permission = true;

			if(isset($mybb->admin['permissions'][$module]) || $is_super_admin == true)
{
$has_permission = true;

Zeile 451Zeile 482
		{
$has_permission = true;
}

		{
$has_permission = true;
}

			



		// Do we have permissions to run this module (Note: home is accessible by all)
if($module == "home" || $has_permission == true)
{

		// Do we have permissions to run this module (Note: home is accessible by all)
if($module == "home" || $has_permission == true)
{

Zeile 498Zeile 529

$action_handler = $run_module."_action_handler";
$action_file = $action_handler($current_module[1]);


$action_handler = $run_module."_action_handler";
$action_file = $action_handler($current_module[1]);

 

// Set our POST validation code here
$mybb->post_code = generate_post_check();


if($run_module != "home")
{
check_admin_permissions(array('module' => $page->active_module, 'action' => $page->active_action));
}


if($run_module != "home")
{
check_admin_permissions(array('module' => $page->active_module, 'action' => $page->active_action));
}


// Set our POST validation code here
$mybb->post_code = generate_post_check();

// Only POST actions with a valid post code can modify information. Here we check if the incoming request is a POST and if that key is valid.


// Only POST actions with a valid post code can modify information. Here we check if the incoming request is a POST and if that key is valid.




$post_check_ignores = array(
"example/page" => array("action")
); // An array of modules/actions to ignore POST checks for.

$post_check_ignores = array(
"example/page" => array("action")
); // An array of modules/actions to ignore POST checks for.

Zeile 522Zeile 553
			$post_verify = false;
}
}

			$post_verify = false;
}
}

	



	if($post_verify == true)
{
// If the post key does not match we switch the action to GET and set a message to show the user

	if($post_verify == true)
{
// If the post key does not match we switch the action to GET and set a message to show the user