fobe-web/html_admin/configuration.php

283 lines
8.8 KiB
PHP

<?php
use Alphaland\Web\WebContextManager;
WebContextManager::ForceHttpsCloudflare();
if(!($user->isOwner())) {
if ($user->isAdmin()) {
redirect("/");
}
die('bababooey');
}
adminPanelStats();
//global variables
$devmode = false;
////db queries
$maintenancequery = $pdo->prepare("SELECT * FROM websettings WHERE maintenance = 1");
$maintenancequery->execute();
$status = $pdo->prepare("SELECT * FROM websettings WHERE maintenance = 1");
$status->execute();
$websettings = $pdo->prepare("SELECT * FROM websettings");
$websettings->execute();
$websettings = $websettings->fetch(PDO::FETCH_OBJ);
////end db queries
////Third party web queries
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/6dea541960676cbb10231ce5c8035b4c/settings/development_mode');
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 30);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $cloudflareheader);
$curl_response = curl_exec($soap_do);
$result = json_decode($curl_response,true);
if ($result['result']['value'] == "on")
{
$devmode = true;
}
else
{
$devmode = false;
}
////end Third party web queries
//end queries
if(isset($_POST['maintenanceon']))
{
enableMaintenance($_POST['optionalmaintenancetext']);
redirect("configuration");
}
if(isset($_POST['maintenanceoff']))
{
disableMaintenance();
redirect("configuration");
}
if(isset($_POST['devmodeon']))
{
$content = '{"value":"on"}';
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/6dea541960676cbb10231ce5c8035b4c/settings/development_mode');
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 30);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST, true);
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $content);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $cloudflareheader);
$curl_response = curl_exec($soap_do);
redirect("configuration");
}
if(isset($_POST['devmodeoff']))
{
$content = '{"value":"off"}';
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/6dea541960676cbb10231ce5c8035b4c/settings/development_mode');
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 30);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST, true);
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $content);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $cloudflareheader);
$curl_response = curl_exec($soap_do);
redirect("configuration");
}
if (isset($_POST['clearcachesubmit']))
{
$content = '{"purge_everything":true}';
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, 'https://api.cloudflare.com/client/v4/zones/6dea541960676cbb10231ce5c8035b4c/purge_cache');
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 30);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST, true);
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $content);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $cloudflareheader);
$curl_response = curl_exec($soap_do);
redirect("configuration");
}
if (isset($_POST['submitwskey']))
{
$key = genHash(16);
$setwskey = $pdo->prepare("UPDATE websettings SET webservice_key = :k");
$setwskey->bindParam(":k", $key, PDO::PARAM_STR);
$setwskey->execute();
redirect("configuration");
}
if (isset($_POST['setwsipwhitelist']))
{
$setwsip = $pdo->prepare("UPDATE websettings SET webservice_whitelist = :w");
$setwsip->bindParam(":w", $_POST['setwsipwhitelist'], PDO::PARAM_STR);
$setwsip->execute();
redirect("configuration");
}
if (isset($_POST['cachingon']))
{
$setapprovals = $pdo->prepare("UPDATE websettings SET avatarCaching = 1");
$setapprovals->execute();
redirect("configuration");
}
if (isset($_POST['cachingoff']))
{
$setapprovals = $pdo->prepare("UPDATE websettings SET avatarCaching = 0");
$setapprovals->execute();
redirect("configuration");
}
$maintenancestatus = "";
if ($maintenancequery->rowCount() > 0)
{
$maintenancestatus = '<b style="background-color:#c9c9c9;color:green;padding:2px;">ON</b>';
}
else
{
$maintenancestatus = '<b style="background-color:#c9c9c9;color:red;padding:2px;">OFF</b>';
}
$developmentmodestatus = "";
if ($devmode)
{
$developmentmodestatus = '<b style="background-color:#c9c9c9;color:green;padding:2px;">ON</b>';
}
else
{
$developmentmodestatus = '<b style="background-color:#c9c9c9;color:red;padding:2px;">OFF</b>';
}
$body = <<<EOT
<div class="container text-center">
<h5>General Configuration</h5>
<div class="card" style="max-width: 38rem;margin: auto;">
<div class="card-body">
<form method="post">
<div class="row">
<div class="col-sm">
<div class="form-group marg-auto">
<h6>Maintenance ON/OFF</h6>
<div class="row marg-bot-15">
<div class="col-sm">
<div class="container">
<button type="submit" name="maintenanceon" style="width:15rem;" class="btn btn-lg btn-success marg-bot-15">ON</button>
</div>
</div>
<div class="col-sm">
<div class="container marg-bot-15">
<button type="submit" name="maintenanceoff" style="width:15rem;" class="btn btn-lg btn-danger">OFF</button>
</div>
</div>
</div>
<div class="row">
<div class="col-sm">
<div class="input-group mb-3">
<input type="text" name="optionalmaintenancetext" class="form-control" placeholder="Optional Override Text">
</div>
</div>
</div>
<h6 class="marg-bot-15">Maintenance is currently: {$maintenancestatus}</h6>
<hr>
<h6>Development Mode (no cache) ON/OFF</h6>
<div class="row marg-bot-15">
<div class="col-sm">
<div class="container">
<button type="submit" name="devmodeon" style="width:15rem;" class="btn btn-lg btn-success marg-bot-15">ON</button>
</div>
</div>
<div class="col-sm">
<div class="container marg-bot-15">
<button type="submit" name="devmodeoff" style="width:15rem;" class="btn btn-lg btn-danger">OFF</button>
</div>
</div>
</div>
<h6 class="marg-bot-15">Development Mode is currently: {$developmentmodestatus}</h6>
<hr>
<h6>Clear Cache</h6>
<div class="row marg-bot-15">
<div class="col-sm">
<div class="container">
<button type="submit" name="clearcachesubmit" style="width:15rem;" class="btn btn-lg btn-danger marg-bot-15">CLEAR</button>
</div>
</div>
</div>
<hr>
<form method="post">
<h6>Generate RCC Backend Key</h6>
<div class="row">
<div class="col-sm">
<div class="input-group mb-3">
<form action="" method="post">
<input type="text" name="setwskey" class="form-control" value="{$websettings->webservice_key}" autocomplete="off" disabled>
<div class="input-group-append">
<button type="submit" name="submitwskey" class="btn btn-danger" type="button">Generate</button>
</div>
</form>
</div>
</div>
</div>
</form>
<hr>
<form method="post">
<h6>Set Backend IP Whitelist</h6>
<div class="row">
<div class="col-sm">
<div class="input-group mb-3">
<form action="" method="post">
<input type="text" name="setwsipwhitelist" class="form-control" placeholder="WS IP">
<div class="input-group-append">
<button type="submit" class="btn btn-danger" type="button">Submit</button>
</div>
</form>
</div>
</div>
</div>
</form>
<div class="container text-center marg-bot-15">
<h6>Current Backend Whitelisted IP's: <hr><b style="background-color:#c9c9c9;color:red;padding:2px;">{$websettings->webservice_whitelist}</b></h6>
</div>
<hr>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
EOT;
pageHandler();
$ph->pagetitle = "";
$ph->navbar = "";
$ph->body = $body;
$ph->footer = "";
$ph->output();