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(); }
<?php require '../include/mellivora.inc.php'; login_session_refresh(); if (strlen(array_get($_GET, 'code')) != 2) { message_error(lang_get('please_supply_country_code')); } $country = db_select_one('countries', array('id', 'country_name', 'country_code'), array('country_code' => $_GET['code'])); if (!$country) { message_error(lang_get('please_supply_country_code')); } head($country['country_name']); if (cache_start(CONST_CACHE_NAME_COUNTRY . $_GET['code'], CONFIG_CACHE_TIME_COUNTRIES)) { section_head(htmlspecialchars($country['country_name']) . country_flag_link($country['country_name'], $country['country_code'], true), '', false); $scores = db_query_fetch_all(' SELECT u.id AS user_id, u.team_name, u.competing, co.id AS country_id, co.country_name, co.country_code, SUM(c.points) AS score, MAX(s.added) AS tiebreaker FROM users AS u LEFT JOIN countries AS co ON co.id = u.country_id LEFT JOIN submissions AS s ON u.id = s.user_id AND s.correct = 1 LEFT JOIN challenges AS c ON c.id = s.challenge WHERE u.competing = 1 AND co.id = :country_id GROUP BY u.id ORDER BY score DESC, tiebreaker ASC', array('country_id' => $country['id']));
function enforce_authentication($min_class = CONST_USER_CLASS_USER, $force_user_data_reload = false) { login_session_refresh($force_user_data_reload); if (!user_is_logged_in()) { logout(); } if ($_SESSION['class'] < $min_class) { log_exception(new Exception('Class less than required')); logout(); } if (user_is_staff() && $_SESSION['fingerprint'] != get_fingerprint()) { logout(); } enforce_2fa(); }