query($query); if ($result->num_rows < 1) return false; return true; } function CheckCredentials($admun, $admpw) { return ($admun == System::GetConfigurationValue("Administration.UserName") && $admpw == System::GetConfigurationValue("Administration.Password")); } function IsAdministrator() { if (!isset($_SESSION["admun"]) || !isset($_SESSION["admpw"])) return false; $admun = $_SESSION["admun"]; $admpw = $_SESSION["admpw"]; return CheckCredentials($admun, $admpw); } System::$BeforeLaunchEventHandler = function($path) { if (!IsConfigured() && (!($path[0] == "setup"))) { System::Redirect("~/setup"); return true; } if (!IsAdministrator() && (!($path[0] == "account" && $path[1] == "login.page")) && (!($path[0] == "setup")) && (!($path[0] == "favicon.ico"))) { $path1 = implode("/", $path); $_SESSION["LoginRedirectURL"] = "~/" . $path1; System::Redirect("~/account/login.page"); return true; } return true; }; System::$Modules[] = new Module("net.Objectify.TenantManager.Default", array ( new ModulePage("", function($path) { $page = new WebPage(); $page->BeginContent(); $btng = new ButtonGroup("btng1"); $btng->Items[] = new ButtonGroupButton("btnDataCenters", "Data Centers", null, "~/Images/Buttons/DataCenters.png", "~/datacenter"); $btng->Items[] = new ButtonGroupButton("btnDataTypes", "Data Types", null, "~/Images/Buttons/DataTypes.png", "~/datatype"); $btng->Items[] = new ButtonGroupButton("btnTenantTypes", "Tenant Types", null, "~/Images/Buttons/TenantTypes.png", "~/tenanttype"); $btng->Items[] = new ButtonGroupButton("btnTenants", "Tenants", null, "~/Images/Buttons/Tenants.png", "~/tenant"); $btng->Items[] = new ButtonGroupButton("btnModules", "Modules", null, "~/Images/Buttons/Modules.png", "~/module"); $btng->Render(); $page->EndContent(); }), new ModulePage("debug", function($path) { global $MySQL; $page = new WebPage(); $page->BeginContent(); if (is_numeric($path[0])) { if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["action"] == "delete") { $query = "DELETE FROM " . System::GetConfigurationValue("Database.TablePrefix") . "DebugMessages WHERE message_ID = " . $path[0]; $result = $MySQL->query($query); System::Redirect("~/debug"); } else { $query = "SELECT * FROM " . System::$Configuration["Database.TablePrefix"] . "DebugMessages WHERE message_ID = " . $path[0]; $result = $MySQL->query($query); $values = $result->fetch_assoc(); echo("

Error Details

"); echo("

" . $values["message_Content"] . "

"); echo("

Parameters

"); echo(""); $query1 = "SELECT * FROM " . System::$Configuration["Database.TablePrefix"] . "DebugMessageParameters WHERE mp_MessageID = " . $values["message_ID"]; $result1 = $MySQL->query($query1); $count1 = $result1->num_rows; echo(""); echo(""); echo(""); echo(""); for ($j = 0; $j < $count1; $j++) { $values1 = $result1->fetch_assoc(); echo(""); echo(""); echo(""); echo(""); } echo("
NameValue
"); echo($values1["mp_Name"]); echo(""); echo($values1["mp_Value"]); echo("
"); echo("

Backtrace

"); echo(""); $query1 = "SELECT * FROM " . System::$Configuration["Database.TablePrefix"] . "DebugMessageBacktraces WHERE bt_MessageID = " . $values["message_ID"]; $result1 = $MySQL->query($query1); $count1 = $result1->num_rows; echo(""); echo(""); echo(""); echo(""); for ($j = 0; $j < $count1; $j++) { $values1 = $result1->fetch_assoc(); echo(""); echo(""); echo(""); echo(""); } echo("
File nameLine number
"); echo($values1["bt_FileName"]); echo(""); echo($values1["bt_LineNumber"]); echo("
"); echo("
"); echo("
"); echo(""); echo(""); echo("Back to Messages"); echo("
"); echo("
"); } } else { if ($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["action"] == "delete") { $query = "DELETE FROM " . System::GetConfigurationValue("Database.TablePrefix") . "DebugMessages"; $result = $MySQL->query($query); System::Redirect("~/debug"); } else { echo("
"); echo(""); echo(""); echo("
"); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); $query = "SELECT * FROM " . System::$Configuration["Database.TablePrefix"] . "DebugMessages"; $result = $MySQL->query($query); $count = $result->num_rows; for ($i = 0; $i < $count; $i++) { $values = $result->fetch_assoc(); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); } echo("
TenantSeverityMessageTimestampIP Address
"); $tenant = Tenant::GetByID($values["message_TenantID"]); if ($tenant != null) { echo("URL . "/") . "\">" . $tenant->URL . ""); } echo(""); switch ($values["message_SeverityID"]) { } echo(""); echo(""); echo($values["message_Content"]); echo(""); echo(""); echo($values["message_Timestamp"]); echo(""); echo($values["message_IPAddress"]); echo("
"); } } $page->EndContent(); return true; }), new ModulePage("account", array ( new ModulePage("login.page", function($path) { $page = new LoginPage(); if ($_SERVER["REQUEST_METHOD"] == "POST") { if (isset($_POST["user_LoginID"]) && isset($_POST["user_Password"])) { $admun = $_POST["user_LoginID"]; $admpw = $_POST["user_Password"]; if (CheckCredentials($admun, $admpw)) { $_SESSION["admun"] = $admun; $_SESSION["admpw"] = $admpw; if (isset($_SESSION["LoginRedirectURL"])) { System::Redirect($_SESSION["LoginRedirectURL"]); } else { System::Redirect("~/"); } return true; } else { $page->InvalidCredentials = true; } } } $page->Render(); return true; }), new ModulePage("logout.page", function($path) { $_SESSION["admun"] = null; $_SESSION["admpw"] = null; System::Redirect("~/"); return true; }) )), new ModulePage("tenant", array ( new ModulePage("", function($path) { $page = new MainPage(); $page->Render(); return true; }), new ModulePage("create", function($path) { if ($_SERVER["REQUEST_METHOD"] === "POST") { $tenant_URL = $_POST["tenant_URL"]; $tenant_Description = $_POST["tenant_Description"]; $tenant_DataCenters = array(); foreach ($_POST as $key => $value) { if (substr($key, 0, strlen("tenant_DataCenter_")) == "tenant_DataCenter_") { $id = substr($key, strlen("tenant_DataCenter_") + 1); $tenant_DataCenters[] = DataCenter::GetByID($id); } } $tenant_Status = ($_POST["tenant_Status"] == 1 ? TenantStatus::Enabled : TenantStatus::Disabled); $tenant_Type = TenantType::GetByID($_POST["tenant_TypeID"]); $tenant_PaymentPlan = PaymentPlan::GetByID($_POST["tenant_PaymentPlanID"]); $tenant_BeginTimestamp = ($_POST["tenant_BeginTimestampValid"] == "1" ? null : $_POST["tenant_BeginTimestamp"]); $tenant_EndTimestamp = ($_POST["tenant_EndTimestampValid"] == "1" ? null : $_POST["tenant_EndTimestamp"]); $retval = Tenant::Create($tenant_URL, $tenant_Description, $tenant_Status, $tenant_Type, $tenant_PaymentPlan, $tenant_BeginTimestamp, $tenant_EndTimestamp, $tenant_DataCenters); if ($retval == null) { global $MySQL; echo($MySQL->error . " (" . $MySQL->errno . ")"); } else { System::Redirect("~/tenant"); } } else { $page = new TenantPropertiesPage(); $page->Render(); return true; } }), new ModulePage("modify", function($path) { if ($_SERVER["REQUEST_METHOD"] === "POST") { $tenant_URL = $_POST["tenant_URL"]; $tenant = Tenant::GetByURL($path[0]); $tenant->URL = $_POST["tenant_URL"]; $tenant->Description = $_POST["tenant_Description"]; $tenant->Status = ($_POST["tenant_Status"] == 1 ? TenantStatus::Enabled : TenantStatus::Disabled); $tenant->Type = TenantType::GetByID($_POST["tenant_TypeID"]); $tenant->PaymentPlan = PaymentPlan::GetByID($_POST["tenant_PaymentPlanID"]); $tenant->BeginTimestamp = ($_POST["tenant_BeginTimestampValid"] == "1" ? null : $_POST["tenant_BeginTimestamp"]); $tenant->EndTimestamp = ($_POST["tenant_EndTimestampValid"] == "1" ? null : $_POST["tenant_EndTimestamp"]); $retval = $tenant->Update(); if (!$retval) { global $MySQL; echo($MySQL->error . " (" . $MySQL->errno . ")"); } else { System::Redirect("~/tenant"); } return true; } else { $page = new TenantPropertiesPage(); $page->Tenant = Tenant::GetByURL($path[0]); $page->Render(); return true; } }), new ModulePage("clone", function($path) { if ($_SERVER["REQUEST_METHOD"] === "POST") { $tenant_URL = $_POST["tenant_URL"]; $tenant_Description = $_POST["tenant_Description"]; $tenant_Status = ($_POST["tenant_Status"] == 1 ? TenantStatus::Enabled : TenantStatus::Disabled); $tenant_Type = TenantType::GetByID($_POST["tenant_TypeID"]); $tenant_PaymentPlan = PaymentPlan::GetByID($_POST["tenant_PaymentPlanID"]); $tenant_BeginTimestamp = ($_POST["tenant_BeginTimestampValid"] == "1" ? null : $_POST["tenant_BeginTimestamp"]); $tenant_EndTimestamp = ($_POST["tenant_EndTimestampValid"] == "1" ? null : $_POST["tenant_EndTimestamp"]); $retval = Tenant::Create($tenant_URL, $tenant_Description, $tenant_Status, $tenant_Type, $tenant_PaymentPlan, $tenant_BeginTimestamp, $tenant_EndTimestamp); if ($retval == null) { global $MySQL; echo($MySQL->error . " (" . $MySQL->errno . ")"); } else { System::Redirect("~/tenant"); } } else { $page = new TenantPropertiesPage(); $page->Tenant = Tenant::GetByURL($path[0]); $page->Render(); return true; } }), new ModulePage("delete", function($path) { if ($_SERVER["REQUEST_METHOD"] === "POST") { if ($_POST["Confirm"] == "1") { $tenant = Tenant::GetByURL($path[0]); if ($tenant->Delete()) { System::Redirect("~/tenant"); } else { global $MySQL; echo($MySQL->error . " (" . $MySQL->errno . ")"); } } } else { $page = new ConfirmOperationPage(); $page->ReturnButtonURL = "~/tenant"; $page->Message = "Are you sure you want to delete the tenant '" . $path[0] . "'? This action cannot be undone, and will destroy any and all data associated with that tenant."; $page->Render(); return true; } }), new ModulePage("manage", function($path) { if ($path[1] == "") { $tenant = Tenant::GetByURL($path[0]); if ($_SERVER["REQUEST_METHOD"] == "POST") { $properties = $tenant->GetProperties(); foreach ($properties as $property) { $tenant->SetPropertyValue($property, $_POST["Property_" . $property->ID]); } System::Redirect("~/tenant/manage/" . $path[0]); return true; } else { $page = new TenantManagementPage(); $page->Tenant = $tenant; $page->Render(); return true; } } else { switch ($path[1]) { case "modules": { $page = new TenantModuleManagementPage(); $page->Tenant = Tenant::GetByURL($path[0]); $page->Module = \Objectify\Objects\Module::GetByID($path[2]); $page->Render(); break; } case "objects": { if ($path[2] == "") { // $page = new TenantObjectBrowsePage(); // $page->CurrentTenant = Tenant::GetByURL($path[0]); // $page->Render(); } else { switch ($path[3]) { case "instances": { switch ($path[4]) { case "": { $tenant = Tenant::GetByURL($path[0]); $object = TenantObject::GetByID($path[2]); $page = new TenantObjectInstanceBrowsePage(); $page->CurrentTenant = $tenant; $page->CurrentObject = $object; $page->Render(); break; } } } case "methods": { switch ($path[4]) { case "static": { $tenant = Tenant::GetByURL($path[0]); $object = TenantObject::GetByID($path[2]); $method = TenantObjectMethod::GetByID($path[5]); if ($_SERVER["REQUEST_METHOD"] == "POST") { $method->CodeBlob = $_POST["method_CodeBlob"]; $method->Update(); System::Redirect("~/tenant/manage/" . $tenant->URL . "/objects/" . $object->ID); return true; } $page = new TenantObjectMethodManagementPage(); $page->CurrentTenant = $tenant; $page->CurrentObject = $object; $page->CurrentMethod = $method; $page->Render(); break; } case "instance": { $page = new TenantObjectMethodManagementPage(); $page->CurrentTenant = Tenant::GetByURL($path[0]); $page->CurrentObject = TenantObject::GetByID($path[2]); $page->CurrentMethod = TenantObjectInstanceMethod::GetByID($path[5]); $page->Render(); break; } } break; } case "": { $tenant = Tenant::GetByURL($path[0]); $object = TenantObject::GetByID($path[2]); if ($_SERVER["REQUEST_METHOD"] == "POST") { $count = $_POST["InstanceProperty_NewPropertyCount"]; for ($i = $count; $i > 0; $i--) { $name = $_POST["InstanceProperty_" . $i . "_Name"]; $dataType = DataType::GetByID($_POST["InstanceProperty_" . $i . "_DataTypeID"]); $defaultValue = $_POST["InstanceProperty_" . $i . "_DefaultValue"]; $object->CreateInstanceProperty(new TenantObjectInstanceProperty($name, $dataType, $defaultValue)); } System::Redirect("~/tenant/manage/" . $tenant->URL . "/objects/" . $object->ID); return true; } else { $page = new TenantObjectManagementPage(); $page->CurrentTenant = $tenant; $page->CurrentObject = $object; $page->Render(); } break; } } } break; } } } return true; }), new ModulePage("launch", function($path) { $tenant = Tenant::GetByURL($path[0]); header("Location: http://" . $tenant->DataCenters->Items[0]->HostName . "/" . $tenant->URL); }) )), new ModulePage("module", array ( new ModulePage("", function($path) { $page = new ModuleMainPage(); $page->Render(); return true; }), new ModulePage("modify", function($path) { $module = \Objectify\Objects\Module::GetByID($path[0], true); if ($_SERVER["REQUEST_METHOD"] == "POST") { $module->Title = $_POST["module_Title"]; $module->Description = $_POST["module_Description"]; $module->Update(); System::Redirect("~/module/modify/" . $path[0]); } else { $page = new ModuleManagementPage(); $page->Module = $module; $page->Render(); } return true; }) )), new ModulePage("datacenter", array ( new ModulePage("", function($path) { $page = new DataCenterMainPage(); $page->Render(); return true; }), new ModulePage("create", function($path) { $datacenter = new DataCenter(); if ($_SERVER["REQUEST_METHOD"] == "POST") { $datacenter->Title = $_POST["datacenter_Title"]; $datacenter->Description = $_POST["datacenter_Description"]; $datacenter->HostName = $_POST["datacenter_HostName"]; $datacenter->Update(); System::Redirect("~/datacenter"); } else { $page = new DataCenterManagementPage(); $page->DataCenter = null; $page->Render(); } return true; }), new ModulePage("modify", function($path) { $datacenter = DataCenter::GetByID($path[0]); if ($_SERVER["REQUEST_METHOD"] == "POST") { $datacenter->Title = $_POST["datacenter_Title"]; $datacenter->Description = $_POST["datacenter_Description"]; $datacenter->HostName = $_POST["datacenter_HostName"]; $datacenter->Update(); System::Redirect("~/datacenter/modify/" . $path[0]); } else { $page = new DataCenterManagementPage(); $page->DataCenter = $datacenter; $page->Render(); } return true; }) )) )); ?>