} function IsModuleAuthenticationRequired($path) { switch ($path) { case "dashboard": case "world": return true; } return false; } System::$BeforeLaunchEventHandler = function ($path) { if ($path[0] == "images" || $path[0] == "StyleSheet.css" || $path[0] == "Script.js" || $path[0] == "account" && ($path[1] == "login.page" || $path[1] == "register.page")) { return true; } // ensure our tenant has not expired yet $tenant = Tenant::GetByURL(System::$TenantName); if ($tenant == null || $tenant->IsExpired()) { $page = new ErrorPage(); $page->Message = "The specified tenant does not exist. Please contact the site administrator to resolve this problem."; $page->Render(); return false; } if (!IsConfigured() && $path[0] != "setup") { System::Redirect("~/setup"); return false; } if (!IsValidUserOrGuest()) { System::Redirect("~/account/login.page"); return false; } if (!IsAuthenticated() && IsModuleAuthenticationRequired($path[0])) {
/** * Gets the currently active Tenant, if possible. * @return NULL|\PhoenixSNS\Objects\Tenant The currently active Tenant, or null if no Tenant is currently active. */ public static function GetCurrent() { if (System::$TenantName == "") { return null; } return Tenant::GetByURL(System::$TenantName); }
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 ($page, $path) { $tenant = Tenant::GetByURL($path[0]); header("Location: http://" . $tenant->DataCenters->Items[0]->HostName . "/" . $tenant->URL); })))));