Vergleich admin/modules/home/preferences.php - 1.8.1 - 1.8.38

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 17Zeile 17
$page->add_breadcrumb_item($lang->preferences_and_personal_notes, "index.php?module=home-preferences");

$plugins->run_hooks("admin_home_preferences_begin");

$page->add_breadcrumb_item($lang->preferences_and_personal_notes, "index.php?module=home-preferences");

$plugins->run_hooks("admin_home_preferences_begin");

 

if($mybb->input['action'] == "recovery_codes")
{
$page->add_breadcrumb_item($lang->recovery_codes, "index.php?module=home-preferences&action=recovery_codes");

// First: regenerate the codes
$codes = generate_recovery_codes();
$db->update_query("adminoptions", array("recovery_codes" => $db->escape_string(my_serialize($codes))), "uid='{$mybb->user['uid']}'");

// And now display them
$page->output_header($lang->recovery_codes);

$table = new Table;
$table->construct_header($lang->recovery_codes);

$table->construct_cell("{$lang->recovery_codes_warning} <strong><a href=\"javascript:window.print()\">{$lang->print_recovery_codes}</a></strong>");
$table->construct_row();

$table->construct_cell(implode("<br />", $codes));
$table->construct_row();

$table->output($lang->recovery_codes);

$page->output_footer();
}


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


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

 
	require_once MYBB_ROOT."inc/3rdparty/2fa/GoogleAuthenticator.php";
$auth = new PHPGangsta_GoogleAuthenticator;


	$plugins->run_hooks("admin_home_preferences_start");

	$plugins->run_hooks("admin_home_preferences_start");





	if($mybb->request_method == "post")
{

	if($mybb->request_method == "post")
{

		$query = $db->simple_select("adminoptions", "permissions, defaultviews", "uid='{$mybb->user['uid']}'");

		$query = $db->simple_select("adminoptions", "permissions, defaultviews, authsecret, recovery_codes", "uid='{$mybb->user['uid']}'");

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

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

 

$secret = $adminopts['authsecret'];
// Was the option changed? empty = disabled so ==
if($mybb->input['2fa'] == empty($secret))
{
// 2FA was enabled -> create secret and log
if($mybb->input['2fa'])
{
$secret = $auth->createSecret();
// We don't want to close this session now
$db->update_query("adminsessions", array("authenticated" => 1), "sid='".$db->escape_string($mybb->cookies['adminsid'])."'");
log_admin_action("enabled");
}
// 2FA was disabled -> clear secret
else
{
$secret = "";
$adminopts['recovery_codes'] = "";
log_admin_action("disabled");
}
}


$sqlarray = array(
"notes" => $db->escape_string($mybb->input['notes']),


$sqlarray = array(
"notes" => $db->escape_string($mybb->input['notes']),

Zeile 34Zeile 83
			"permissions" => $db->escape_string($adminopts['permissions']),
"defaultviews" => $db->escape_string($adminopts['defaultviews']),
"uid" => $mybb->user['uid'],

			"permissions" => $db->escape_string($adminopts['permissions']),
"defaultviews" => $db->escape_string($adminopts['defaultviews']),
"uid" => $mybb->user['uid'],

			"codepress" => (int)$mybb->input['codepress'], // It's actually CodeMirror but for compatibility purposes lets leave it codepress



			"codepress" => $mybb->get_input('codepress', MyBB::INPUT_INT), // It's actually CodeMirror but for compatibility purposes lets leave it codepress
"authsecret" => $db->escape_string($secret),
"recovery_codes" => $db->escape_string($adminopts['recovery_codes']),

		);

$db->replace_query("adminoptions", $sqlarray, "uid");

		);

$db->replace_query("adminoptions", $sqlarray, "uid");





		$plugins->run_hooks("admin_home_preferences_start_commit");

flash_message($lang->success_preferences_updated, 'success');

		$plugins->run_hooks("admin_home_preferences_start_commit");

flash_message($lang->success_preferences_updated, 'success');

Zeile 55Zeile 106

$page->output_nav_tabs($sub_tabs, 'preferences');



$page->output_nav_tabs($sub_tabs, 'preferences');


	$query = $db->simple_select("adminoptions", "notes, cpstyle, cplanguage, codepress", "uid='".$mybb->user['uid']."'", array('limit' => 1));

	$query = $db->simple_select("adminoptions", "notes, cpstyle, cplanguage, codepress, authsecret", "uid='".$mybb->user['uid']."'", array('limit' => 1));

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

$form = new Form("index.php?module=home-preferences", "post");

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

$form = new Form("index.php?module=home-preferences", "post");

Zeile 67Zeile 118
		if($folder != "." && $folder != ".." && @file_exists(MYBB_ADMIN_DIR."/styles/$folder/main.css"))
{
$folders[$folder] = ucfirst($folder);

		if($folder != "." && $folder != ".." && @file_exists(MYBB_ADMIN_DIR."/styles/$folder/main.css"))
{
$folders[$folder] = ucfirst($folder);

		}

		}

	}
closedir($dir);
ksort($folders);

	}
closedir($dir);
ksort($folders);

	$setting_code = $form->generate_select_box("cpstyle", $folders, $admin_options['cpstyle']);

$languages = $lang->get_languages(1);


	$styles = array_merge(array('' => $lang->use_default), $folders);
$setting_code = $form->generate_select_box("cpstyle", $styles, $admin_options['cpstyle']);

$languages = array_merge(array('' => $lang->use_default), $lang->get_languages(1));

	$language_code = $form->generate_select_box("cplanguage", $languages, $admin_options['cplanguage']);


	$language_code = $form->generate_select_box("cplanguage", $languages, $admin_options['cplanguage']);


	$table = new Table;
$table->construct_header($lang->global_preferences);

$table->construct_cell("<strong>{$lang->acp_theme}</strong><br /><small>{$lang->select_acp_theme}</small><br /><br />{$setting_code}");
$table->construct_row();
















	$form_container = new FormContainer($lang->preferences);
$form_container->output_row_header($lang->global_preferences);
$form_container->output_row($lang->acp_theme, $lang->select_acp_theme, $setting_code);
$form_container->output_row($lang->acp_language, $lang->select_acp_language, $language_code);
$form_container->output_row($lang->codemirror, $lang->use_codemirror_desc, $form->generate_on_off_radio('codepress', $admin_options['codepress']));

// If 2FA is enabled we need to display a link to the recovery codes page
if(!empty($admin_options['authsecret']))
{
$lang->use_2fa_desc .= "<br />".$lang->recovery_codes_desc." ".$lang->recovery_codes_warning;
}
$form_container->output_row($lang->my2fa, $lang->use_2fa_desc, $form->generate_on_off_radio('2fa', (int)!empty($admin_options['authsecret'])));

if(!empty($admin_options['authsecret']))
{
$qr = $auth->getQRCodeGoogleUrl($mybb->user['username']."@AdminCP", $admin_options['authsecret'], str_replace(" ", "", $mybb->settings['bbname']));
$form_container->output_row($lang->my2fa_qr . "<br /><img src=\"{$qr}\"");
}

$form_container->end();





	$table->construct_cell("<strong>{$lang->acp_language}</strong><br /><small>{$lang->select_acp_language}</small><br /><br />{$language_code}");
$table->construct_row();

$table->construct_cell("<strong>{$lang->codemirror}</strong><br /><small>{$lang->use_codemirror_desc}</small><br /><br />".$form->generate_on_off_radio('codepress', $admin_options['codepress']));
$table->construct_row();

$table->output($lang->preferences);

	$table = new Table;








$table->construct_header($lang->notes_not_shared);



$table->construct_header($lang->notes_not_shared);


Zeile 103Zeile 164
	$form->end();

$page->output_footer();

	$form->end();

$page->output_footer();

 
}

/**
* Generate 10 random recovery codes, each with a length of 6 and without duplicates
*
* @return array
*/
function generate_recovery_codes()
{
$t = array();
while(count($t) < 10)
{
$g = random_str(6);
if(!in_array($g, $t))
{
$t[] = $g;
}
}
return $t;

}

}