// You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <?php include 'utilityfunctions.php'; // Initialize a PHP session and register a variable to hold the // Server session id, then initialize the Web Extensions, // and connect to the Server, and create a session. MgInitializeWebTier($configFilePath); $site = new MgSite(); $site->Open(new MgUserInformation('Anonymous', '')); $sessionId = $site->CreateSession(); $webLayout = "Library://Samples/Sheboygan/Layouts/SheboyganPhp.WebLayout"; ?> <html> <head> <title>Viewer Sample Application</title> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> </head> <frameset rows="50,*" frameborder="NO" border="0" framespacing="0"> <frame src="title.html?AppName=AJAX" name="TitleFrame" scrolling="NO" noresize> <frame src="../mapviewerphp/ajaxviewer.php?SESSION=<?php echo $sessionId;
function EnumerateRoles2($paramSet) { try { $this->unitTestParamVm->Execute("Select ParamValue from Params WHERE ParamSet={$paramSet} AND ParamName=\"USER\""); $this->arrayParam["USER"] = $this->unitTestParamVm->GetString("ParamValue"); $this->unitTestParamVm->Execute("Select ParamValue from Params WHERE ParamSet={$paramSet} AND ParamName=\"LOGIN\""); $this->arrayParam['LOGIN'] = $this->unitTestParamVm->GetString("ParamValue") . ""; $this->unitTestParamVm->Execute("Select ParamValue from Params WHERE ParamSet={$paramSet} AND ParamName=\"PASSWORD\""); $this->arrayParam['PASSWORD'] = $this->unitTestParamVm->GetString("ParamValue") . ""; $userInfo = new MgUserInformation(); $userInfo->SetMgUsernamePassword($this->arrayParam['LOGIN'], $this->arrayParam['PASSWORD']); $userInfo->SetLocale("en"); $site2 = new MgSite(); $site2->Open($userInfo); $collection = $site2->EnumerateRoles($this->arrayParam['USER']); $site2->Close(); return new Result(Utils::MgStringCollectionToString($collection), "text/plain"); } catch (MgException $e) { return new Result(get_class($e), "text/plain"); } catch (SqliteException $s) { return new Result($s->GetExceptionMessage(), "text/plain"); } }
function SetupTestData() { global $adminUser; global $adminPass; global $user1User; global $user1Pass; global $user2User; global $user2Pass; global $userGroup; $webConfigPath = dirname(__FILE__) . "/../../webconfig.ini"; MgInitializeWebTier($webConfigPath); $mgp = dirname(__FILE__) . "/data/Sheboygan.mgp"; if (!file_exists($mgp)) { echo "Please put Sheboygan.mgp into the /data directory before running this test suite"; die; } if (!is_dir(dirname(__FILE__) . "/../conf/data/test_anonymous/")) { mkdir(dirname(__FILE__) . "/../conf/data/test_anonymous/"); } copy(dirname(__FILE__) . "/data/restcfg_anonymous.json", dirname(__FILE__) . "/../conf/data/test_anonymous/restcfg.json"); if (!is_dir(dirname(__FILE__) . "/../conf/data/test_author/")) { mkdir(dirname(__FILE__) . "/../conf/data/test_author/"); } copy(dirname(__FILE__) . "/data/restcfg_author.json", dirname(__FILE__) . "/../conf/data/test_author/restcfg.json"); if (!is_dir(dirname(__FILE__) . "/../conf/data/test_administrator/")) { mkdir(dirname(__FILE__) . "/../conf/data/test_administrator/"); } copy(dirname(__FILE__) . "/data/restcfg_administrator.json", dirname(__FILE__) . "/../conf/data/test_administrator/restcfg.json"); if (!is_dir(dirname(__FILE__) . "/../conf/data/test_wfsuser/")) { mkdir(dirname(__FILE__) . "/../conf/data/test_wfsuser/"); } copy(dirname(__FILE__) . "/data/restcfg_wfsuser.json", dirname(__FILE__) . "/../conf/data/test_wfsuser/restcfg.json"); if (!is_dir(dirname(__FILE__) . "/../conf/data/test_wmsuser/")) { mkdir(dirname(__FILE__) . "/../conf/data/test_wmsuser/"); } copy(dirname(__FILE__) . "/data/restcfg_wmsuser.json", dirname(__FILE__) . "/../conf/data/test_wmsuser/restcfg.json"); if (!is_dir(dirname(__FILE__) . "/../conf/data/test_group/")) { mkdir(dirname(__FILE__) . "/../conf/data/test_group/"); } copy(dirname(__FILE__) . "/data/restcfg_group.json", dirname(__FILE__) . "/../conf/data/test_group/restcfg.json"); if (!is_dir(dirname(__FILE__) . "/../conf/data/test_mixed/")) { mkdir(dirname(__FILE__) . "/../conf/data/test_mixed/"); } copy(dirname(__FILE__) . "/data/restcfg_mixed.json", dirname(__FILE__) . "/../conf/data/test_mixed/restcfg.json"); $source = new MgByteSource($mgp); $br = $source->GetReader(); $siteConn = new MgSiteConnection(); $userInfo = new MgUserInformation($adminUser, $adminPass); $siteConn->Open($userInfo); $site = new MgSite(); $site->Open($userInfo); //Set up any required users try { $site->AddGroup($userGroup, "Group for mapguide-rest test suite users"); } catch (MgException $ex) { } try { $site->AddUser($user1User, $user1User, $user1Pass, "Test user for mapguide-rest test suite"); } catch (MgException $ex) { } try { $site->AddUser($user2User, $user2User, $user2Pass, "Test user for mapguide-rest test suite"); } catch (MgException $ex) { } try { $groups = new MgStringCollection(); $users = new MgStringCollection(); $groups->Add($userGroup); $users->Add($user1User); $users->Add($user2User); $site->GrantGroupMembershipsToUsers($groups, $users); } catch (MgException $ex) { } $resSvc = $siteConn->CreateService(MgServiceType::ResourceService); $resSvc->ApplyResourcePackage($br); $srcId = new MgResourceIdentifier("Library://Samples/Sheboygan/Data/Parcels.FeatureSource"); $dstId = new MgResourceIdentifier("Library://RestUnitTests/Parcels.FeatureSource"); $resSvc->CopyResource($srcId, $dstId, true); $bsWriteable = new MgByteSource(dirname(__FILE__) . "/data/Parcels_Writeable.FeatureSource.xml"); $brWriteable = $bsWriteable->GetReader(); $resSvc->SetResource($dstId, $brWriteable, null); $rdsdfsource = new MgByteSource(dirname(__FILE__) . "/data/RedlineLayer.sdf"); $rdsdfrdr = $rdsdfsource->GetReader(); $resId = new MgResourceIdentifier("Library://RestUnitTests/RedlineLayer.FeatureSource"); $rdXml = '<?xml version="1.0"?><FeatureSource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd"><Provider>OSGeo.SDF</Provider><Parameter><Name>File</Name><Value>%MG_DATA_FILE_PATH%RedlineLayer.sdf</Value></Parameter></FeatureSource>'; $rdXmlSource = new MgByteSource($rdXml, strlen($rdXml)); $rdXmlRdr = $rdXmlSource->GetReader(); $resSvc->SetResource($resId, $rdXmlRdr, null); $resSvc->SetResourceData($resId, "RedlineLayer.sdf", MgResourceDataType::File, $rdsdfrdr); }
// Save session variables SaveSessionVars(); // Success - switch to ServerManagement page. header('Location: servermanagement.php?' . strip_tags(SID)); exit; } else { $siteInfo = GetSiteServerSelection($serverSelectionID); if ($siteInfo != NULL) { // Close the existing site connection if ($site != NULL) { $site->Close(); } // Determine the selected site $site = new MgSite(); // Create a connection to the selected site $site->Open($userInfo, $siteInfo); // Create a session $adminSession = $site->CreateSession(); $userInfo->SetMgSessionId($adminSession); // Save the session variables. All requests will now be directed to // our selected server since it hosts the current session. SaveSessionVars(); header('Location: servermanagement.php?' . strip_tags(SID)); exit; } } } } catch (MgConnectionFailedException $e) { $errorMsg = $errConnectionFailed; } catch (MgException $e) { $errorMsg = $errAuthenticationFailed;
function LoadSessionVars() { global $webConfigFile; global $adminSession; global $selectedUser; global $selectedGroup; global $selectedRole; global $selectedServer; global $selectedService; global $selectedLog; global $selectedPackage; global $selectedMapping; global $packageLoadErrorMsg; global $packageMakeErrorMsg; global $packageLoadConfirmationMsg; global $packageMakeConfirmationMsg; global $confirmationMsg; global $userInfo; global $clientAgent; global $clientIp; global $site; global $autoRefresh; global $autoRefreshFrequency; global $limitRefresh; global $numRecsToRefresh; global $popups; try { if (!array_key_exists('webConfigFile', $_SESSION)) { // if the user attempts to access a php page without logging in, // webConfigFile does not exist on the first load throw new AuthenticationFailedException("webConfigFile does not exist"); } // Load the current vals of session vars. $webConfigFile = $_SESSION['webConfigFile']; $adminSession = $_SESSION['adminSession']; $selectedUser = $_SESSION['selectedUser']; $selectedGroup = $_SESSION['selectedGroup']; $selectedRole = $_SESSION['selectedRole']; $selectedServer = $_SESSION['selectedServer']; $selectedService = $_SESSION['selectedService']; $selectedLog = $_SESSION['selectedLog']; $selectedPackage = $_SESSION['selectedPackage']; $selectedMapping = $_SESSION['selectedMapping']; $packageLoadErrorMsg = $_SESSION['packageLoadErrorMsg']; $packageMakeErrorMsg = $_SESSION['packageMakeErrorMsg']; $packageLoadConfirmationMsg = $_SESSION['packageLoadConfirmationMsg']; $packageMakeConfirmationMsg = $_SESSION['packageMakeConfirmationMsg']; $confirmationMsg = $_SESSION['confirmationMsg']; $clientAgent = $_SESSION['clientAgent']; $clientIp = $_SESSION['clientIp']; $autoRefresh = $_SESSION['autoRefresh']; $autoRefreshFrequency = $_SESSION['autoRefreshFrequency']; $limitRefresh = $_SESSION['limitRefresh']; $numRecsToRefresh = $_SESSION['numRecsToRefresh']; $popups = $_SESSION['popups']; if (empty($webConfigFile)) { // if the user attempts to access a php page without logging in, // webConfigFile is empty (on all loads after the first one) throw new AuthenticationFailedException("webConfigFile is empty"); } // Initialize web tier with the site configuration file. MgInitializeWebTier($webConfigFile); // Set up user info $userInfo = new MgUserInformation(); $userInfo->SetMgSessionId($adminSession); $userInfo->SetClientAgent($clientAgent); $userInfo->SetClientIp($clientIp); // Create a Site object and open the Site Server. $site = new MgSite(); $site->Open($userInfo); } catch (AuthenticationFailedException $e) { LogoutWithAuthenticationFailedException(); } catch (Exception $e) { LogoutWithFatalException(); } }