Everything WebsiteSettings!

A lot has been changed, everything has been updated to use
WebsiteSettingsV2.

modified:   IsAliveCheck.php
modified:   globals/Dependencies/Games/Game.php
modified:   globals/Dependencies/Web/WebContextManager.php
modified:   globals/Dependencies/Web/WebsiteSettings.php
modified:   globals/config.php
modified:   globals/functions.php
modified:   html/asset/index.php
modified:   html/download.php
modified:   html/maintenance.php
modified:   html_admin/announcements.php
modified:   html_admin/client-deployer-upload.php
modified:   html_admin/client-deployer.php
modified:   html_admin/configuration.php
modified:
html_clientsettings/Setting/QuietGet/WindowsBootstrapperSettings.php
modified:   html_setup/BootstrapperSettings.php
modified:   html_setup/version.php
modified:   html_setup/versionQTStudio.php
modified:   html_versioncompatibility/GetAllowedMD5Hashes.php
modified:   html_versioncompatibility/GetAllowedSecurityKeys.php

There's gonna be massive changes with VersionCompatability also,
this involves new database tables, and new helpers, that will help
support:
- More client versions, security versions and client MD5 hashes at once
- Better management of versioning, it will automatically update the
  respected ClientSettingsApplicationBucket with the new version etc.
This commit is contained in:
Nikita Petko 2021-12-31 06:08:06 +00:00 committed by Github Enterprise
parent af4fa5a650
commit b08cc53828
19 changed files with 128 additions and 197 deletions

View File

@ -7,6 +7,7 @@ Alphaland 2021
//vars //vars
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
$thumbalive = false; $thumbalive = false;
$gamealive = false; $gamealive = false;
@ -19,18 +20,14 @@ function checkThumb($override)
{ {
if (!$GLOBALS['thumbalive'] or $override) //to prevent flooding mysql calls if (!$GLOBALS['thumbalive'] or $override) //to prevent flooding mysql calls
{ {
$GLOBALS['thumbalive'] = true; WebsiteSettings::UpdateSetting('isThumbnailerAlive', true);
$set = $GLOBALS['pdo']->prepare("UPDATE websettings SET isThumbnailerAlive = 1");
$set->execute();
} }
} }
else //thumb arbiter offline else //thumb arbiter offline
{ {
if ($GLOBALS['thumbalive'] or $override) //to prevent flooding mysql calls if ($GLOBALS['thumbalive'] or $override) //to prevent flooding mysql calls
{ {
$GLOBALS['thumbalive'] = false; WebsiteSettings::UpdateSetting('isThumbnailerAlive', false);
$set = $GLOBALS['pdo']->prepare("UPDATE websettings SET isThumbnailerAlive = 0");
$set->execute();
} }
} }
} }
@ -42,18 +39,14 @@ function checkGame($override)
{ {
if (!$GLOBALS['gamealive'] or $override) //to prevent flooding mysql calls if (!$GLOBALS['gamealive'] or $override) //to prevent flooding mysql calls
{ {
$GLOBALS['gamealive'] = true; WebsiteSettings::UpdateSetting('IsGameServerAlive', true);
$set = $GLOBALS['pdo']->prepare("UPDATE websettings SET IsGameServerAlive = 1");
$set->execute();
} }
} }
else //gameserver arbiter offline else //gameserver arbiter offline
{ {
if ($GLOBALS['gamealive'] or $override) //to prevent flooding mysql calls if ($GLOBALS['gamealive'] or $override) //to prevent flooding mysql calls
{ {
$GLOBALS['gamealive'] = false; WebsiteSettings::UpdateSetting('IsGameServerAlive', false);
$set = $GLOBALS['pdo']->prepare("UPDATE websettings SET IsGameServerAlive = 0");
$set->execute();
} }
} }
} }

View File

@ -8,6 +8,7 @@ namespace Alphaland\Games {
use Alphaland\Assets\Asset; use Alphaland\Assets\Asset;
use Alphaland\Grid\RccServiceHelper; use Alphaland\Grid\RccServiceHelper;
use Alphaland\Web\WebsiteSettings;
use Exception; use Exception;
use PDO; use PDO;
@ -230,12 +231,7 @@ namespace Alphaland\Games {
public static function ArbiterOnline() //the main portion of this check is now a background script public static function ArbiterOnline() //the main portion of this check is now a background script
{ {
$check = $GLOBALS['pdo']->prepare("SELECT COUNT(*) FROM websettings WHERE isGameServerAlive = 1"); return WebsiteSettings::GetSetting("isGameServerAlive");
$check->execute();
if ($check->fetchColumn() > 0) {
return true;
}
return false;
} }
public static function PersonalBuildRankToName($rank) public static function PersonalBuildRankToName($rank)

View File

@ -14,7 +14,7 @@ namespace Alphaland\Web {
public static function IsCurrentIpAddressWhitelisted() public static function IsCurrentIpAddressWhitelisted()
{ {
$currentIp = WebContextManager::GetCurrentIPAddress(); $currentIp = WebContextManager::GetCurrentIPAddress();
$ipWhitelist = explode(";", $GLOBALS['ws']->webservice_whitelist); $ipWhitelist = explode(";", WebsiteSettings::GetSetting("webservice_whitelist", "127.0.0.0/8;192.168.0.0/16;10.0.0.0/8"));
return in_array($currentIp, $ipWhitelist); return in_array($currentIp, $ipWhitelist);
} }
@ -26,13 +26,10 @@ namespace Alphaland\Web {
public static function IsUnderMaintenance(bool $status = false) public static function IsUnderMaintenance(bool $status = false)
{ {
$query = $GLOBALS['pdo']->prepare("SELECT * FROM `websettings` WHERE `maintenance` = 1"); $isUnderMaintenance = WebsiteSettings::GetSetting('maintenance');
$query->execute();
if ($query->rowCount() > 0) { if ($isUnderMaintenance === true) {
if ($status) { if ($status) return true;
return true;
}
return !WebContextManager::CanBypassMaintenance(); return !WebContextManager::CanBypassMaintenance();
} }
return false; return false;
@ -56,13 +53,8 @@ namespace Alphaland\Web {
if (!empty($accesskey)) if (!empty($accesskey))
{ {
if(WebContextManager::IsCurrentIpAddressWhitelisted()) if(WebContextManager::IsCurrentIpAddressWhitelisted())
{ return $accesskey == WebsiteSettings::GetSetting('webservice_key', null);
if($accesskey == $GLOBALS['ws']->webservice_key)
{
return true;
}
}
} }
return false; return false;
} }

View File

@ -15,7 +15,7 @@ namespace Alphaland\Web {
use PDO; use PDO;
/* public static */ class WebsiteSettings class WebsiteSettings
{ {
// default return if no settings are found // default return if no settings are found
// because there may be a NULL value in the database // because there may be a NULL value in the database
@ -84,7 +84,7 @@ namespace Alphaland\Web {
*/ */
public static function GetSetting(string $name, $default = null) public static function GetSetting(string $name, $default = null)
{ {
$query = $GLOBALS['pdo']->prepare("SELECT `value`, `type` FROM `websettings` WHERE `name` = :name"); $query = $GLOBALS['pdo']->prepare("SELECT `value`, `type` FROM `websettings_v2` WHERE `name` = :name");
$query->bindParam(':name', $name); $query->bindParam(':name', $name);
if (!$query->execute()) { if (!$query->execute()) {
@ -99,24 +99,6 @@ namespace Alphaland\Web {
return self::ConvertStringToValue($result['value'], $result['type']); return self::ConvertStringToValue($result['value'], $result['type']);
} }
/**
* Gets or sets the value of a website setting.
*
* @param string $name The name of the setting.
* @param mixed $value The value of the setting.
* @param string $type The type of the setting.
*
* @return mixed The value of the setting.
*/
public static function GetOrCreateSetting(string $name, $value = null, string $type = null)
{
if (!self::SettingExists($name)) {
self::UpdateSetting($name, $value, $type);
}
return self::GetSetting($name);
}
/** /**
* Sets a website setting. * Sets a website setting.
* *
@ -151,9 +133,9 @@ namespace Alphaland\Web {
$query = null; $query = null;
if ($remote === self::DOES_NOT_EXIST) { if ($remote === self::DOES_NOT_EXIST) {
$query = $GLOBALS['pdo']->prepare("INSERT INTO `websettings` (`name`, `value`, `type`) VALUES (:name, :value, :type)"); $query = $GLOBALS['pdo']->prepare("INSERT INTO `websettings_v2` (`name`, `value`, `type`) VALUES (:name, :value, :type)");
} else { } else {
$query = $GLOBALS['pdo']->prepare("UPDATE `websettings` SET `value` = :value, `type` = :type WHERE `name` = :name"); $query = $GLOBALS['pdo']->prepare("UPDATE `websettings_v2` SET `value` = :value, `type` = :type WHERE `name` = :name");
} }
if (gettype($value) === 'NULL') { if (gettype($value) === 'NULL') {
@ -179,7 +161,7 @@ namespace Alphaland\Web {
*/ */
public static function DeleteSetting(string $name): bool public static function DeleteSetting(string $name): bool
{ {
$query = $GLOBALS['pdo']->prepare("DELETE FROM `websettings` WHERE `name` = :name"); $query = $GLOBALS['pdo']->prepare("DELETE FROM `websettings_v2` WHERE `name` = :name");
$query->bindParam(':name', $name); $query->bindParam(':name', $name);
return $query->execute(); return $query->execute();
@ -192,7 +174,7 @@ namespace Alphaland\Web {
*/ */
public static function GetAllSettings(): array public static function GetAllSettings(): array
{ {
$query = $GLOBALS['pdo']->prepare("SELECT `name`, `value`, `type` FROM `websettings`"); $query = $GLOBALS['pdo']->prepare("SELECT `name`, `value`, `type` FROM `websettings_v2`");
if (!$query->execute()) { if (!$query->execute()) {
return []; return [];
@ -218,7 +200,7 @@ namespace Alphaland\Web {
*/ */
public static function SettingExists(string $name): bool public static function SettingExists(string $name): bool
{ {
$query = $GLOBALS['pdo']->prepare("SELECT `name` FROM `websettings` WHERE `name` = :name"); $query = $GLOBALS['pdo']->prepare("SELECT `name` FROM `websettings_v2` WHERE `name` = :name");
$query->bindParam(':name', $name); $query->bindParam(':name', $name);
if (!$query->execute()) { if (!$query->execute()) {
@ -237,7 +219,7 @@ namespace Alphaland\Web {
*/ */
public static function DeleteAllSettings(): bool public static function DeleteAllSettings(): bool
{ {
$query = $GLOBALS['pdo']->prepare("DELETE FROM `websettings`"); $query = $GLOBALS['pdo']->prepare("DELETE FROM `websettings_v2`");
return $query->execute(); return $query->execute();
} }

View File

@ -41,7 +41,7 @@ try
$siteName = "Alphaland"; //site name $siteName = "Alphaland"; //site name
$domain = "alphaland.cc"; $domain = "alphaland.cc";
$url = "https://www.".$domain; //site URL $url = "https://www.".$domain; //site URL
$ws = $pdo->query("SELECT * FROM websettings WHERE id = 1")->fetch(PDO::FETCH_OBJ); //websettings //websettings
$clientUserAgent = "Roblox/WinInet"; $clientUserAgent = "Roblox/WinInet";
$ROBLOXAssetAPI = "https://assetdelivery.roblox.com/v1/asset/?id="; $ROBLOXAssetAPI = "https://assetdelivery.roblox.com/v1/asset/?id=";
$ROBLOXProductInfoAPI = "https://api.roblox.com/marketplace/productinfo?assetId="; $ROBLOXProductInfoAPI = "https://api.roblox.com/marketplace/productinfo?assetId=";
@ -124,6 +124,7 @@ try
include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Administration/SignupKey.php"; include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Administration/SignupKey.php";
include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Economy/EconomyHelper.php"; include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Economy/EconomyHelper.php";
include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Groups/Group.php"; include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Groups/Group.php";
include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Web/WebsiteSettings.php";
//authenticator //authenticator
$authenticator = new PHPGangsta_GoogleAuthenticator(); $authenticator = new PHPGangsta_GoogleAuthenticator();

View File

@ -12,6 +12,7 @@ use Alphaland\Moderation\Filter;
use Alphaland\Users\Render as UsersRender; use Alphaland\Users\Render as UsersRender;
use Alphaland\Users\User; use Alphaland\Users\User;
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
//safe generation utilities //safe generation utilities
@ -1528,14 +1529,7 @@ function rewardUserBadge($UserID, $BadgeID, $PlaceID)
function isThumbnailerAlive() //the main portion of this check is now a background script function isThumbnailerAlive() //the main portion of this check is now a background script
{ {
$check = $GLOBALS['pdo']->prepare("SELECT * FROM websettings WHERE isThumbnailerAlive = 1"); return WebsiteSettings::GetSetting("isThumbnailerAlive");
$check->execute();
if ($check->rowCount() > 0)
{
return true;
}
return false;
} }
function verifyLuaValue($value) //mostly due to booleans, but maybe something will come up in the future function verifyLuaValue($value) //mostly due to booleans, but maybe something will come up in the future
@ -2536,22 +2530,18 @@ function userPlaceVisits($userid)
function enableMaintenance($custom) function enableMaintenance($custom)
{ {
if (!empty($custom)) { if (!empty($custom))
$setmaintenance = $GLOBALS['pdo']->prepare("UPDATE websettings SET maintenance = 1, maintenance_text = :t"); WebsiteSettings::UpdateSetting("maintenance_text", $custom);
$setmaintenance->bindParam(":t", $custom, PDO::PARAM_STR);
$setmaintenance->execute(); WebsiteSettings::UpdateSetting("maintenance", true);
} else {
$setmaintenance = $GLOBALS['pdo']->prepare("UPDATE websettings SET maintenance = 1");
$setmaintenance->execute();
}
soapCloseAllJobs($GLOBALS['gamesArbiter']); soapCloseAllJobs($GLOBALS['gamesArbiter']);
} }
function disableMaintenance() function disableMaintenance()
{ {
$setmaintenance = $GLOBALS['pdo']->prepare("UPDATE websettings SET maintenance = 0, maintenance_text = ''"); WebsiteSettings::UpdateSetting("maintenance", false);
$setmaintenance->execute(); WebsiteSettings::UpdateSetting("maintenance_text", "");
} }
function setUserRank($rank, $userid) function setUserRank($rank, $userid)
@ -3005,43 +2995,36 @@ function getNav()
function fetchAnnouncement() function fetchAnnouncement()
{ {
$announcementquery = $GLOBALS['pdo']->prepare("SELECT * FROM websettings"); $announcement = WebsiteSettings::GetSetting("announcement");
$announcementquery->execute();
$announcementquery = $announcementquery->fetch(PDO::FETCH_OBJ); if (empty($announcement)) return "";
$announcement = cleanOutput($announcementquery->announcement); //clean output
if (empty($announcementquery->announcement)) $cleanAnnouncement = cleanOutput($announcement); //clean output
$announcement_color = WebsiteSettings::GetSetting("announcement_color");
$html = "";
switch ($announcement_color)
{ {
return ""; case "red":
} $html = "<div style='margin:0 auto;Overflow:hidden;text-align: center' class='alert alert-danger' role='alert'>{$cleanAnnouncement}</div>";
else break;
{ case "green":
$html = ""; $html = "<div style='margin:0 auto;Overflow:hidden;text-align: center' class='alert alert-success' role='alert'>{$cleanAnnouncement}</div>";
if ($announcementquery->announcement_color == "red") break;
{ case "blue":
$html = "<div style='margin:0 auto;Overflow:hidden;text-align: center' class='alert alert-danger' role='alert'>{$announcement}</div>"; default:
} $html = "<div style='margin:0 auto;Overflow:hidden;text-align: center' class='alert alert-primary' role='alert'>{$cleanAnnouncement}</div>";
elseif ($announcementquery->announcement_color == "blue") break;
{
$html = "<div style='margin:0 auto;Overflow:hidden;text-align: center' class='alert alert-primary' role='alert'>{$announcement}</div>";
}
elseif ($announcementquery->announcement_color == "green")
{
$html = "<div style='margin:0 auto;Overflow:hidden;text-align: center' class='alert alert-success' role='alert'>{$announcement}</div>";
}
return $html;
} }
return $html;
} }
function canRegister() function canRegister()
{ {
$check = $GLOBALS['pdo']->prepare("SELECT * FROM websettings WHERE registration = 1"); return WebsiteSettings::GetSetting("registration", false);
$check->execute();
if($check->rowCount() > 0)
{
return true;
}
return false;
} }
function adminPanelStats() { function adminPanelStats() {

View File

@ -32,10 +32,6 @@ function ReturnAsset($hash, $assettypeid) //this determines which cdn to grab an
ReturnAssetFromHash($hash); ReturnAssetFromHash($hash);
} }
} }
$websettings = $pdo->prepare("SELECT * FROM websettings");
$websettings->execute();
$websettings = $websettings->fetch(PDO::FETCH_OBJ);
if ($id) if ($id)
{ {

View File

@ -1,8 +1,13 @@
<?php <?php
use Alphaland\Web\WebsiteSettings;
$alphalandVersion = WebsiteSettings::GetSetting("AlphalandVersion");
$alphalandStudioVersion = WebsiteSettings::GetSetting("AlphalandStudioVersion");
if (isset($_POST['SubmitClient'])) if (isset($_POST['SubmitClient']))
{ {
$loc = $GLOBALS['setupHtmlPath'].$ws->AlphalandVersion."-AlphalandLauncher.exe"; $loc = $GLOBALS['setupHtmlPath'].$alphalandVersion."-AlphalandLauncher.exe";
header("Content-type: application/octet-stream"); header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=AlphalandLauncher.exe"); header("Content-Disposition: attachment; filename=AlphalandLauncher.exe");
echo file_get_contents($loc); echo file_get_contents($loc);
@ -10,7 +15,7 @@ if (isset($_POST['SubmitClient']))
if (isset($_POST['SubmitStudio'])) if (isset($_POST['SubmitStudio']))
{ {
$loc = $GLOBALS['setupHtmlPath'].$ws->AlphalandStudioVersion."-AlphalandStudioLauncher.exe"; $loc = $GLOBALS['setupHtmlPath'].$alphalandStudioVersion."-AlphalandStudioLauncher.exe";
header("Content-type: application/octet-stream"); header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=AlphalandStudioLauncher.exe"); header("Content-Disposition: attachment; filename=AlphalandStudioLauncher.exe");
echo file_get_contents($loc); echo file_get_contents($loc);

View File

@ -1,25 +1,12 @@
<?php <?php
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
if (!WebContextManager::IsUnderMaintenance()) if (!WebContextManager::IsUnderMaintenance())
{
WebContextManager::Redirect("/"); WebContextManager::Redirect("/");
}
$websettings = $pdo->prepare("SELECT * FROM websettings"); $maintenance_text = WebsiteSettings::GetSetting('maintenance_text') ?? WebsiteSettings::GetSetting("default_maintenance_text");
$websettings->execute();
$websettings = $websettings->fetch(PDO::FETCH_OBJ);
$status = '';
if (!empty($websettings->maintenance_text))
{
$status = $websettings->maintenance_text; //use custom text
}
else
{
$status = $websettings->default_maintenance_text; //default maintenance text
}
$body = <<<EOT $body = <<<EOT
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
@ -54,8 +41,8 @@ body {
</style> </style>
<div class="container" style="flex-direction: column!important;justify-content: center!important;display: flex!important;"> <div class="container" style="flex-direction: column!important;justify-content: center!important;display: flex!important;">
<img style="max-width: 30rem;max-width: 30rem;margin-right: auto;margin-left: auto;" src="alphaland/cdn/imgs/alphaland-white-1024.png"> <img style="max-width: 30rem;max-width: 30rem;margin-right: auto;margin-left: auto;" src="alphaland/cdn/imgs/alphaland-white-1024.png">
<h1 style="text-align:center; ">{$status}</h1> <h1 style="text-align:center; ">{$maintenance_text}</h1>
</div> </div>
EOT; EOT;
echo $body; echo $body;

View File

@ -1,6 +1,7 @@
<?php <?php
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
WebContextManager::ForceHttpsCloudflare(); WebContextManager::ForceHttpsCloudflare();
@ -15,9 +16,8 @@ if (isset($_POST['setannouncement']))
{ {
if (empty($_POST['setannouncement'])) if (empty($_POST['setannouncement']))
{ {
//clear current announcement WebsiteSettings::UpdateSetting('announcement', "");
$setsecmd5 = $pdo->prepare('UPDATE websettings SET announcement = "", announcement_color = ""'); WebsiteSettings::UpdateSetting('announcement_color', "");
$setsecmd5->execute();
} }
else else
{ {
@ -47,10 +47,8 @@ if (isset($_POST['setannouncement']))
{ {
$color = "red"; $color = "red";
} }
$setsecmd5 = $pdo->prepare("UPDATE websettings SET announcement = :m, announcement_color = :c"); WebsiteSettings::UpdateSetting('announcement', $_POST['setannouncement']);
$setsecmd5->bindParam(":m", $_POST['setannouncement'], PDO::PARAM_STR); WebsiteSettings::UpdateSetting('announcement_color', $color);
$setsecmd5->bindParam(":c", $color, PDO::PARAM_STR);
$setsecmd5->execute();
} }
} }
} }

View File

@ -1,6 +1,7 @@
<?php <?php
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
WebContextManager::ForceHttpsCloudflare(); WebContextManager::ForceHttpsCloudflare();
@ -119,9 +120,9 @@ if ($pass) {
$previousdeployversion = ""; $previousdeployversion = "";
if ($deploytype == "client") { if ($deploytype == "client") {
$previousdeployversion = $ws->AlphalandVersion; $previousdeployversion = WebsiteSettings::GetSetting("AlphalandVersion");
} else if ($deploytype == "studio") { } else if ($deploytype == "studio") {
$previousdeployversion = $ws->AlphalandStudioVersion; $previousdeployversion = WebsiteSettings::GetSetting("AlphalandStudioVersion");
} }
//deploy type specific stuff //deploy type specific stuff
@ -168,17 +169,13 @@ if ($pass) {
//update in db //update in db
if ($deploytype == "client") { if ($deploytype == "client") {
$updatewebsettings = $pdo->prepare("UPDATE websettings SET AlphalandVersion = :av, security_version = :sv, md5_hash = :mh, GameFileVersion = :gv"); WebsiteSettings::UpdateSetting("AlphalandVersion", $newgameversion);
$updatewebsettings->bindParam(":av", $newgameversion, PDO::PARAM_STR); WebsiteSettings::UpdateSetting("security_version", $gamesecurityversion);
$updatewebsettings->bindParam(":sv", $gamesecurityversion, PDO::PARAM_STR); WebsiteSettings::UpdateSetting("md5_hash", $gamemd5hash);
$updatewebsettings->bindParam(":mh", $gamemd5hash, PDO::PARAM_STR); WebsiteSettings::UpdateSetting("GameFileVersion", $gamefileversion);
$updatewebsettings->bindParam(":gv", $gamefileversion, PDO::PARAM_STR);
$updatewebsettings->execute();
} else if ($deploytype == "studio") { } else if ($deploytype == "studio") {
$updatewebsettings = $pdo->prepare("UPDATE websettings SET AlphalandStudioVersion = :asv, StudioFileVersion = :sfv"); WebsiteSettings::UpdateSetting("AlphalandStudioVersion", $newgameversion);
$updatewebsettings->bindParam(":asv", $newgameversion, PDO::PARAM_STR); WebsiteSettings::UpdateSetting("StudioFileVersion", $gamefileversion);
$updatewebsettings->bindParam(":sfv", $gamefileversion, PDO::PARAM_STR);
$updatewebsettings->execute();
} }
//output the new version //output the new version

View File

@ -1,10 +1,11 @@
<?php <?php
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
WebContextManager::ForceHttpsCloudflare(); WebContextManager::ForceHttpsCloudflare();
if(!($user->IsOwner())) { if (!($user->IsOwner())) {
if ($user->IsAdmin()) { if ($user->IsAdmin()) {
WebContextManager::Redirect("/"); WebContextManager::Redirect("/");
} }
@ -13,11 +14,14 @@ if(!($user->IsOwner())) {
adminPanelStats(); adminPanelStats();
$alert = ''; $securityVersion = WebsiteSettings::GetSetting('security_version');
$md5Hash = WebsiteSettings::GetSetting('md5_hash');
$body = <<<EOT $gameFileVersion = WebsiteSettings::GetSetting('GameFileVersion');
$studioFileVersion = WebsiteSettings::GetSetting('StudioFileVersion');
$body = <<<EOT
<div class="container"> <div class="container">
{$alert}
<h5>Network Security Key Generator<h5> <h5>Network Security Key Generator<h5>
<h6>MAKE SURE TO DEPLOY RCC WITH UPDATED KEY</h6> <h6>MAKE SURE TO DEPLOY RCC WITH UPDATED KEY</h6>
<div class="row"> <div class="row">
@ -30,7 +34,7 @@ $alert = '';
<h6>Game Security Version</h6> <h6>Game Security Version</h6>
<div class="row marg-bot-15"> <div class="row marg-bot-15">
<div class="col-sm"> <div class="col-sm">
<input style="width:100%!important;" type="text" autocomplete="off" id="newgamesecurityversion" value="{$ws->security_version}" class="form-control"> <input style="width:100%!important;" type="text" autocomplete="off" id="newgamesecurityversion" value="{$securityVersion}" class="form-control">
</div> </div>
</div> </div>
<h6>Generated Security Key</h6> <h6>Generated Security Key</h6>
@ -75,19 +79,19 @@ $alert = '';
<h6>Game Executable Security Version</h6> <h6>Game Executable Security Version</h6>
<div class="row marg-bot-15"> <div class="row marg-bot-15">
<div class="col-sm"> <div class="col-sm">
<input style="width:100%!important;" type="text" autocomplete="off" id="gamesecurityver" value="{$ws->security_version}" class="form-control"> <input style="width:100%!important;" type="text" autocomplete="off" id="gamesecurityver" value="{$securityVersion}" class="form-control">
</div> </div>
</div> </div>
<h6>Game Executable MD5 Hash</h6> <h6>Game Executable MD5 Hash</h6>
<div class="row marg-bot-15"> <div class="row marg-bot-15">
<div class="col-sm"> <div class="col-sm">
<input style="width:100%!important;" type="text" autocomplete="off" id="gamemd5" value="{$ws->md5_hash}" class="form-control"> <input style="width:100%!important;" type="text" autocomplete="off" id="gamemd5" value="{$md5Hash}" class="form-control">
</div> </div>
</div> </div>
<h6>Game Executable Version (separated by '.')</h6> <h6>Game Executable Version (separated by '.')</h6>
<div class="row marg-bot-15"> <div class="row marg-bot-15">
<div class="col-sm"> <div class="col-sm">
<input style="width:100%!important;" type="text" autocomplete="off" id="gamefilever" value="{$ws->GameFileVersion}" class="form-control"> <input style="width:100%!important;" type="text" autocomplete="off" id="gamefilever" value="{$gameFileVersion}" class="form-control">
</div> </div>
</div> </div>
<h6>Game Launcher File Version (separated by ',') Ex:1, 2, 3, 4</h6> <h6>Game Launcher File Version (separated by ',') Ex:1, 2, 3, 4</h6>
@ -132,7 +136,7 @@ $alert = '';
<h6>Studio Executable Version (separated by '.')</h6> <h6>Studio Executable Version (separated by '.')</h6>
<div class="row marg-bot-15"> <div class="row marg-bot-15">
<div class="col-sm"> <div class="col-sm">
<input style="width:100%!important;" type="text" autocomplete="off" id="studiofilever" value="{$ws->StudioFileVersion}" class="form-control"> <input style="width:100%!important;" type="text" autocomplete="off" id="studiofilever" value="{$studioFileVersion}" class="form-control">
</div> </div>
</div> </div>
<h6>Studio Launcher File Version (separated by ',')</h6> <h6>Studio Launcher File Version (separated by ',')</h6>
@ -202,8 +206,8 @@ $alert = '';
EOT; EOT;
pageHandler(); pageHandler();
$ph->pagetitle = ""; $ph->pagetitle = "";
$ph->navbar = ""; $ph->navbar = "";
$ph->body = $body; $ph->body = $body;
$ph->footer = ""; $ph->footer = "";
$ph->output(); $ph->output();

View File

@ -1,6 +1,7 @@
<?php <?php
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
WebContextManager::ForceHttpsCloudflare(); WebContextManager::ForceHttpsCloudflare();
@ -17,15 +18,9 @@ adminPanelStats();
$devmode = false; $devmode = false;
////db queries ////db queries
$maintenancequery = $pdo->prepare("SELECT * FROM websettings WHERE maintenance = 1"); $isUnderMaitenance = WebsiteSettings::GetSetting('maintenance');
$maintenancequery->execute(); $rccKey = WebsiteSettings::GetSetting('webservice_key');
$ipWhitelist = WebsiteSettings::GetSetting("webservice_whitelist");
$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 ////end db queries
////Third party web queries ////Third party web queries
@ -127,43 +122,31 @@ if (isset($_POST['clearcachesubmit']))
if (isset($_POST['submitwskey'])) if (isset($_POST['submitwskey']))
{ {
$key = genHash(16); $key = genHash(16);
$setwskey = $pdo->prepare("UPDATE websettings SET webservice_key = :k"); WebsiteSettings::UpdateSetting("webservice_key", $key);
$setwskey->bindParam(":k", $key, PDO::PARAM_STR);
$setwskey->execute();
WebContextManager::Redirect("configuration"); WebContextManager::Redirect("configuration");
} }
if (isset($_POST['setwsipwhitelist'])) if (isset($_POST['setwsipwhitelist']))
{ {
$setwsip = $pdo->prepare("UPDATE websettings SET webservice_whitelist = :w"); WebsiteSettings::UpdateSetting("webservice_whitelist", $_POST['setwsipwhitelist']);
$setwsip->bindParam(":w", $_POST['setwsipwhitelist'], PDO::PARAM_STR);
$setwsip->execute();
WebContextManager::Redirect("configuration"); WebContextManager::Redirect("configuration");
} }
if (isset($_POST['cachingon'])) if (isset($_POST['cachingon']))
{ {
$setapprovals = $pdo->prepare("UPDATE websettings SET avatarCaching = 1"); WebsiteSettings::UpdateSetting("avatarCaching", true);
$setapprovals->execute();
WebContextManager::Redirect("configuration"); WebContextManager::Redirect("configuration");
} }
if (isset($_POST['cachingoff'])) if (isset($_POST['cachingoff']))
{ {
$setapprovals = $pdo->prepare("UPDATE websettings SET avatarCaching = 0"); WebsiteSettings::UpdateSetting("avatarCaching", false);
$setapprovals->execute();
WebContextManager::Redirect("configuration"); WebContextManager::Redirect("configuration");
} }
$maintenancestatus = ""; $maintenancestatus = '<b style="background-color:#c9c9c9;color:red;padding:2px;">OFF</b>';
if ($maintenancequery->rowCount() > 0) if ($isUnderMaitenance === true)
{
$maintenancestatus = '<b style="background-color:#c9c9c9;color:green;padding:2px;">ON</b>'; $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 = ""; $developmentmodestatus = "";
if ($devmode) if ($devmode)
@ -236,7 +219,7 @@ $body = <<<EOT
<div class="col-sm"> <div class="col-sm">
<div class="input-group mb-3"> <div class="input-group mb-3">
<form action="" method="post"> <form action="" method="post">
<input type="text" name="setwskey" class="form-control" value="{$websettings->webservice_key}" autocomplete="off" disabled> <input type="text" name="setwskey" class="form-control" value="{$rccKey}" autocomplete="off" disabled>
<div class="input-group-append"> <div class="input-group-append">
<button type="submit" name="submitwskey" class="btn btn-danger" type="button">Generate</button> <button type="submit" name="submitwskey" class="btn btn-danger" type="button">Generate</button>
</div> </div>
@ -262,7 +245,7 @@ $body = <<<EOT
</div> </div>
</form> </form>
<div class="container text-center marg-bot-15"> <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> <h6>Current Backend Whitelisted IP's: <hr><b style="background-color:#c9c9c9;color:red;padding:2px;">{$ipWhitelist}</b></h6>
</div> </div>
<hr> <hr>
</div> </div>

View File

@ -1,3 +1,7 @@
<?php <?php
echo '{"ExeVersion": "'.$ws->GameFileVersion.'", "ValidateInstalledExeVersion": "True", "ShowInstallSuccessPrompt": "True"}'; use Alphaland\Web\WebsiteSettings;
$gameFileVersion = WebsiteSettings::GetSetting('GameFileVersion');
echo '{"ExeVersion": "' . $gameFileVersion . '", "ValidateInstalledExeVersion": "True", "ShowInstallSuccessPrompt": "True"}';

View File

@ -1,3 +1,7 @@
<?php <?php
echo '{"ExeVersion": "'.$ws->GameFileVersion.'", "ValidateInstalledExeVersion": "True", "ShowInstallSuccessPrompt": "True"}'; use Alphaland\Web\WebsiteSettings;
$gameFileVersion = WebsiteSettings::GetSetting('GameFileVersion');
echo '{"ExeVersion": "' . $gameFileVersion . '", "ValidateInstalledExeVersion": "True", "ShowInstallSuccessPrompt": "True"}';

View File

@ -1,3 +1,5 @@
<?php <?php
echo $ws->AlphalandVersion; use Alphaland\Web\WebsiteSettings;
echo WebsiteSettings::GetSetting('AlphalandVersion');

View File

@ -1,3 +1,5 @@
<?php <?php
echo $ws->AlphalandStudioVersion; use Alphaland\Web\WebsiteSettings;
echo WebsiteSettings::GetSetting('AlphalandStudioVersion');

View File

@ -1,6 +1,7 @@
<?php <?php
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
if (!WebContextManager::VerifyAccessKeyHeader()) if (!WebContextManager::VerifyAccessKeyHeader())
{ {
@ -11,6 +12,6 @@ header('Content-Type: application/json');
echo json_encode(array( echo json_encode(array(
"data" => array( "data" => array(
$ws->md5_hash WebsiteSettings::GetSetting("md5_hash"),
) )
), JSON_UNESCAPED_SLASHES); ), JSON_UNESCAPED_SLASHES);

View File

@ -1,6 +1,7 @@
<?php <?php
use Alphaland\Web\WebContextManager; use Alphaland\Web\WebContextManager;
use Alphaland\Web\WebsiteSettings;
if (!WebContextManager::VerifyAccessKeyHeader()) if (!WebContextManager::VerifyAccessKeyHeader())
{ {
@ -11,6 +12,6 @@ header('Content-Type: application/json');
echo json_encode(array( echo json_encode(array(
"data" => array( "data" => array(
$ws->security_version WebsiteSettings::GetSetting("security_version"),
) )
), JSON_UNESCAPED_SLASHES); ), JSON_UNESCAPED_SLASHES);