| 
<?php
 session_start();
 
 include_once 'config/config.php';
 
 if (isset($_SESSION)) {
 
 $username = isset($_SESSION['username']) ? $_SESSION['username'] : null;
 $data = null;
 
 if (!isset($_SESSION['user_role'])) {
 $_SESSION['user_role'] = 2;
 }
 
 if ($username != null) {
 if (isset($_SESSION['loggedin'])) {
 $data = $user->get($username);
 }
 
 if (!isset($_SESSION['current_ip'])) {
 $_SESSION['current_ip'] = $utils->sanitize($_SERVER['REMOTE_ADDR']);
 }
 
 if (!(isset($_SESSION['csrf']))) {
 $auth->generateSessionToken();
 }
 
 
 $_SESSION['user_id'] = $data->user_id;
 
 // Two Factor Authentication
 
 if ($user->isTwoFAEnabled($username) == true) {
 if (!isset($_SESSION['OTP']) || $_SESSION['OTP'] != true) {
 if (!strpos($current_url, "auth.php")) {
 $utils->redirect($utils->siteUrl("/auth.php"));
 }
 }
 }
 
 if (isset($_SESSION['isHuman'])) {
 if ($_SESSION['isHuman'] == false) {
 $utils->redirect($utils->siteUrl('/logout.php'));
 }
 }
 }
 
 
 if (!isset($_SESSION['user_id'])) {
 $_SESSION["user_id"] = hash("sha256", "user-" . session_id());
 }
 
 // Public Uploads handling
 
 if (!isset($_SESSION['loggedin'])) {
 if (!in_array(basename($_SERVER['PHP_SELF']), $allowed_pages)) {
 if (!$settings->getSettingValue("public_upload")) {
 $utils->redirect($utils->siteUrl('/login.php'));
 }
 }
 }
 
 if (strpos($current_url, "profile/")) {
 if (!isset($_SESSION['loggedin'])) {
 $utils->redirect($utils->siteUrl('/login.php'));
 }
 }
 
 // Refresh session id every 5 minutes
 
 if (!isset($_SESSION['last_token_refresh'])) {
 $_SESSION['last_token_refresh'] = time();
 session_regenerate_id(true);
 } else {
 if (time() - $_SESSION['last_token_refresh'] > 300) {
 $_SESSION['last_token_refresh'] = time();
 session_regenerate_id(true);
 }
 }
 }
 
 $language = $_GET['lang'] ?? $localization->getLanguage();
 $direction = $localization->getLanguageByCode($language)->language_direction;
 $theme = $_GET['theme'] ?? $_SESSION['theme'] ?? 'light';
 
 $dir = "dir=\"{$direction}\" lang=\"{$language}\"";
 
 if ($theme == 'dark') {
 $_SESSION['theme'] = 'dark';
 $theme = 'dark';
 } else {
 $_SESSION['theme'] = 'light';
 $theme = 'light';
 }
 
 $localization->setLanguage($language);
 $lang = $localization->loadLangauge($localization->getLanguage());
 
 $page = 'session';
 
 |