Nofu/public/index.php
2024-07-16 10:21:19 +02:00

105 lines
2.6 KiB
PHP

<?php
session_start();
require '../vendor/autoload.php';
use Symfony\Component\Yaml\Yaml;
use KTH\App;
use KTH\HTMLGenerator\HTMLGenerator;
use Login\Login;
use Utils\CsrfToken;
$defConfig['title'] = 'KT-HomePage';
$defConfig['desc'] = 'Dashboard de Knah Tsaeb';
$defConfig['favicon'] = 'assets/favicons/favicon-96x96.png';
$defConfig['noAuth'] = ['128.0.0.1'];
$defConfig['visibility'] = 'private';
$defConfig['colorScheme'] = 'dark';
$defConfig['view'] = 'full';
$breadcrumbs = '';
$KTH = new App();
$config = $KTH->getConfig($defConfig);
if (isset($_GET['logout'])) {
$logout = Login::logOut();
exit();
}
if ($config['visibility'] === 'private') {
if (!$KTH->canByPassAuth($defConfig['noAuth'])) {
if (!Login::isLogged()) {
if (file_exists('../data/users.yaml')) {
require('../template/default/login.php');
} else {
require('../template/default/register.php');
}
exit();
}
}
}
if (isset($_POST['settings'])) {
if (CsrfToken::validateToken($_POST['token'])) {
$KTH->saveUserConfig();
header("Location: /");
} else {
session_destroy();
header("Location: /");
}
exit();
}
if (isset($_POST['edit'])) {
if (CsrfToken::validateToken($_POST['token'])) {
$status = $KTH->saveServices();
if ($status['status'] === 'error') {
$error = $status['message'];
$content = $status['content'];
//header("Location: ?edit=1");
$_GET['edit']=1;
} else {
header("Location: /");
}
} else {
session_destroy();
header("Location: /");
}
}
if (isset($_GET['settings'])) {
require('../template/default/settings.php');
exit();
}
if (isset($_GET['edit'])) {
$services = $KTH->getServices();
require('../template/default/edit.php');
exit();
}
if (isset($_GET['editImg'])) {
require('../template/default/editImg.php');
exit();
}
if ($KTH->cacheExist()) {
echo file_get_contents('../cache/index.html');
} else {
$services = $KTH->getServices();
$generator = new HTMLGenerator($services);
$userDoc = $generator->genUserDoc();
$menuData = $KTH->makeMenu($services);
ob_start();
require('../template/default/header.php');
require('../template/default/titleBar.php');
require('../template/default/nav.php');
require('../template/default/content.php');
require('../template/default/footer.php');
$out = ob_get_contents();
file_put_contents('../cache/index.html', $out);
}