Portions created by the Initial Developer are Copyright (C) 2021-2025
the Initial Developer. All Rights Reserved.
*/
//includes files
require_once dirname(__DIR__, 2) . "/resources/require.php";
require_once "resources/check_auth.php";
//check permissions
if (permission_exists('dashboard_add') || permission_exists('dashboard_edit')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
$text = $language->get();
//set the defaults
$domain_uuid = '';
$dashboard_uuid = '';
$dashboard_name = '';
$dashboard_description = '';
//action add or update
if (!empty($_REQUEST["id"]) && is_uuid($_REQUEST["id"])) {
$action = "update";
$dashboard_uuid = $_REQUEST["id"];
$id = $_REQUEST["id"];
}
else {
$action = "add";
$domain_uuid = $_SESSION['domain_uuid'];
}
//get http post variables and set them to php variables
if (!empty($_POST)) {
$domain_uuid = permission_exists('dashboard_domain') ? $_POST["domain_uuid"] : $_SESSION['domain_uuid'];
$dashboard_name = $_POST["dashboard_name"] ?? '';
$dashboard_enabled = $_POST["dashboard_enabled"];
$dashboard_description = $_POST["dashboard_description"] ?? '';
//define the regex patterns
$uuid_pattern = '/[^-A-Fa-f0-9]/';
$number_pattern = '/[^-A-Za-z0-9()*#]/';
$text_pattern = '/[^a-zA-Z0-9 _\-\/.\?:\=#\n]/';
//sanitize the data
$domain_uuid = preg_replace($uuid_pattern, '', $domain_uuid);
$dashboard_name = trim($dashboard_name);
$dashboard_enabled = preg_replace($text_pattern, '', $dashboard_enabled);
$dashboard_description = preg_replace($text_pattern, '', $dashboard_description);
}
//process the user data and save it to the database
if (count($_POST) > 0 && empty($_POST["persistformvar"])) {
//validate the token
$token = new token;
if (!$token->validate($_SERVER['PHP_SELF'])) {
message::add($text['message-invalid_token'],'negative');
header('Location: dashboard.php');
exit;
}
//check for all required data
$msg = '';
//if (empty($dashboard_name)) { $msg .= $text['message-required']." ".$text['label-dashboard_name']."
\n"; }
//if (empty($dashboard_enabled)) { $msg .= $text['message-required']." ".$text['label-dashboard_enabled']."
\n"; }
//if (empty($dashboard_description)) { $msg .= $text['message-required']." ".$text['label-dashboard_description']."
\n"; }
if (!empty($msg) && empty($_POST["persistformvar"])) {
require_once "resources/header.php";
require_once "resources/persist_form_var.php";
echo "
| \n";
echo $msg." \n"; echo " |