<?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';
|