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();
}
Example #2
0
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>
';
}