$lockout_array = array("uid" => $mybb->user['uid'], "dateline" => TIME_NOW, "code" => random_str(), "type" => "l"); $db->insert_query("awaitingactivation", $lockout_array); $subject = $lang->sprintf($lang->locked_out_subject, $mybb->settings['bbname']); $message = $lang->sprintf($lang->locked_out_message, htmlspecialchars_uni($mybb->user['username']), $mybb->settings['bbname'], $mybb->settings['maxloginattempts'], $mybb->settings['bburl'], $mybb->config['admin_dir'], $lockout_array['code'], $lockout_array['uid']); my_mail($mybb->user['email'], $subject, $message); } log_admin_action(array('type' => 'admin_locked_out', 'uid' => $mybb->user['uid'], 'username' => $mybb->user['username'])); $page->show_lockedout(); } // Still here? Show a custom login page $page->show_login($lang->my2fa_failed, "error"); } } // Show our 2FA page if (!empty($admin_options['authsecret']) && $admin_session['authenticated'] != 1) { $page->show_2fa(); } $page->add_breadcrumb_item($lang->home, "index.php"); // Begin dealing with the modules $modules_dir = MYBB_ADMIN_DIR . "modules"; $dir = opendir($modules_dir); while (($module = readdir($dir)) !== false) { 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); $has_permission = false; if (function_exists($module . "_admin_permissions")) { if (isset($mybb->admin['permissions'][$module]) || $is_super_admin == true) { $has_permission = true; }