function enforce_authentication($minClass = CONFIG_UC_USER) { login_session_refresh(); if (!user_is_logged_in()) { logout(); } if ($_SESSION['IID'] != $_SESSION['UIID'] && !verifySAGlobal()) { logout(); } if ($_SESSION['class'] < $minClass) { log_exception(new Exception('Class less than required')); logout(); } if (user_is_staff() && $_SESSION['fingerprint'] != get_fingerprint()) { logout(); } enforce_2fa(); }
function menu_management() { echo ' <div id="menu-management">'; if (verifySAGlobal()) { echo ' <div class="btn-group"> <button class="btn btn-warning dropdown-toggle btn-sm" data-toggle="dropdown">Instances <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="', CONFIG_SITE_ADMIN_URL, 'new_instance">Create Instance</a></li> <li><a href="', CONFIG_SITE_ADMIN_URL, 'list_instance">List Instances</a></li>', $_SESSION['IID'] != 0 ? '<li><a href="' . CONFIG_SITE_ADMIN_URL . 'actions/edit_instance.php?action=reset">RETURN TO ROOT INSTANCE</a></li>' : false, ' <li><a href="', CONFIG_SITE_ADMIN_URL, 'list_exceptions">List Exception Log</a></li> <li><a href="', CONFIG_SITE_URL, 'phpmyadmin">[MySQL] Access phpMyAdmin</a></li> </ul> </div>'; } echo ' <div class="btn-group"> <button class="btn btn-warning dropdown-toggle btn-sm" data-toggle="dropdown">News <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="', CONFIG_SITE_ADMIN_URL, 'new_news">Add news item</a></li> <li><a href="', CONFIG_SITE_ADMIN_URL, 'list_news">List news items</a></li> </ul> </div> <div class="btn-group"> <button class="btn btn-warning dropdown-toggle btn-sm" data-toggle="dropdown">Categories <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="', CONFIG_SITE_ADMIN_URL, 'new_category">Add category</a></li> <li><a href="', CONFIG_SITE_ADMIN_URL, '">List categories</a></li> </ul> </div> <div class="btn-group"> <button class="btn btn-warning dropdown-toggle btn-sm" data-toggle="dropdown">Challenges <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="', CONFIG_SITE_ADMIN_URL, 'new_challenge">Add challenge</a></li> <li><a href="', CONFIG_SITE_ADMIN_URL, '">List challenges</a></li> </ul> </div> <div class="btn-group"> <button class="btn btn-warning dropdown-toggle btn-sm" data-toggle="dropdown">Submissions <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="', CONFIG_SITE_ADMIN_URL, 'list_submissions?all=1">List all submissions</a></li> </ul> </div> <div class="btn-group"> <button class="btn btn-warning dropdown-toggle btn-sm" data-toggle="dropdown">Users <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="', CONFIG_SITE_ADMIN_URL, 'list_users">List users</a></li> </ul> </div> <div class="btn-group"> <button class="btn btn-warning dropdown-toggle btn-sm" data-toggle="dropdown">Hints <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="', CONFIG_SITE_ADMIN_URL, 'new_hint">New hint</a></li> <li><a href="', CONFIG_SITE_ADMIN_URL, 'list_hints">List hints</a></li> </ul> </div> <div class="btn-group"> <button class="btn btn-warning dropdown-toggle btn-sm" data-toggle="dropdown">Instance Settings <span class="caret"></span></button> <ul class="dropdown-menu"> <li><a href="', CONFIG_SITE_ADMIN_URL, 'edit_settings">Configure Settings</a></li> </ul> </div> </div> '; }