From b53802f358130d8cd18bc631af34167000bf075c Mon Sep 17 00:00:00 2001 From: rowan04 Date: Mon, 6 Mar 2023 13:40:35 +0000 Subject: [PATCH 01/42] Fix incorrect function call in config - there was a typo in Config.php when calling GetLocalInfoXML() - this fixes it --- lib/Gocdb_Services/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Gocdb_Services/Config.php b/lib/Gocdb_Services/Config.php index b7bd22328..80c9de109 100644 --- a/lib/Gocdb_Services/Config.php +++ b/lib/Gocdb_Services/Config.php @@ -552,7 +552,7 @@ public function getEmailFrom() public function getEmailTo() { - $emailTo = $this->GetlocalInfoXML()->email_to; + $emailTo = $this->GetLocalInfoXML()->email_to; return $emailTo; } From 6eb57be4dcf17871352c0c1e343ccc6a8bb6751d Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Mon, 23 Aug 2021 13:09:13 +0000 Subject: [PATCH 02/42] Load schema file once only inside constructor --- lib/Gocdb_Services/Validate.php | 72 ++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 33 deletions(-) diff --git a/lib/Gocdb_Services/Validate.php b/lib/Gocdb_Services/Validate.php index dc1d38464..531d4fd32 100644 --- a/lib/Gocdb_Services/Validate.php +++ b/lib/Gocdb_Services/Validate.php @@ -24,40 +24,47 @@ class Validate { const SCHEMA_XML = '/../../config/gocdb_schema.xml'; - /* Validates $Field_Value using validation settings from the GOCDB + function __construct() { + + # Load schema file + + $this->schemaXml = simplexml_load_file(__DIR__ . $this::SCHEMA_XML); + } + + /* Validates $fieldValue using validation settings from the GOCDB * - * Checks the particular object (specified by $Object_Name) for a field - * ($Field_Name) and gets the validation requirements for this field type. - * Returns a boolean value as to whether $Field_Value is valid for the field - * type specified in $Field_Name. + * Checks the particular object (specified by $objectName) for a field + * ($fieldName) and gets the validation requirements for this field type. + * Returns a boolean value as to whether $fieldValue is valid for the field + * type specified in $fieldName. */ - public function validate($Object_Name, $Field_Name, $Field_Value) + public function validate($objectName, $fieldName, $fieldValue) { //Check the length of the field value, if too long, throws exception - $this->checkFieldLength($Object_Name, $Field_Name, $Field_Value); + $this->checkFieldLength($objectName, $fieldName, $fieldValue); //Check the Type of the field value, where this is defined - $type = $this->Get_Field_value($Object_Name, $Field_Name, 'ftype'); + $type = $this->getFieldValue($objectName, $fieldName, 'ftype'); if (count($type) != 0) { if (strtolower($type) == "string") { - if (!is_string($Field_Value)) { - throw new \Exception($Field_Name . " must be a string."); + if (!is_string($fieldValue)) { + throw new \Exception($fieldName . " must be a string."); } } elseif (strtolower($type) == "boolean") { - if (!is_bool($Field_Value)) { - throw new \Exception($Field_Name . " must be a boolean."); + if (!is_bool($fieldValue)) { + throw new \Exception($fieldName . " must be a boolean."); } } else { throw new \Exception("Internal error: validation of data of type $type is not supported by the validation service"); } } - - $RegEx = $this->Get_Field_value($Object_Name, $Field_Name, 'regex'); - // If there are no checks to perform then $Field_Value must be valid - if(count($RegEx) == 0) + + $regEx = $this->getFieldValue($objectName, $fieldName, 'regex'); + // If there are no checks to perform then $fieldValue must be valid + if(count($regEx) == 0) return true; - if(!preg_match($RegEx, $Field_Value)) { + if(!preg_match($regEx, $fieldValue)) { return false; } @@ -69,7 +76,7 @@ public function validate($Object_Name, $Field_Name, $Field_Value) * @throws \Exception */ private function checkFieldLength($objectName, $fieldName, $fieldValue){ - $length = $this->Get_Field_value($objectName, $fieldName, 'length'); + $length = $this->getFieldValue($objectName, $fieldName, 'length'); if(!count($length) == 0){ //only check length if the schema has a length specified in it if(strlen($fieldValue)>$length or $length == 0){ @@ -83,37 +90,36 @@ private function checkFieldLength($objectName, $fieldName, $fieldValue){ * Format: $Checks[Check_Name] = $Check_Parameter * i.e. $Checks[Regular_Expression] = "[Y|N]" */ - private function Get_Field_value($Object_Name, $Field_Name, $valueType) + private function getFieldValue($objectName, $fieldName, $valueType) { - $Schema_XML = simplexml_load_file(__DIR__ . $this::SCHEMA_XML); - $Entity = $this->Find_Entity($Object_Name, $Schema_XML); - $Field = $this->Find_Field($Field_Name, $Entity); - return $Field->$valueType; + $entity = $this->findEntity($objectName, $this->schemaXml); + $field = $this->findField($fieldName, $entity); + return $field->$valueType; } - /* Search for the XML for $Object_Name within Schema XML + /* Search for the XML for $objectName within Schema XML * Throw an exeption if this isn't found. */ - private function Find_Entity($Object_Name, $Schema_XML) + private function findEntity($objectName, $schemaXml) { - foreach($Schema_XML->entity as $entity) + foreach($schemaXml->entity as $entity) { - if ((string) $entity->name == $Object_Name) { + if ((string) $entity->name == $objectName) { return $entity; } } - throw new \Exception("Object type: $Object_Name not found in schema XML"); + throw new \Exception("Object type: $objectName not found in schema XML"); } - private function Find_Field($Field_Name, $Entity) + private function findField($fieldName, $entity) { - foreach($Entity->field as $Field) + foreach($entity->field as $field) { - if(strtoupper((string) $Field->fname) == strtoupper($Field_Name)) { - return $Field; + if(strtoupper((string) $field->fname) == strtoupper($fieldName)) { + return $field; } } - throw new \Exception("Field Name: $Field_Name not found in schema XML"); + throw new \Exception("Field Name: $fieldName not found in schema XML"); } } From deab8c68c6224e0db6745db42c567338fe9507f2 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Wed, 8 Mar 2023 10:18:04 +0000 Subject: [PATCH 03/42] Standard code formatting --- lib/Gocdb_Services/Validate.php | 51 +++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/lib/Gocdb_Services/Validate.php b/lib/Gocdb_Services/Validate.php index 531d4fd32..03eaf332d 100644 --- a/lib/Gocdb_Services/Validate.php +++ b/lib/Gocdb_Services/Validate.php @@ -1,5 +1,7 @@ getFieldValue($objectName, $fieldName, 'ftype'); if (count($type) != 0) { - if (strtolower($type) == "string") { - if (!is_string($fieldValue)) { - throw new \Exception($fieldName . " must be a string."); + if (strtolower($type) == "string") { + if (!is_string($fieldValue)) { + throw new \Exception($fieldName . " must be a string."); + } + } elseif (strtolower($type) == "boolean") { + if (!is_bool($fieldValue)) { + throw new \Exception($fieldName . " must be a boolean."); + } + } else { + throw new \Exception("Internal error: validation of data of type $type " . + "is not supported by the validation service"); } - } elseif (strtolower($type) == "boolean") { - if (!is_bool($fieldValue)) { - throw new \Exception($fieldName . " must be a boolean."); - } - } else { - throw new \Exception("Internal error: validation of data of type $type is not supported by the validation service"); - } } $regEx = $this->getFieldValue($objectName, $fieldName, 'regex'); // If there are no checks to perform then $fieldValue must be valid - if(count($regEx) == 0) + if (count($regEx) == 0) { return true; + } - if(!preg_match($regEx, $fieldValue)) { + if (!preg_match($regEx, $fieldValue)) { return false; } @@ -75,11 +83,12 @@ public function validate($objectName, $fieldName, $fieldValue) * Checks the length of inputs against the length specified in the schema. * @throws \Exception */ - private function checkFieldLength($objectName, $fieldName, $fieldValue){ + private function checkFieldLength($objectName, $fieldName, $fieldValue) + { $length = $this->getFieldValue($objectName, $fieldName, 'length'); - if(!count($length) == 0){ //only check length if the schema has a length specified in it - if(strlen($fieldValue)>$length or $length == 0){ + if (!count($length) == 0) { //only check length if the schema has a length specified in it + if (strlen($fieldValue) > $length or $length == 0) { throw new \Exception($fieldName . " may not be more than " . $length . " chracters in length"); } } @@ -101,8 +110,7 @@ private function getFieldValue($objectName, $fieldName, $valueType) * Throw an exeption if this isn't found. */ private function findEntity($objectName, $schemaXml) { - foreach($schemaXml->entity as $entity) - { + foreach ($schemaXml->entity as $entity) { if ((string) $entity->name == $objectName) { return $entity; } @@ -113,9 +121,8 @@ private function findEntity($objectName, $schemaXml) private function findField($fieldName, $entity) { - foreach($entity->field as $field) - { - if(strtoupper((string) $field->fname) == strtoupper($fieldName)) { + foreach ($entity->field as $field) { + if (strtoupper((string) $field->fname) == strtoupper($fieldName)) { return $field; } } From b6c4101168f24285961e528c3a0fc6d6e32c928f Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Tue, 22 Nov 2022 16:23:57 +0000 Subject: [PATCH 04/42] Functionality for warning email and credential delete --- htdocs/PI/index.php | 10 + .../ManageAPICredentials.php | 74 +++++ .../ManageAPICredentialsActions.php | 263 ++++++++++++++++++ .../ManageAPICredentialsOptions.php | 140 ++++++++++ tests/DoctrineTestSuite1.php | 2 + .../ManageAPICredentialsTest.php | 203 ++++++++++++++ .../APIAuthenticationServiceTest.php | 18 +- .../lib/Gocdb_Services/ServiceTestUtil.php | 31 +++ 8 files changed, 725 insertions(+), 16 deletions(-) create mode 100644 resources/ManageAPICredentials/ManageAPICredentials.php create mode 100644 resources/ManageAPICredentials/ManageAPICredentialsActions.php create mode 100644 resources/ManageAPICredentials/ManageAPICredentialsOptions.php create mode 100644 tests/resourcesTests/ManageAPICredentialsTest.php diff --git a/htdocs/PI/index.php b/htdocs/PI/index.php index 8029fc636..45ee3b210 100644 --- a/htdocs/PI/index.php +++ b/htdocs/PI/index.php @@ -404,6 +404,16 @@ private function authByIdentifier($forceStrictForHosts = false) $admin = false; $authenticated = false; + // Check if incoming identifier is a registered API Authentication credential. + + $authEntServ = \Factory::getAPIAuthenticationService(); + $authEnt = $authEntServ->getAPIAuthentication($this->identifier); + + if (!is_null($authEnt)) { + $authEntServ->updateLastUseTime($authEnt); + $authenticated = true; + } + $user = \Factory::getUserService()->getUserByPrinciple($this->identifier); if ($user == null) { diff --git a/resources/ManageAPICredentials/ManageAPICredentials.php b/resources/ManageAPICredentials/ManageAPICredentials.php new file mode 100644 index 000000000..0f744038d --- /dev/null +++ b/resources/ManageAPICredentials/ManageAPICredentials.php @@ -0,0 +1,74 @@ +setLocalInfoOverride($_SERVER['SERVER_NAME']); + +$configService = \Factory::getConfigService(); +$fromEmail = (string) $configService->getEmailFrom(); +$replyToEmail = (string) $configService->getEmailTo(); + +try { + $options = new ManageAPICredentialsOptions(); + + if ($options->isShowHelp()) { + return; + } + + $baseTime = new DateTime("now", new DateTimeZone('UTC')); + + $actions = new ManageAPICredentialsActions($options->isDryRun(), $entityManager, $baseTime); + + $creds = $actions->getCreds($options->getThreshold()); + + if ($options->isDeleteEnabled()) { + $creds = $actions->deleteCreds( + $creds, + $options->getDelete() + ); + } + + if ($options->isWarnEnabled()) { + $actions->warnUsers( + $creds, + $options->getWarn(), + $options->getDelete(), + $fromEmail, + $replyToEmail + ); + } +} catch (InvalidArgumentException $except) { + ManageAPICredentialsOptions::usage($except->getMessage()); +} diff --git a/resources/ManageAPICredentials/ManageAPICredentialsActions.php b/resources/ManageAPICredentials/ManageAPICredentialsActions.php new file mode 100644 index 000000000..3eb7fe31b --- /dev/null +++ b/resources/ManageAPICredentials/ManageAPICredentialsActions.php @@ -0,0 +1,263 @@ +dryRun = $dryRun; + $this->entityManager = $entityManager; + $this->baseTime = $baseTime; + } + /** + * Find API credentials unused for a number of months. + * + * Find API credentials which have not been used for a number of months prior to a given base time based + * on the credential property lastUseTime. + * + * @param int $threshold The number of months of no-use prior to $baseTime to use for selection + */ + public function getCreds($threshold) + { + $qbl = $this->entityManager->createQueryBuilder(); + + $qbl->select('cred') + ->from('APIAuthentication', 'cred') + ->where('cred.lastUseTime < :threshold') + ->andWhere($qbl->expr()->isNotNull("cred.user")); // cope with legacy entities + + $timeThresh = clone $this->baseTime; + + if ($threshold > 0) { + $timeThresh->sub(new DateInterval("P" . $threshold . "M")); + } + + $qbl->setParameter('threshold', $timeThresh->format('Y-m-d 00:00:00')); + + $creds = $qbl->getQuery()->getResult(); + + return $creds; + } + /** + * Select API credentials for deletion. + * + * Find API credentials which have not been used for a given number of months + * and delete them or, if dry-run option is true, generate a summary report + * of the credentils found. + * + * @param array $creds Array of credentials to process. + * @param \Doctrine\Orm\EntityManager $entitymanager A valid Doctrine Entity Manager + * @param \DateTime $baseTime Time from which interval of no-use is measured + * @param int $deleteThreshold The number of months of no-use which will trigger deletion + * @return array Credentials which were not deleted. + */ + public function deleteCreds($creds, $deleteThreshold) + { + $deletedCreds = []; + + $serv = new APIAuthenticationService(); + $serv->setEntityManager($this->entityManager); + + /* @var $apiCred APIAuthentication */ + foreach ($creds as $apiCred) { + if ($this->isOverThreshold($apiCred, $this->baseTime, $deleteThreshold)) { + $deletedCreds[] = $apiCred; + if (!$this->dryRun) { + $serv->deleteAPIAuthentication($apiCred); + } + } + } + if ($this->dryRun) { + $this->reportDryRun($deletedCreds, "deleting"); + } + + return array_udiff($creds, $deletedCreds, array($this, 'compareCredIds')); + } + /** + * Send of warning emails where credentials have not been used for a given number of months + * + * Find API credentials from the input array which have not been used for a given number of months + * and send emails to the owners and site address, taken from the credential object, + * warning of impending deletion if the period of no-use reaches a given threshold. + * If dry-run option is true, generate a summary report of the credentials found + * instead of sending emails. + * + * @param array $creds Array of credentials to process. + * @param int $warningThreshold The number of months of no-use which triggers warning emails + * @param int $deleteThreshold The number of months of no-use which will trigger deletion + * @param string $fromEmail Email address to use as sender's (From:) address + * @param string $replyToEmail Email address for replies (Reply-To:) + * @return array Array of credentials identifed for sending warning emails + */ + public function warnUsers( + $creds, + $warningThreshold, + $deletionThreshold, + $fromEmail, + $replyToEmail + ) { + $warnedCreds = []; + + /* @var $api APIAuthentication */ + foreach ($creds as $apiCred) { + // The credentials list is pre-selected based on the given threshold in the query + // so this check is probably redundant. + if ($this->isOverThreshold($apiCred, $this->baseTime, $warningThreshold)) { + $lastUsed = $apiCred->getLastUseTime(); + $lastUseMonths = $this->baseTime->diff($lastUsed)->format('%m'); + + if (!$this->dryRun) { + $this->sendWarningEmail( + $fromEmail, + $replyToEmail, + $apiCred, + intval($lastUseMonths), + $deletionThreshold + ); + } + + $warnedCreds[] = $apiCred; + } + } + + if ($this->dryRun) { + $this->reportDryRun($warnedCreds, "sending warning emails"); + } + + return array_udiff($creds, $warnedCreds, array($this, 'compareCredIds')); + } +/** + * @return boolean true if the credential has not been used within $threshold months, else false + */ + private function isOverThreshold(APIAuthentication $cred, DateTime $baseTime, $threshold) + { + $lastUsed = $cred->getLastUseTime(); + + $diffTime = $baseTime->diff($lastUsed); + $lastUseMonths = ($diffTime->y * 12) + $diffTime->m; + + return $lastUseMonths >= $threshold; + } +/** + * Helper function to check if two API credentials have the same id. + * + * @return integer zero if equal, -1 if id1 < id2, 1 if id1 > id2 + * +*/ + private function compareCredIds(APIAuthentication $cred1, APIAuthentication $cred2) + { + $id1 = $cred1->getId(); + $id2 = $cred2->getId(); + + if ($id1 == $id2) { + return 0; + }; + + return $id1 > $id2 ? 1 : -1; + } + +/** + * Format and send warning emails. + * + * Send emails to API credential owner and the registered site address warning of impending credential deletion + * if the credential remains unused until a given threshold of months. + * + * @param string $fromEmail Email address to use as sender's (From:) address + * @param string $replyToEmail Email address for replies (Reply-To:) + * @param \APIAuthentication $api Credential to warn about + * @param int $elapsedMonths The number of months of non-use so far. + * @param int $deleteionThreshold The number of months of no-use which will trigger deletion if reached. + * @return void + */ + private function sendWarningEmail( + $fromEmail, + $replyToEmail, + \APIAuthentication $api, + $elapsedMonths, + $deletionThreshold + ) { + $user = $api->getUser(); + $userEmail = $user->getEmail(); + $siteName = $api->getParentSite()->getShortName(); + $siteEmail = $siteName . ' <' . $api->getParentSite()->getEmail() . '>'; + + $headersArray = array ("From: $fromEmail", + "Cc: $siteEmail"); + if (strlen($replyToEmail) > 0 && $fromEmail !== $replyToEmail) { + $headersArray[] = "Reply-To: $replyToEmail"; + } + $headers = join("\r\n", $headersArray); + + $subject = "GOCDB: Site API credential deletion notice"; + + $body = "Dear " . $user->getForename() . ",\n\n" . + "The API credential associated with the following identifier registered\n" . + "at site $siteName has not been used during\n" . + "the last $elapsedMonths months and will be deleted if this period of inactivity\n" . + "reaches $deletionThreshold months.\n\n"; + + $body .= "Identifier: " . $api->getIdentifier() . "\n"; + $body .= "Owner email: " . $userEmail . "\n"; + + $body .= "\n"; + $body .= "Use of the credential will prevent its deletion.\n"; + $body .= "\nRegards,\nGOCDB Administrators\n"; + + // Send the email (or not, according to local configuration) + Factory::getEmailService()->send($userEmail, $subject, $body, $headers); + } +/** + * Generate a summary report. + * + * Generate a report to stdout summarising information about each credential in an array when + * a dry-run operation is in progress. + * + * @param array $creds Array of API credential objects to be summarised. + * @param string $text Brief description of the operation which would have been + * performed without dry-run to be included in the report. + * @return void + */ + private function reportDryRun(array $creds, $text) + { + if (count($creds) == 0) { + print("Dry run: No matching credentials found for $text.\n"); + return; + } + + print("Dry run: Found " . count($creds) . " credentials for $text.\n"); + + foreach ($creds as $api) { + print("Dry run: Processing credential id " . $api->getId() . "\n" . + " Identifier: " . $api->getIdentifier() . "\n" . + " User email: " . $api->getUser()->getEmail() . "\n" . + " Site: " . $api->getParentSite()->getShortName() . "\n" . + " Last used: " . $api->getLastUseTime() // DateTimeInterface::ISO8601 + ->format("Y-m-d\\TH:i:sO") . "\n" + ); + } + } +} diff --git a/resources/ManageAPICredentials/ManageAPICredentialsOptions.php b/resources/ManageAPICredentials/ManageAPICredentialsOptions.php new file mode 100644 index 000000000..023fe3e1d --- /dev/null +++ b/resources/ManageAPICredentials/ManageAPICredentialsOptions.php @@ -0,0 +1,140 @@ +getOptions(); + } + /** + * @throws \InvInvalidArgumentException If errors found in argument processing + */ + public function getOptions() + { + $shortOptions = 'hw:d:'; + + $longOptions = [ + 'help', + 'dry-run', + 'warning_threshold:', + 'deletion_threshold:' + ]; + + // Beware that getopt is not clever at spotting invalid/misspelled arguments + $given = getopt($shortOptions, $longOptions); + + if ($given === false) { + throw new InvalidArgumentException('failed to parse command line arguments'); + } + + if ($this->getBoolOption($given, 'help', 'h')) { + $this->usage(); + $this->showHelp = true; + return; + } + + $this->dryRun = isset($given['dry-run']); + + $this->delete = $this->getValOption($given, 'deletion_threshold', 'd'); + $this->warn = $this->getValOption($given, 'warning_threshold', 'w'); + + if (!(is_null($this->delete) || is_null($this->warn))) { + if ($this->delete < $this->warn) { + throw new InvalidArgumentException( + "deletion_threshold must be greater than warning_threshold" + ); + } + } + return; + } + private function getValOption($given, $long, $short) + { + if (isset($given[$long]) || isset($given[$short])) { + $tValGiven = isset($given[$short]) ? $given[$short] : $given[$long]; + return $this->positiveInteger($tValGiven, $long); + } + return; + } + private function getBoolOption($given, $long, $short) + { + return isset($given[$long]) || isset($given[$short]); + } + private function positiveInteger($val, $txt) + { + if ((string)abs((int)$val) != $val) { + throw new InvalidArgumentException( + "$txt must be integer and greater than zero . Received: $val" + ); + } + return (int)$val; + } + public static function usage($message = '') + { + if ($message != '') { + print + ( + "Error: $message\n" + ); + } + print + ( + "Usage: php ManageAPICredentials.php [--help | -h] [--dry-run] \\\ \n" . + " [[--warning_threshold | -w] MONTHS ] \\\ \n" . + " [[--deletion_threshold | -d ] MONTHS ] \n" . + "Options: \n" . + " -h, --help Print this message.\n" . + " --dry-run Report but do nothing.\n" . + " -w, --warning_threshold MONTHS Email the owning user about credentials \n" . + " which have not been used for MONTHS months.\n" . + " -d, --deletion_threshold MONTHS Delete credentials which have not been used\n" . + " for MONTHS months.\n" + ); + } + public function isShowHelp() + { + return $this->showHelp; + } + public function isDryRun() + { + return $this->dryRun; + } + public function isDeleteEnabled() + { + return !is_null($this->getDelete()); + } + public function isWarnEnabled() + { + return !is_null($this->getWarn()); + } + public function getWarn() + { + return $this->warn; + } + public function getDelete() + { + return $this->delete; + } + /** + * The delete threshold may not be given in which case the warning threshold should be used. + * Note that it is an error is delete is greater than warning. + */ + public function getThreshold() + { + return $this->isWarnEnabled() ? $this->getWarn() : $this->getDelete(); + } +} diff --git a/tests/DoctrineTestSuite1.php b/tests/DoctrineTestSuite1.php index 0f6eab43c..55f12b2fb 100644 --- a/tests/DoctrineTestSuite1.php +++ b/tests/DoctrineTestSuite1.php @@ -29,6 +29,7 @@ require_once __DIR__ . '/writeAPI/siteMethods.php'; require_once __DIR__ . '/writeAPI/serviceMethods.php'; require_once __DIR__ . '/writeAPI/endpointMethods.php'; +require_once __DIR__ . '/resourcesTests/ManageAPICredentialsTest.php'; require_once __DIR__ . '/unit/lib/Gocdb_Services/ServiceServiceTest.php'; @@ -69,6 +70,7 @@ public static function suite() $suite->addTestSuite('WriteAPIsiteMethodsTests'); $suite->addTestSuite('WriteAPIserviceMethodsTests'); $suite->addTestSuite('WriteAPIendpointMethodsTests'); + $suite->addTestSuite('org\gocdb\tests\ManageAPICredentialsTest'); $suite->addTestSuite('ServiceServiceTest'); diff --git a/tests/resourcesTests/ManageAPICredentialsTest.php b/tests/resourcesTests/ManageAPICredentialsTest.php new file mode 100644 index 000000000..fc3c81639 --- /dev/null +++ b/tests/resourcesTests/ManageAPICredentialsTest.php @@ -0,0 +1,203 @@ +dbOpsFactory = new PHPUnit_Extensions_Database_Operation_Factory(); + } + /** + * Overridden. + */ + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + echo "\n\n-------------------------------------------------\n"; + echo "Executing ManageAPICredentialsTest. . .\n"; + } + /** + * Overridden. Returns the test database connection. + * @return PHPUnit_Extensions_Database_DB_IDatabaseConnection + */ + protected function getConnection() + { + require_once __DIR__ . '/../doctrine/bootstrap_pdo.php'; + return getConnectionToTestDB(); + } + /** + * Overridden. Returns the test dataset. + * Defines how the initial state of the database should look before each test is executed. + * @return PHPUnit_Extensions_Database_DataSet_IDataSet + */ + protected function getDataSet() + { + $dataset = $this->createFlatXMLDataSet(__DIR__ . '/../doctrine/truncateDataTables.xml'); + return $dataset; + // Use below to return an empty data set if we don't want to truncate and seed + //return new PHPUnit_Extensions_Database_DataSet_DefaultDataSet(); + } + /** + * Overridden. + */ + protected function getSetUpOperation() + { + // CLEAN_INSERT is default + //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); + //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); + //return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + // + // Issue a DELETE from which is more portable than a + // TRUNCATE table
(some DBs require high privileges for truncate statements + // and also do not allow truncates across tables with FK contstraints e.g. Oracle) + return $this->dbOpsFactory->DELETE_ALL(); + } + /** + * Overridden. + */ + protected function getTearDownOperation() + { + // NONE is default + return $this->dbOpsFactory->NONE(); + } + /** + * Sets up the fixture, e.g create a new entityManager for each test run + * This method is called before each test method is executed. + */ + protected function setUp() + { + parent::setUp(); + $this->entityManager = $this->createEntityManager(); + // Pass the Entity Manager into the Factory to allow Gocdb_Services + // to use other Gocdb_Services. + \Factory::setEntityManager($this->entityManager); + + date_default_timezone_set("UTC"); + } + /** + * Run after each test function to prevent pile-up of database connections. + */ + protected function tearDown() + { + parent::tearDown(); + if (!is_null($this->entityManager)) { + $this->entityManager->getConnection()->close(); + } + } + /** + * @return EntityManager + */ + private function createEntityManager() + { + $entityManager = null; // Initialise in local scope to avoid unused variable warnings + require __DIR__ . '/../doctrine/bootstrap_doctrine.php'; + return $entityManager; + } + private function createTestAuthEnts($number) + { + /** + * Create a number of unique API authentication credentials, evenly spaced each + * with last used time 6 months before the previous, starting 6 months behind + * the current time. + * + * @return \DateTime Time used as 'current' time. + */ + + list($user, $site, $siteService) = + ServiceTestUtil::createGocdbEntities($this->entityManager); + + $baseTime = new DateTime('now', new DateTimeZone('UTC')); + + $type = 'X.509'; + + $useTime = clone $baseTime; + + for ($count = 1; $count <= $number; $count++) { + // $useTime will be decremented by 6M for each loop + $useTime->sub(new DateInterval('P6M')); + $ident = '/CN=A Dummy Subject ' . $count; + $authEnt = $siteService->addAPIAuthEntity( + $site, + $user, + array( + 'IDENTIFIER' => $ident, + 'TYPE' => $type, + 'ALLOW_WRITE' => false + ) + ); + + $authEnt->setLastUseTime($useTime); + } + return $baseTime; + } + public function testLastUseTime() + { + print __METHOD__ . "\n"; + + $baseTime = $this->createTestAuthEnts(3); + + $entityManager = $this->createEntityManager(); + + $actions = new ManageAPICredentialsActions(false, $entityManager, $baseTime); + + // Fetch credentials not used in the last 7 months - should be 2 + $creds = $actions->getCreds(7); + + $this->assertCount( + 2, + $creds, + 'Failed to filter credentials by time.' + ); + + // remove credentials last used more than 13 months ago + // there should be one left after this operation + $creds = $actions->deleteCreds($creds, 13); + + $this->assertCount( + 1, + $creds, + 'Failed to delete credential by use time.' + ); + + // If we now repeat the original query there should be just one + // credential following the delete. + $creds = $actions->getCreds(7); + + $this->assertCount( + 1, + $creds, + 'Unexpected credential count following deletion.' + ); + } +} diff --git a/tests/unit/lib/Gocdb_Services/APIAuthenticationServiceTest.php b/tests/unit/lib/Gocdb_Services/APIAuthenticationServiceTest.php index 9f9de89bb..bef93eef0 100644 --- a/tests/unit/lib/Gocdb_Services/APIAuthenticationServiceTest.php +++ b/tests/unit/lib/Gocdb_Services/APIAuthenticationServiceTest.php @@ -154,22 +154,8 @@ public function testGetAPIAuthentication() { print __METHOD__ . "\n"; - $siteData = ServiceTestUtil::getSiteData($this->entityManager); - $siteService = ServiceTestUtil::getSiteService($this->entityManager); - $site = ServiceTestUtil::createAndAddSite($this->entityManager, $siteData); - - $user = TestUtil::createSampleUser('Beta', 'User'); - $user->setAdmin(true); - - $identifier = TestUtil::createSampleUserIdentifier('X.509', '/Beta.User'); - ServiceTestUtil::persistAndFlush($this->entityManager, $identifier); - - $user->addUserIdentifierDoJoin($identifier); - - ServiceTestUtil::persistAndFlush($this->entityManager, $user); - - $authEntServ = new APIAuthenticationService(); - $authEntServ->setEntityManager($this->entityManager); + list($user, $site, $siteService, $authEntServ) = + ServiceTestUtil::createGocdbEntities($this->entityManager); $this->assertTrue( $authEntServ instanceof APIAuthenticationService, diff --git a/tests/unit/lib/Gocdb_Services/ServiceTestUtil.php b/tests/unit/lib/Gocdb_Services/ServiceTestUtil.php index f0bdcfab5..dfda6398b 100644 --- a/tests/unit/lib/Gocdb_Services/ServiceTestUtil.php +++ b/tests/unit/lib/Gocdb_Services/ServiceTestUtil.php @@ -2,6 +2,8 @@ require_once __DIR__ . "/../../../doctrine/TestUtil.php"; +use org\gocdb\services\APIAuthenticationService; + /** * Helper functions for GOCDB_Services tests * @@ -125,4 +127,33 @@ private static function getScopeService($em) { return $scopeService; } + public static function createGocdbEntities($entityManager) + { + /** + * Set up the site, user and service objects shared by + * some tests. + * + * @return array Created User, Site and SiteService instances + */ + + $siteData = ServiceTestUtil::getSiteData($entityManager); + $siteService = ServiceTestUtil::getSiteService($entityManager); + $site = ServiceTestUtil::createAndAddSite($entityManager, $siteData); + + $user = TestUtil::createSampleUser('Beta', 'User'); + $user->setAdmin(true); + + $identifier = TestUtil::createSampleUserIdentifier('X.509', '/Beta.User'); + ServiceTestUtil::persistAndFlush($entityManager, $identifier); + + $user->addUserIdentifierDoJoin($identifier); + + ServiceTestUtil::persistAndFlush($entityManager, $user); + + $authEntServ = new APIAuthenticationService(); + $authEntServ->setEntityManager($entityManager); + + return [$user, $site, $siteService, $authEntServ]; + } + } From 0b471a3d52fff2933698cf4d4b9ad1a2b084b252 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Tue, 7 Mar 2023 11:34:50 +0000 Subject: [PATCH 05/42] Apply code standards --- tests/DoctrineTestSuite1.php | 2 +- .../ManageAPICredentialsTest.php | 7 +- .../APIAuthenticationServiceTest.php | 6 +- .../lib/Gocdb_Services/ServiceTestUtil.php | 187 +++++++++--------- .../lib/Gocdb_Services/SiteServiceTest.php | 28 ++- 5 files changed, 127 insertions(+), 103 deletions(-) diff --git a/tests/DoctrineTestSuite1.php b/tests/DoctrineTestSuite1.php index 55f12b2fb..b112a27fb 100644 --- a/tests/DoctrineTestSuite1.php +++ b/tests/DoctrineTestSuite1.php @@ -64,7 +64,7 @@ public static function suite() $suite->addTestSuite('RoleActionMappingServiceTest'); $suite->addTestSuite('ScopeServiceTest'); $suite->addTestSuite('UserServiceTest'); - $suite->addTestSuite('SiteServiceTest'); + $suite->addTestSuite('org\gocdb\tests\SiteServiceTest'); $suite->addTestSuite('RoleServiceTest2'); $suite->addTestSuite('org\gocdb\tests\APIAuthenticationServiceTest'); $suite->addTestSuite('WriteAPIsiteMethodsTests'); diff --git a/tests/resourcesTests/ManageAPICredentialsTest.php b/tests/resourcesTests/ManageAPICredentialsTest.php index fc3c81639..c78346f39 100644 --- a/tests/resourcesTests/ManageAPICredentialsTest.php +++ b/tests/resourcesTests/ManageAPICredentialsTest.php @@ -18,10 +18,9 @@ use DateTime; use DateTimeZone; use org\gocdb\scripts\ManageAPICredentialsActions; +use org\gocdb\tests\ServiceTestUtil; use PHPUnit_Extensions_Database_Operation_Factory; use PHPUnit_Extensions_Database_TestCase; -use ServiceTestUtil; -use TestUtil; require_once __DIR__ . '/../unit/lib/Gocdb_Services/ServiceTestUtil.php'; require_once __DIR__ . '/../../resources/ManageAPICredentials/ManageAPICredentialsActions.php'; @@ -30,6 +29,7 @@ class ManageAPICredentialsTest extends PHPUnit_Extensions_Database_TestCase { private $entityManager; private $dbOpsFactory; + private $serviceTestUtil; public function __construct() { @@ -37,6 +37,7 @@ public function __construct() // Use a local instance to avoid Mess Detector's whinging about avoiding // static access. $this->dbOpsFactory = new PHPUnit_Extensions_Database_Operation_Factory(); + $this->serviceTestUtil = new ServiceTestUtil(); } /** * Overridden. @@ -135,7 +136,7 @@ private function createTestAuthEnts($number) */ list($user, $site, $siteService) = - ServiceTestUtil::createGocdbEntities($this->entityManager); + $this->serviceTestUtil->createGocdbEntities($this->entityManager); $baseTime = new DateTime('now', new DateTimeZone('UTC')); diff --git a/tests/unit/lib/Gocdb_Services/APIAuthenticationServiceTest.php b/tests/unit/lib/Gocdb_Services/APIAuthenticationServiceTest.php index bef93eef0..3be93251c 100644 --- a/tests/unit/lib/Gocdb_Services/APIAuthenticationServiceTest.php +++ b/tests/unit/lib/Gocdb_Services/APIAuthenticationServiceTest.php @@ -22,7 +22,7 @@ use PHPUnit_Extensions_Database_Operation_Factory; use PHPUnit_Extensions_Database_TestCase; use RuntimeException; -use ServiceTestUtil; +use org\gocdb\tests\ServiceTestUtil; use TestUtil; /** @@ -34,6 +34,7 @@ class APIAuthEnticationServiceTest extends PHPUnit_Extensions_Database_TestCase { private $entityManager; private $dbOpsFactory; + private $serviceTestUtil; public function __construct() { @@ -41,6 +42,7 @@ public function __construct() // Use a local instance to avoid Mess Detector's whinging about avoiding // static access. $this->dbOpsFactory = new PHPUnit_Extensions_Database_Operation_Factory(); + $this->serviceTestUtil = new ServiceTestUtil(); } /** * Overridden. @@ -155,7 +157,7 @@ public function testGetAPIAuthentication() print __METHOD__ . "\n"; list($user, $site, $siteService, $authEntServ) = - ServiceTestUtil::createGocdbEntities($this->entityManager); + $this->serviceTestUtil->createGocdbEntities($this->entityManager); $this->assertTrue( $authEntServ instanceof APIAuthenticationService, diff --git a/tests/unit/lib/Gocdb_Services/ServiceTestUtil.php b/tests/unit/lib/Gocdb_Services/ServiceTestUtil.php index dfda6398b..9765e62b7 100644 --- a/tests/unit/lib/Gocdb_Services/ServiceTestUtil.php +++ b/tests/unit/lib/Gocdb_Services/ServiceTestUtil.php @@ -1,50 +1,59 @@ persist($instance); - $em->flush(); - } - /** - * Create some test site data - * @param EntityManager $em Entity Manager handle - */ - public static function getSiteData ($em) { +class ServiceTestUtil +{ + /** + * Persist and flush an entity + * @param \Doctrine\ORM\EntityManager $em Entity manager + * @param Object $instance + */ + public static function persistAndFlush($em, $instance) + { + $em->persist($instance); + $em->flush(); + } + /** + * Create some test site data + * @param EntityManager $em Entity Manager handle + */ + public static function getSiteData($em) + { - $infra = TestUtil::createSampleInfrastructure('Production'); - $em->persist($infra); + $infra = TestUtil::createSampleInfrastructure('Production'); + $em->persist($infra); - $ngi = TestUtil::createSampleNGI('ngi1_'); - $em->persist($ngi); + $ngi = TestUtil::createSampleNGI('ngi1_'); + $em->persist($ngi); - $scope = TestUtil::createSampleScope('scope 1', 'Scope1'); - $em->persist($scope); + $scope = TestUtil::createSampleScope('scope 1', 'Scope1'); + $em->persist($scope); - $certStatus = TestUtil::createSampleCertStatus('Certified'); - $em->persist($certStatus); + $certStatus = TestUtil::createSampleCertStatus('Certified'); + $em->persist($certStatus); - $country = TestUtil::createSampleCountry('Utopia'); - $em->persist($country); + $country = TestUtil::createSampleCountry('Utopia'); + $em->persist($country); - $em->flush(); + $em->flush(); - $siteData = array ( - 'NGI' => $ngi->getId(), - 'Site' => array( + $siteData = array ( + 'NGI' => $ngi->getId(), + 'Site' => array( 'SHORT_NAME' => 's1', 'DESCRIPTION' => 'A test site', 'OFFICIAL_NAME' => 'An-official-site', @@ -64,96 +73,98 @@ public static function getSiteData ($em) { 'EMERGENCYEMAIL' => 'anon@localhost.net', 'HELPDESKEMAIL' => 'anon@localhost.net', 'TIMEZONE' => 'GMT'), - 'Scope_ids' => array($scope->getId()), - 'ReservedScope_ids' => array(), - 'ProductionStatus' => $infra->getId(), - 'Certification_Status' => $certStatus->getId(), - 'Country' => $country->getId() - ); - - return $siteData; - } + 'Scope_ids' => array($scope->getId()), + 'ReservedScope_ids' => array(), + 'ProductionStatus' => $infra->getId(), + 'Certification_Status' => $certStatus->getId(), + 'Country' => $country->getId() + ); + + return $siteData; + } /** * Create and return a minimal Site Service instance * @param \Doctrine\ORM\EntityManager EntityManager $em * @param array $siteData Minimal initial site data array * @return \Site $site */ - public static function createAndAddSite ($em, $siteData) { + public function createAndAddSite($em, $siteData) + { - $user = TestUtil::createSampleUser('Alpha','User'); + $user = TestUtil::createSampleUser('Alpha', 'User'); // We don't want to test all the roleAction logic here so simply make us an admin - $user->setAdmin(true); + $user->setAdmin(true); - $identifier = TestUtil::createSampleUserIdentifier('X.509', '/Alpha.User'); - ServiceTestUtil::persistAndFlush($em, $identifier); + $identifier = TestUtil::createSampleUserIdentifier('X.509', '/Alpha.User'); + $this->persistAndFlush($em, $identifier); - $user->addUserIdentifierDoJoin($identifier); + $user->addUserIdentifierDoJoin($identifier); - ServiceTestUtil::persistAndFlush($em, $user); + $this->persistAndFlush($em, $user); - $siteService = ServiceTestUtil::getSiteService($em); + $siteService = $this->getSiteService($em); - $site = $siteService->addSite($siteData, $user); + $site = $siteService->addSite($siteData, $user); - return $site; - } + return $site; + } /** * Generate minimal Site Service - * @param \Doctrine\ORM\EntityManager EntityManager $em - * @return org\gocdb\services\Site $siteService + * @param EntityManager EntityManager $em + * @return Site $siteService */ - public static function getSiteService ($em) { - $siteService = new org\gocdb\services\Site(); - $siteService->setEntityManager($em); + public function getSiteService($em) + { + $siteService = new Site(); + $siteService->setEntityManager($em); // Need stubs for both role and scope services - $roleAAS = TestUtil::createSampleRoleAAS(__DIR__ . + $roleAAS = TestUtil::createSampleRoleAAS(__DIR__ . "/../../resources/roleActionMappingSamples/TestRoleActionMappings5.xml"); - $roleAAS->setEntityManager($em); - $siteService->setRoleActionAuthorisationService($roleAAS); - $siteService->setScopeService(ServiceTestUtil::getScopeService($em)); + $roleAAS->setEntityManager($em); + $siteService->setRoleActionAuthorisationService($roleAAS); + $siteService->setScopeService($this->getScopeService($em)); - return $siteService; - } + return $siteService; + } /** * Generate a useless minimal Scope Service * NB. Should be done in the siteService constructor (?) */ - private static function getScopeService($em) { - $scopeService = new \org\gocdb\services\Scope(); - $scopeService->setEntityManager($em); - - return $scopeService; - } - public static function createGocdbEntities($entityManager) - { - /** - * Set up the site, user and service objects shared by - * some tests. - * - * @return array Created User, Site and SiteService instances - */ + private static function getScopeService($em) + { + $scopeService = new Scope(); + $scopeService->setEntityManager($em); - $siteData = ServiceTestUtil::getSiteData($entityManager); - $siteService = ServiceTestUtil::getSiteService($entityManager); - $site = ServiceTestUtil::createAndAddSite($entityManager, $siteData); + return $scopeService; + } + public function createGocdbEntities($entityManager) + { + /** + * Set up the site, user and service objects shared by + * some tests. + * + * @return array Created User, Site and SiteService instances + */ - $user = TestUtil::createSampleUser('Beta', 'User'); - $user->setAdmin(true); + $siteData = $this->getSiteData($entityManager); + $siteService = $this->getSiteService($entityManager); + $site = $this->createAndAddSite($entityManager, $siteData); - $identifier = TestUtil::createSampleUserIdentifier('X.509', '/Beta.User'); - ServiceTestUtil::persistAndFlush($entityManager, $identifier); + $user = TestUtil::createSampleUser('Beta', 'User'); + $user->setAdmin(true); - $user->addUserIdentifierDoJoin($identifier); + $identifier = TestUtil::createSampleUserIdentifier('X.509', '/Beta.User'); + $this->persistAndFlush($entityManager, $identifier); - ServiceTestUtil::persistAndFlush($entityManager, $user); + $user->addUserIdentifierDoJoin($identifier); - $authEntServ = new APIAuthenticationService(); - $authEntServ->setEntityManager($entityManager); + $this->persistAndFlush($entityManager, $user); - return [$user, $site, $siteService, $authEntServ]; - } + $authEntServ = new APIAuthenticationService(); + $authEntServ->setEntityManager($entityManager); + return [$user, $site, $siteService, $authEntServ]; + } } diff --git a/tests/unit/lib/Gocdb_Services/SiteServiceTest.php b/tests/unit/lib/Gocdb_Services/SiteServiceTest.php index 85bf39ed5..f71b445b7 100644 --- a/tests/unit/lib/Gocdb_Services/SiteServiceTest.php +++ b/tests/unit/lib/Gocdb_Services/SiteServiceTest.php @@ -12,6 +12,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + +namespace org\gocdb\tests; + require_once __DIR__ . '/../../../doctrine/TestUtil.php'; require_once __DIR__ . '/ServiceTestUtil.php'; require_once __DIR__ . '/../../../../lib/Doctrine/entities/User.php'; @@ -21,25 +24,32 @@ require_once __DIR__ . '/../../../../lib/Gocdb_Services/Scope.php'; use Doctrine\ORM\EntityManager; +use org\gocdb\tests\ServiceTestUtil; +use PHPUnit_Extensions_Database_Operation_Factory; +use PHPUnit_Extensions_Database_TestCase; +use RuntimeException; +use TestUtil; /** * DBUnit test class for the {@see \org\gocdb\services\Site} service. * * @author Ian Neilson (after David Meredith) */ -class siteServiceTest extends PHPUnit_Extensions_Database_TestCase +class SiteServiceTest extends PHPUnit_Extensions_Database_TestCase { private $entityManager; private $dbOpsFactory; /** @var TestUtil $testUtil */ private $testUtil; + private $serviceTestUtil; - function __construct() + public function __construct() { parent::__construct(); // Use a local instance to avoid Mess Detector's whinging about avoiding // static access. $this->dbOpsFactory = new PHPUnit_Extensions_Database_Operation_Factory(); + $this->serviceTestUtil = new ServiceTestUtil(); } /** * Overridden. @@ -167,16 +177,16 @@ public function testAddSite() { print __METHOD__ . "\n"; - $siteData = ServiceTestUtil::getSiteData($this->entityManager); - $siteService = ServiceTestUtil::getSiteService($this->entityManager); + $siteData = $this->serviceTestUtil->getSiteData($this->entityManager); + $siteService = $this->serviceTestUtil->getSiteService($this->entityManager); // The most basic check $this->assertTrue( - $siteService instanceof org\gocdb\services\Site, + $siteService instanceof \org\gocdb\services\Site, 'Site Service failed to create and return a Site service' ); - ServiceTestUtil::createAndAddSite($this->entityManager, $siteData); + $this->serviceTestUtil->createAndAddSite($this->entityManager, $siteData); // Check // N.B. Although getSitesFilterByParams says all the filters are optional, @@ -198,9 +208,9 @@ public function testAddAPIAuthentication() $user->setAdmin(true); $this->persistAndFlush($user); - $siteData = ServiceTestUtil::getSiteData($this->entityManager); - $siteService = ServiceTestUtil::getSiteService($this->entityManager); - ServiceTestUtil::createAndAddSite($this->entityManager, $siteData); + $siteData = $this->serviceTestUtil->getSiteData($this->entityManager); + $siteService = $this->serviceTestUtil->getSiteService($this->entityManager); + $this->serviceTestUtil->createAndAddSite($this->entityManager, $siteData); $sites = $siteService->getSitesFilterByParams(array('scope' => 'Scope1')); $site = $sites[0]; From 755c70ac8d53fca384c96270192744f7a86f4d08 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Wed, 2 Nov 2022 10:58:47 +0000 Subject: [PATCH 06/42] Fix API Last Used update Add missing Last Used update for registered user APIAuthentication identifiers --- htdocs/PI/index.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/htdocs/PI/index.php b/htdocs/PI/index.php index 45ee3b210..457245613 100644 --- a/htdocs/PI/index.php +++ b/htdocs/PI/index.php @@ -418,15 +418,6 @@ private function authByIdentifier($forceStrictForHosts = false) if ($user == null) { // Incoming credential is not that of a registered user. - // Check if it is registered API Authentication credential. - - $authEntServ = \Factory::getAPIAuthenticationService(); - $authEnts = $authEntServ->getAPIAuthentication($this->identifier); - - if (count($authEnts) > 0) { - $authEntServ->updateLastUseTime($authEnts); - $authenticated = true; - } if (!\Factory::getConfigService()->isRestrictPDByRole($forceStrictForHosts)) { // Only a 'valid' identifier is needed. From 6655aa8f6d1de6b430063fa5856a3b94beefd3c8 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Wed, 2 Nov 2022 11:05:07 +0000 Subject: [PATCH 07/42] Add API Last Used column to site view Includes visibility fix for getLastRenewTime method in APIAuthentication entity --- htdocs/web_portal/views/site/view_site.php | 20 ++++++++++++++++++-- lib/Doctrine/entities/APIAuthentication.php | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/htdocs/web_portal/views/site/view_site.php b/htdocs/web_portal/views/site/view_site.php index 49ad64c31..c07ac4a21 100644 --- a/htdocs/web_portal/views/site/view_site.php +++ b/htdocs/web_portal/views/site/view_site.php @@ -1,5 +1,6 @@ getId(); @@ -555,8 +556,9 @@ - - + + + @@ -594,12 +596,26 @@ } ?> + diff --git a/lib/Doctrine/entities/APIAuthentication.php b/lib/Doctrine/entities/APIAuthentication.php index e4288f67c..a5757be09 100644 --- a/lib/Doctrine/entities/APIAuthentication.php +++ b/lib/Doctrine/entities/APIAuthentication.php @@ -137,7 +137,7 @@ public function getLastUseTime () { /** * @return \DateTime $time */ - protected function getLastRenewTime() { + public function getLastRenewTime() { return $this->lastRenewTime; } From 19af85be6b7f7c39e9ec514f9fe51eea93c95cb0 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Wed, 2 Nov 2022 15:59:30 +0000 Subject: [PATCH 08/42] Apply code standards CodeSniffer and MessDetector updates where practical. --- htdocs/PI/index.php | 13 +- htdocs/web_portal/views/site/view_site.php | 297 ++++++++++++-------- lib/Doctrine/entities/APIAuthentication.php | 85 ++++-- 3 files changed, 243 insertions(+), 152 deletions(-) diff --git a/htdocs/PI/index.php b/htdocs/PI/index.php index 457245613..49ba91642 100644 --- a/htdocs/PI/index.php +++ b/htdocs/PI/index.php @@ -1,4 +1,4 @@ -method = $_GET['method']; unset($_GET['method']); @@ -367,11 +366,11 @@ private function getXml() break; case "get_site_count_per_country": require_once($directory . 'GetSiteCountPerCountry.php'); - $getSiteCountPerCountry = new GetSiteCountPerCountry($em); - $getSiteCountPerCountry->validateParameters($this->params); - $getSiteCountPerCountry->createQuery(); - $getSiteCountPerCountry->executeQuery(); - $xml = $getSiteCountPerCountry->getRenderingOutput(); + $getCountrySiteCount = new GetSiteCountPerCountry($em); + $getCountrySiteCount->validateParameters($this->params); + $getCountrySiteCount->createQuery(); + $getCountrySiteCount->executeQuery(); + $xml = $getCountrySiteCount->getRenderingOutput(); break; //case "get_role_action_mappings": default: diff --git a/htdocs/web_portal/views/site/view_site.php b/htdocs/web_portal/views/site/view_site.php index c07ac4a21..cc8d59d5d 100644 --- a/htdocs/web_portal/views/site/view_site.php +++ b/htdocs/web_portal/views/site/view_site.php @@ -1,6 +1,6 @@ getId(); @@ -23,9 +23,9 @@ - +
Type Identifier UserAPI WriteEditLast UsedWriteEdit Delete
+ getLastUseTime(); + if ($useTime == null) { + $titleStr = 'Created/Renewed ' . $APIAuthEnt->getLastRenewTime()->format('d-m-Y H:iTP'); + echo '
Unused
'; + } else { + $titleStr = 'Last used ' . $useTime->format('d-m-Y H:iTP'); + echo '
' . $useTime->format('d-m-y') . '
'; + } + ?> +
getAllowAPIWrite())) { echo '"'.\GocContextPath::getPath().'img/tick.png"'; + echo 'title="API write enabled"'; } else { echo '"'.\GocContextPath::getPath().'img/cross.png"'; + echo 'title="API write disabled"'; } ?> />
@@ -63,32 +65,37 @@ getEmail()) ?> - + + } else { + echo(getInfoMessage()); + } + ?> @@ -97,7 +104,9 @@ getCsirtEmail()) ?> - + @@ -107,7 +116,9 @@ getEmergencyEmail()) ?> - + @@ -117,14 +128,16 @@ getHelpdeskEmail()) ?> - + + + + + + +
TelephonegetTelephone()); - } else + } else { echo(getInfoMessage()); + } ?>
Emergency TelgetEmergencyTel()); - } else + } else { echo(getInfoMessage()); + } ?>
CSIRT TelgetCsirtTel()); - } else - echo(getInfoMessage()) - ?>
CSIRT E-Mail
Notifications - Project Data + + Project Data + @@ -147,7 +162,10 @@ - + + @@ -156,29 +174,31 @@ getCertificationStatus()->getName()) ?>   - + Change - + $sharedWithParent) { - if ($sharedWithParent) { - $scopeString .= $scopeName; - } else { - $scopeString .= $scopeName . '(x)'; - } - if (++$count != $numScopes) { - $scopeString .= ", "; - } - } - ?> + $count = 0; + $numScopes = sizeof($params['Scopes']); + $scopeString = ''; + foreach ($params['Scopes'] as $scopeName => $sharedWithParent) { + if ($sharedWithParent) { + $scopeString .= $scopeName; + } else { + $scopeString .= $scopeName . '(x)'; + } + if (++$count != $numScopes) { + $scopeString .= ", "; + } + } + ?> + ?> -
InfrastructuregetInfrastructure()->getName()) ?>Infrastructure + getInfrastructure()->getName()) ?> +
Certification Status
@@ -198,7 +218,9 @@
- Networking + + Networking + @@ -208,7 +230,9 @@ getHomeUrl()) ?> - + @@ -217,8 +241,9 @@ getGiisUrl()); - } else + } else { echo(getInfoMessage()); + } ?> @@ -228,8 +253,9 @@ getIpRange()); - } else + } else { echo(getInfoMessage()); + } ?> @@ -239,8 +265,9 @@ getIpV6Range()); - } else + } else { echo(getInfoMessage()); + } ?> @@ -248,10 +275,11 @@ @@ -260,7 +288,9 @@
- Location + + Location +
Domain getDomain()); - } else - echo(getInfoMessage()); + if ($showPD) { + xecho($site->getDomain()); + } else { + echo(getInfoMessage()); + } ?>
@@ -354,9 +384,9 @@ + $se = $serviceAndScopes['Service']; + $scopes = $serviceAndScopes['Scopes']; + ?> @@ -404,22 +432,22 @@ $numScopes = sizeof($scopes); $scopeString = ''; foreach ($scopes as $scopeName => $sharedWithParent) { - if ($sharedWithParent) { - $scopeString .= $scopeName; - } else { - $scopeString .= $scopeName . '(x)'; - } - if (++$count != $numScopes) { - $scopeString .= ", "; - } + if ($sharedWithParent) { + $scopeString .= $scopeName; + } else { + $scopeString .= $scopeName . '(x)'; + } + if (++$count != $numScopes) { + $scopeString .= ", "; + } } ?> + } // End of the foreach loop iterating over ServicesAndScopes + ?>
@@ -364,37 +394,35 @@ - + getProduction()) { - case true: - ?> - - - - '; + break; + case false: + echo ''; + break; } ?> getMonitored()) { - case true: - ?> - - - - '; + break; + case false: + echo ''; + break; } ?>
@@ -428,21 +456,30 @@ - - - Add Service + + + Add Service
-
- Users (Click on name to manage roles) + if ($showPD) { + ?> + + Users (Click on name to manage roles) + @@ -454,12 +491,16 @@ + ?> -
@@ -470,20 +511,20 @@ ?>
-
@@ -508,28 +549,37 @@
- + getDescription()) ?> getStartDate()->format('Y-m-d H:i'/*$dt::DATE_FORMAT*/)) ?> getEndDate()->format('Y-m-d H:i'/*$dt::DATE_FORMAT*/)) ?>
- + - - + + Add Downtime @@ -544,10 +594,11 @@ ?> - +
- Credentials authorised to use the GOCDB read and write APIs (Only shown if you have the relevant permissions) + Credentials authorised to use the GOCDB read and write APIs + (Only shown if you have the relevant permissions) @@ -575,7 +626,7 @@ // delete the credential $disableDelete = false; } - ?> + ?>
getType())?> @@ -589,9 +640,11 @@ $disableDelete = false; if ($APIAuthEnt->getUser() != null) { // Credentials added prior to 5.8 have no owning user - echo "getUser()->getId(), "\" "; + echo "getUser()->getId(), + "\" "; echo "title=\"", $APIAuthEnt->getUser()->getFullname(), "\">"; - echo substr($APIAuthEnt->getUser()->getSurname(),0,10); + echo substr($APIAuthEnt->getUser()->getSurname(), 0, 10); echo ""; } ?> @@ -611,26 +664,32 @@ getAllowAPIWrite())) { - echo '"'.\GocContextPath::getPath().'img/tick.png"'; + echo '"' . \GocContextPath::getPath() . 'img/tick.png"'; echo 'title="API write enabled"'; } else { - echo '"'.\GocContextPath::getPath().'img/cross.png"'; + echo '"' . \GocContextPath::getPath() . 'img/cross.png"'; echo 'title="API write disabled"'; } ?> /> - -
-
- +
- -
-
@@ -640,11 +699,17 @@
- + - - + + Add API credential diff --git a/lib/Doctrine/entities/APIAuthentication.php b/lib/Doctrine/entities/APIAuthentication.php index a5757be09..61a4129bc 100644 --- a/lib/Doctrine/entities/APIAuthentication.php +++ b/lib/Doctrine/entities/APIAuthentication.php @@ -1,4 +1,5 @@ setLastRenewTime(); } /** * Get PK of Authentication entity * @return int */ - public function getId() { + public function getId() + { return $this->id; } @@ -93,7 +106,8 @@ public function getId() { * Get the authentication enties parent site * @return \Site */ - public function getParentSite() { + public function getParentSite() + { return $this->parentSite; } @@ -101,7 +115,8 @@ public function getParentSite() { * Get they autentication type of this entity * @return string */ - public function getType() { + public function getType() + { return $this->type; } @@ -109,35 +124,40 @@ public function getType() { * Get the unique identifier for this autnentication entity. * @return string */ - public function getIdentifier() { + public function getIdentifier() + { return $this->identifier; } /** * @return \User */ - public function getUser() { + public function getUser() + { return $this->user; } /** * @return bool $allowAPIWrite */ - public function getAllowAPIWrite () { + public function getAllowAPIWrite() + { return $this->allowAPIWrite; } /** * @return \DateTime */ - public function getLastUseTime () { + public function getLastUseTime() + { return $this->lastUseTime; } /** * @return \DateTime $time */ - public function getLastRenewTime() { + public function getLastRenewTime() + { return $this->lastRenewTime; } @@ -145,7 +165,8 @@ public function getLastRenewTime() { * Set the type of this authentication entity * @param string $name */ - public function setType($type) { + public function setType($type) + { $this->type = $type; } @@ -153,14 +174,16 @@ public function setType($type) { * Set the unique identifier of this authentication entity. * @param string $identifier */ - public function setIdentifier($identifier) { + public function setIdentifier($identifier) + { $this->identifier = $identifier; } /** * @param \DateTime $time if null, current UTC time is set */ - public function setLastUseTime (\DateTime $time = null) { + public function setLastUseTime(\DateTime $time = null) + { $useTime = $time; @@ -174,7 +197,8 @@ public function setLastUseTime (\DateTime $time = null) { /** * @param \DateTime $time if null, current UTC time is set */ - public function setLastRenewTime(\DateTime $time = null) { + public function setLastRenewTime(\DateTime $time = null) + { $renewTime = $time; @@ -189,9 +213,10 @@ public function setLastRenewTime(\DateTime $time = null) { * * @param bool $allowAPIWrite */ - public function setAllowAPIWrite ($allowWrite) { + public function setAllowAPIWrite($allowWrite) + { if (!is_bool($allowWrite)) { - throw new LogicException("Expected bool, received".gettype($allowWrite)); + throw new LogicException("Expected bool, received" . gettype($allowWrite)); } $this->allowAPIWrite = $allowWrite; } @@ -207,13 +232,15 @@ public function setAllowAPIWrite ($allowWrite) { * * @param \Site $site */ - public function _setParentSite(\Site $site){ + public function _setParentSite(\Site $site) + { $this->parentSite = $site; } /** * @param \User $user */ - public function _setUser(\User $user) { + public function _setUser(\User $user) + { $this->user = $user; } - } +} From d02f1a54cb0bac9dbd7f0ac02264d6bbde94499e Mon Sep 17 00:00:00 2001 From: charlieDurnsfordHollands Date: Mon, 10 May 2021 15:23:59 +0000 Subject: [PATCH 09/42] Create/use CSS classes for trash/pencil icon --- htdocs/web_portal/css/web_portal.php | 12 ++++++++++++ htdocs/web_portal/views/admin/view_service_type.php | 4 ++-- htdocs/web_portal/views/downtime/view_downtime.php | 4 ++-- htdocs/web_portal/views/ngi/view_ngi.php | 4 ++-- htdocs/web_portal/views/project/view_project.php | 4 ++-- htdocs/web_portal/views/scope.php | 4 ++-- htdocs/web_portal/views/service/view_service.php | 4 ++-- .../views/service/view_service_endpoint.php | 4 ++-- .../web_portal/views/service_group/view_sgroup.php | 4 ++-- htdocs/web_portal/views/site/view_site.php | 4 ++-- htdocs/web_portal/views/user/view_user.php | 6 ++---- 11 files changed, 32 insertions(+), 22 deletions(-) diff --git a/htdocs/web_portal/css/web_portal.php b/htdocs/web_portal/css/web_portal.php index 9102a074b..52369dfdc 100644 --- a/htdocs/web_portal/css/web_portal.php +++ b/htdocs/web_portal/css/web_portal.php @@ -774,3 +774,15 @@ vertical-align: middle; padding-right: 1em; } + +img.pencil { + height: 25px; + float: right; +} + + +img.trash { + height: 25px; + float: right; + margin-right: 0.4em; +} diff --git a/htdocs/web_portal/views/admin/view_service_type.php b/htdocs/web_portal/views/admin/view_service_type.php index 15dce787c..12b4f2c0f 100644 --- a/htdocs/web_portal/views/admin/view_service_type.php +++ b/htdocs/web_portal/views/admin/view_service_type.php @@ -22,7 +22,7 @@
- +

Edit @@ -32,7 +32,7 @@
- +

Delete diff --git a/htdocs/web_portal/views/downtime/view_downtime.php b/htdocs/web_portal/views/downtime/view_downtime.php index 8e4f284e1..06f22589a 100644 --- a/htdocs/web_portal/views/downtime/view_downtime.php +++ b/htdocs/web_portal/views/downtime/view_downtime.php @@ -23,7 +23,7 @@
- +

Edit @@ -33,7 +33,7 @@
- +

Delete diff --git a/htdocs/web_portal/views/ngi/view_ngi.php b/htdocs/web_portal/views/ngi/view_ngi.php index 50ae20b58..14a176c76 100644 --- a/htdocs/web_portal/views/ngi/view_ngi.php +++ b/htdocs/web_portal/views/ngi/view_ngi.php @@ -26,7 +26,7 @@
- +
Admin
Delete
@@ -35,7 +35,7 @@
- +

Edit diff --git a/htdocs/web_portal/views/project/view_project.php b/htdocs/web_portal/views/project/view_project.php index 93fb6244b..03f107861 100644 --- a/htdocs/web_portal/views/project/view_project.php +++ b/htdocs/web_portal/views/project/view_project.php @@ -23,7 +23,7 @@
- +

Edit @@ -35,7 +35,7 @@
- +

Delete diff --git a/htdocs/web_portal/views/scope.php b/htdocs/web_portal/views/scope.php index 5b4dfe9dc..b197a114f 100644 --- a/htdocs/web_portal/views/scope.php +++ b/htdocs/web_portal/views/scope.php @@ -43,7 +43,7 @@
- +

Edit @@ -53,7 +53,7 @@
- +

Delete diff --git a/htdocs/web_portal/views/service/view_service.php b/htdocs/web_portal/views/service/view_service.php index 1d4efe983..ee3c6ad93 100644 --- a/htdocs/web_portal/views/service/view_service.php +++ b/htdocs/web_portal/views/service/view_service.php @@ -23,7 +23,7 @@
- +

Edit @@ -33,7 +33,7 @@
- +

Delete diff --git a/htdocs/web_portal/views/service/view_service_endpoint.php b/htdocs/web_portal/views/service/view_service_endpoint.php index 0944b428e..a0390fae3 100644 --- a/htdocs/web_portal/views/service/view_service_endpoint.php +++ b/htdocs/web_portal/views/service/view_service_endpoint.php @@ -26,7 +26,7 @@
- +

Edit @@ -36,7 +36,7 @@
- +

Delete diff --git a/htdocs/web_portal/views/service_group/view_sgroup.php b/htdocs/web_portal/views/service_group/view_sgroup.php index 9a4961486..5112278c5 100644 --- a/htdocs/web_portal/views/service_group/view_sgroup.php +++ b/htdocs/web_portal/views/service_group/view_sgroup.php @@ -24,7 +24,7 @@
- +

Edit @@ -34,7 +34,7 @@
- +

Delete diff --git a/htdocs/web_portal/views/site/view_site.php b/htdocs/web_portal/views/site/view_site.php index cc8d59d5d..6c0a5b24c 100644 --- a/htdocs/web_portal/views/site/view_site.php +++ b/htdocs/web_portal/views/site/view_site.php @@ -30,7 +30,7 @@
- +
Admin
Delete
@@ -39,7 +39,7 @@
- +

Edit diff --git a/htdocs/web_portal/views/user/view_user.php b/htdocs/web_portal/views/user/view_user.php index cd5a6d64e..fb42ca29f 100644 --- a/htdocs/web_portal/views/user/view_user.php +++ b/htdocs/web_portal/views/user/view_user.php @@ -20,8 +20,7 @@ if ($params['ShowEdit']) {?>
'; From 790d63dcd7f903976a892e5521100875e0adaa00 Mon Sep 17 00:00:00 2001 From: gregcorbett Date: Mon, 27 Feb 2023 16:24:54 +0000 Subject: [PATCH 10/42] Simplify CSS for pencil and trash icon Co-authored-by: ineilson --- htdocs/web_portal/css/web_portal.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/htdocs/web_portal/css/web_portal.php b/htdocs/web_portal/css/web_portal.php index 52369dfdc..0eab2a969 100644 --- a/htdocs/web_portal/css/web_portal.php +++ b/htdocs/web_portal/css/web_portal.php @@ -775,14 +775,11 @@ padding-right: 1em; } -img.pencil { +img.pencil, img.trash { height: 25px; float: right; } - -img.trash { - height: 25px; - float: right; +img.trash { margin-right: 0.4em; } From d577a932af6ce3e8248cac243096d33a0908a643 Mon Sep 17 00:00:00 2001 From: Greg Corbett Date: Fri, 24 Feb 2023 10:40:06 +0000 Subject: [PATCH 11/42] Add EOSC NGI images --- .../web_portal/img/ngi/Collaboration_Tools.jpg | Bin 0 -> 1095 bytes htdocs/web_portal/img/ngi/EOSC_AAI.jpg | Bin 0 -> 1095 bytes htdocs/web_portal/img/ngi/EOSC_Accounting.jpg | Bin 0 -> 1095 bytes .../web_portal/img/ngi/EOSC_Data_Transfer.jpg | Bin 0 -> 1095 bytes htdocs/web_portal/img/ngi/EOSC_Front-Office.jpg | Bin 0 -> 1095 bytes htdocs/web_portal/img/ngi/EOSC_Helpdesk.jpg | Bin 0 -> 1095 bytes htdocs/web_portal/img/ngi/EOSC_Messaging.jpg | Bin 0 -> 1095 bytes htdocs/web_portal/img/ngi/EOSC_Monitoring.jpg | Bin 0 -> 1095 bytes htdocs/web_portal/img/ngi/EOSC_Observatory.jpg | Bin 0 -> 1095 bytes .../img/ngi/EOSC_Order_Management.jpg | Bin 0 -> 1095 bytes .../img/ngi/EOSC_Resource_Catalogue.jpg | Bin 0 -> 1095 bytes htdocs/web_portal/img/ngi/EOSC_Topology.jpg | Bin 0 -> 1095 bytes .../img/ngi/fullSize/Collaboration_Tools.jpg | Bin 0 -> 98762 bytes htdocs/web_portal/img/ngi/fullSize/EOSC_AAI.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Accounting.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Data_Transfer.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Front-Office.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Helpdesk.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Messaging.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Monitoring.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Observatory.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Order_Management.jpg | Bin 0 -> 98762 bytes .../ngi/fullSize/EOSC_Resource_Catalogue.jpg | Bin 0 -> 98762 bytes .../img/ngi/fullSize/EOSC_Topology.jpg | Bin 0 -> 98762 bytes 24 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 htdocs/web_portal/img/ngi/Collaboration_Tools.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_AAI.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Accounting.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Data_Transfer.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Front-Office.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Helpdesk.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Messaging.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Monitoring.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Observatory.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Order_Management.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Resource_Catalogue.jpg create mode 100644 htdocs/web_portal/img/ngi/EOSC_Topology.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/Collaboration_Tools.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_AAI.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Accounting.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Data_Transfer.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Front-Office.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Helpdesk.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Messaging.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Monitoring.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Observatory.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Order_Management.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Resource_Catalogue.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/EOSC_Topology.jpg diff --git a/htdocs/web_portal/img/ngi/Collaboration_Tools.jpg b/htdocs/web_portal/img/ngi/Collaboration_Tools.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_AAI.jpg b/htdocs/web_portal/img/ngi/EOSC_AAI.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Accounting.jpg b/htdocs/web_portal/img/ngi/EOSC_Accounting.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Data_Transfer.jpg b/htdocs/web_portal/img/ngi/EOSC_Data_Transfer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Front-Office.jpg b/htdocs/web_portal/img/ngi/EOSC_Front-Office.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Helpdesk.jpg b/htdocs/web_portal/img/ngi/EOSC_Helpdesk.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Messaging.jpg b/htdocs/web_portal/img/ngi/EOSC_Messaging.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Monitoring.jpg b/htdocs/web_portal/img/ngi/EOSC_Monitoring.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Observatory.jpg b/htdocs/web_portal/img/ngi/EOSC_Observatory.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Order_Management.jpg b/htdocs/web_portal/img/ngi/EOSC_Order_Management.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Resource_Catalogue.jpg b/htdocs/web_portal/img/ngi/EOSC_Resource_Catalogue.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/EOSC_Topology.jpg b/htdocs/web_portal/img/ngi/EOSC_Topology.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9891f1e71236411eff97a586ecf8a3b5da07046 GIT binary patch literal 1095 zcmex=kR1VRR8 zMg~?en}H#WnHeMk#teZ15H?64P>_KIBF-%wD1=}G#ek~Y7BDbu?Ein8!I^=Hkr9NT zfSHvU1lU+um|5A`*x5mtgOi(+gM*8Mot=x9i;J5F2-rFK_<4EwKx~j9AnhPsK*Ynr z&H++E8u)*JL6Cz%l0k-nEb z0MPl&%uGPXva$fZ%UBDPXJ8Rz6;d>GWD^cdWLGK_F>0K+kVDyN<3Z7&iyu^slZu)+ zxx~aJB&Af<)HO7FDaE{6Y(+B}&O_F6wxfu+QPv;wS!sbr<$;d-b~N?7Zn8W*_{1 z%i6ti=4>ym>yx_6f9siNZJfI-vlj?TN%`J>HFuGf2&?U>9f4HvcBxz z{Od2b?S50&cQM|;{4Miu$Cq&e7vJrF7=H8h^yx2?RZc0!nnjn2MU_miOX038nz(1W z@x7x`OOLD;*nYCQVfT}jtN&fG-x6ZH{^mc9mj=gP@6bKA)~3H_PRe2K6^~_v_==Ai z_-kI9d-dX1myJ3fO^UR3S!kU)tl0R9V@=2h6RX-5vtKorqmIk8-mc#B=HQZh{~3(U z-k!N>y{RtG!&bYfYsZx-B|hhtN`(BlK7IcE9Ua|5TB}+^B^Y=ZG&2@0xbpud0L4;_ AE&u=k literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/fullSize/Collaboration_Tools.jpg b/htdocs/web_portal/img/ngi/fullSize/Collaboration_Tools.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1289f0c8d9826e64ace650bf8edb1cd0182ef66d GIT binary patch literal 98762 zcmeFZcRbwRw>LV1Ac7DgL`)KdM2jH0`AVWkM2|Y(L<%bDn$7xvz8XANSt#+-I|2`@?)@?6p5@t^Ho_wYJlV(|OPZ z9Sv;_5Dg6t=x^W)bczL8sQWoNfIxbBpxYo2h!I3jO9P?@u4sU+LreQl1qG8vvhQ{^bBVi z82)rdCT1o^#&e7e4Ch$Ront-^GzKPCHkR|Of3E+0$e*|Wc^B|~o{@p^&mI4{cKQv( z&UmJp9z;uX19XO+hL)Y?v;zbNW=apN#Gl3ZZ;j>*Egk(?U`pqhfg5Tr0MnR~CKz}fM8{6gaa~I7>_vlT3^&|4@4imVW)!$z(aL2wgcFp0?h(Rt?h^N99$ulF z!XmeB%gEl7lUGoD@K9YtQ%hUN$k@cx?5Vkht)0Dt;|nKePcLsDUqAnV&^KY>5s^{R zNy+ctr=+HRNYBa5%P%PWTvS|HRb5kCSKrXs*51+C)&0GvcX;I2=-Bwg

&cacOyF zb!~kEzqfyINH`)MpZt-F29Wa~?VknvKgq=o$aMyI26PO6mOO;II^WTye z)3-O3m+wUA2ia1JoBZ+PHt8fN{!+G}hm_Q$<&U3})A7BDx4QWY#oT*@ftRSv4{ZJA zS|LooHOj~Cz|tNiNnUd-?gPuDi{H3;KDQ zmsUInkrmGr?uW^D?iCDYBz;Y;B}@wERMnPc<>J7ER{ZYPDQH1n;vm@PWTDfF=b*1A z9j5gDs&O{t7G&1y&LMhC|J5mory4Uwi+!B9&@U+CGnHrVXSKYYZ)mEOG4qr?Ymp(F ziKR=J8{*O!p8qI_gieWpr2aDTsyb6hyC*{CH;7 zqG!RuMjBYtbwx`MZnN!^U~4e9DHhg_Nb-sN`c6WezR7 zjI8-p!uup?rgNrx-1uYJWSz^*F@y!#s)UgAi)gn9FF6G<#?8duyTH@I?fT{SjBQfl z!^eb|cJr^ZLIqz1W2j7nq~KQE3bSN5Rqn-0ull?fUd`%1ABugLhHSE9+-qvQ> z+rxZ1++!niUZFBAgF8RFl40{PT3Gy}zx$AdU1!S68O#iR>YswLPeILnPMUFdCihdU zv)b;wnOb`1+8|Wvx=kT@IS)Rza(vSeaaP3f_Z3rb=Mnv>k&mdFu$^H8U09G}o!!E5 zlK$qhOS`~Ze>&eBj0*B^2vNisSfcVW1epA={=HXPrp5Zn`+h=Ejx#bdutD)JfL-AHVwr+0rQ=L+Gt4E{ASm* zm;3x}DIfXS#9XgFyN3K`oq&a^03X6dW?6obC6AXzpB!%=e778VUY*27MnHNoI#>+h zG0zXFW=Ch(9`em8h!&@+d4>S}M~n zTUQJWeVKS~Rtd>{KYv$jgqi=#C-19oCe{Mv9t^Pf?QXFHHc8V+R495d4~{glk_hEQ z*;h3;(COyXD+PV<986;4+vi!_q09|AADaK!n-{Iq3Pi}6;xW7p- zf1-GC$N}`X6t-p4$DVQ}f|$S((~f-Zm_Cf8J83-_uX7x6+}S2dUUg%Amg2w`LzJ88 z=(ea%ZMRUuc*BK9;ljHbBQ{5)myXzHz9n^R3VMimc`3bbUAhn$`WQU`nSc-uTZk+r zn!qesyulIJv}rYWk5b{Ec?@Ue7*Hboj2jWtuTP|$d@p4?adkE&_S1bAjMtjDtCeSW zM<9f8^+tc}{or045M7$#S0Ti2cljeZy_JNLxfx#n`d&vd1>H#~dT>UX!ji{OYh-<`JnnVH&R z5gx(hZy;av0CJi{Wi|na!zG%8aLy}ZdwVx*oAA;aRcg$vCC;Viz9ZLj&tPU)-nO@% zf?lGDx7a$^h$6yq$=Fj+`$xH_UvTC5a+BK!8M5M^VG*QpdL|nA!4%d`P>T2~%~8x3 zIWl`)JBGgcJNW_r{`h0OS#){!b(wC1dmr=9T3t|EaB|ZULzqCkIA~E5l~k@?B8-i1 zFk0oLa*UHJ;}E59Nh(20|0Mg~StuQeg7t}E1KW~@y=R7Po@}ne{STHcJ|f8+NCLT$ zf~H=Xd(m>cu`angi>Lj!qDBSMX-cZiitY)>9-i3tiblk5?)70OLL|rv2ah}j%_q&( zHP`0mP;y-O$B=dF_7iVLWqP#DYJJwsHP(6rt|wa2?2T_lw9Q4OL%N_57IM+m%-R0A zn`1@3Fv;Lj)lD|6y@IJt_PfyUXoil*SKG0oM*WqY)V?UIq1vIq`sqTiM(38E9Y4>G zv`p)BA0EFr1xqCa^-AZ9ew5Nc{Q}D%aW^?h%+4*~UfU_d{q{SHY64oITi%mP8`(@iOT5$oUFY zX(R`AD4qW`>pJ(tVWTBJl%hXRWOrk!$q6?uxitp2iFFJ=pnH<5F(SSd$zRb`tiPZp zd!pe@?QTm`mb9q!L_`zFLKktW7ymdvjw-8eKWtH3^q%WD`5B~X?L|&B`8Ngk$5xMH z2z!)Q07`wKrwG63_x!S0lZy+#wVzf^m_eJunh@xj)gjh0mg{(*aFx;spqQ`FQ_vfR z?oEGi#It&sJ?ss<`o-OycF|kMO=Xk4hc;R}Z0qzvb0jZBYb~TYK3SsqQywoeZfo(_ z3VUPJK$Bf3fPps5b0iF&N{>{-&I-1V0se0lambD9E0Y_s=__=piI2gRE8|W<;5Xf; zpt9fK9b17i9T>KZzj(&(1YOhU>?C(!5=Q1NiY(s~Xq5J2&g|yXn+{!e%BIk9Zztu#r6afj|Wl zLtiaqa@Vz!-e>3Qz!%-&uY$pz5CH`kn=fUoVg44{HC1In=y1qOvN@_Llf{T|3 zzRJf2jwN4K8D2b>f~Jh&$*zFObq59f?#y^pk(#`(o|e(5_UP_hp< z!Kdt2uO)I{Nr(cUX@(lDLW#FfTX699Ym$<+#X13B7pr^^{N!iew;6%gq`sG@ARm(_ zim#h(g~QMZ$oWW2t#Z~GeDiqg+(j$pd%QmeRU-%?W?QMb6qh=Pmln-6_bAR+%-YbR z_s6mT{7IxFy0(DG&XvRltWbKl4qj-Z-&+X%eafM@@CQeT0#wfFE&H%~a)Ghg1|MzO zlm0s4UmDAGug2#2zK9*I5%_Hsc4_x#mcW_?l(GbX#wO9r4qr=V#CdQJmq zCb$V0{`%9wO4Q$|FSRJrqcwQx+9te^IMpTgK;hW-*IU->X(t4;4Ml#%pehm{VzTjQ zD`HWhiES}bG8OQM)!dgxuFLWAH7x)1mP+#YuDI&4|8_2abRJT>x}{P;9hv2K(bcmI zmg`E9dOo!kR}_$&Cv97IWLbq&YIL3!pg%Dwy#W2U4U&$8EdC4jx55~pFdbt)GyxybDhjClFGTayB{Z=%1&gZ$Q zaXDiE6Sad*?RG#bA`*6*xEFOT4{;k-X=t&0L&u?I;SbNR{#q5w4QKG!L%@fTtbR%D zohK{>MftOqbL&S#Ol3RQgNJ$}vd=cz2x5zm_3ZMFi~64Gy&V6uoMmj~xZMsbZqE7N zpPI97WW9HSL~~5;IxNf%OugLdt2R&%nmoB?pw0>UU$L7)1K|th3z?mCB}g&3ga6L26a~TawY)FsWC?}WsEoOS zjmIX5KD^Qw1v@1@V!XQjou>h_IsM~Fa)@)JnZLb+`FviP$X-BSzpxRLnsT}RQE zO?AOCqX7}yM}Y5%z;kb3E$*KOhxQe(xA3(fE3|{@9yb;=J>6#S_ymu>H*h9lR$g97 zO(a;C$}|a>ntmN_XoT#9Pa0#MCW{elxL<11S8VWZ9V9k_MeH^4mzFhuqQ0<^Iraer zU7?!FU*f(*%;>ITcc~w{8M9RN{W!Pg0kte3WOemf=KR&rjdMp;JIZbIZfGH_7U{N< zPT}-t(wrA682m7&8o{sKDxc{p14JwLb_mGR)w(icGWki#c4X7QRjs5xqp86 z@QMj&9;8I`7yw|g6s^n7raNg(Oo z`N~^70CuADOoXxmVYV~IR+4B5VHO~M_%yYP=MMc_v?vd@Z{sv6_VlD$F!dDVo;To@ zlL4%?38e~xbtX%tV&j{=F;H9(%|Tsa3#?!1`h7Ojut?|;?;VETE{yfU1}8D*W?=`> zgf!(7=2yPyWLY~$*o5{Db`j;+jl!!MGeu*N4MqMxleZ4tF~Ow3o>S0W)inT5;YSFc za-!omHk7WI-~2Ep|IBb_d&u~F65<^^hk4r6F6b}fpV%i%^-AhfyhK&OnuV31sMYMi zm+s^tHQPS^Z+7W>C{|>vHuWsA#M)YMWZ`Cf-CfmAIVpV@lL}<4HyTAeL_9)FfooD~ zNLE44ziRq6OTvC`ulRXcD_5|aThfLd2l&T>99{D=z0NTt73xq!dV{#L#dx!9Ep$rX zZ(p&HTif|KwF&e0g``Q(fh%P2m4)wrzWLlawZGDov{5=79W04d?LM%Ed0#!O_I&VX z-6P^3{@uHwp+@JX#9(yPd?(K1td{iF21D|x7ylrMf=WFO7^|%8?2jj&(0!w2A84Qtwczf<5Oo9g=9qH z5o#%jJDR7C;Cs%t;?^Wdj%yR*j<|aT5cerga-s$7H`tK??*Ba3UZ~N5JTH~{GWbzD z^%z}S(uSPR;6Dol9ajhnxb({H3{!J&1;4J{dm19h-HG_-Db(df)tZmboex%=0yJl! zZ=1w>F;(^YwBa?VDnmro(cI!SKz~*e{wF-HEKC@oL{+1wV%kwIReLgXm)G%JRV@O{ z9=WI+FFl@Q#r53xxXWaOKLu@}Nv3`o1TZndfBqD7*?bP!rdoGXiK43Zp?Z>yTpLkA z_xD@Yak>khAxOQF4j>#)nCRA|6g7#jbT6&9h>a}XXg8Q{kJnGWr|_a@&0plPhKEVZ zZa6VL_JwkxoE6dkTN1%MOvS=NqjHl+ydizWTBvGl z*rovs<#K9~$1P`}^K2|PcwMtEq|Yu~`khp?14(3ftHzLM!F3!*l0}SUiBUokA~t@S zohfp0pUMViH1#|`h)tY=`Z^odJnp!$PIB|Do`-0Y!HX=?-Bg~+F)!GJ>{UsFNIkea zv#UAhDd+~P8Ux)0HBg9X?}80a*?SW`)d1sT6`4Uyn0Ikf1Q{8(ynl?R4EaGMpmcM1kc8x#Fed!bg;!|h`EYj-_ z{VA&-ZI*((pen2BZ=Yv{nHDFjNZ*}ve)F+Sw_so`F=}A&FfL06$-SijrkUSsx-md( zv>8B6Vws25zNhZ@JugJ+uc|NHio_YG2klO0p`yIu=8> z&b~etq|)C`KC*c8%C+%Yq}qs9=zxDAa1*X*`#`%;-= zNN}eXAzZ=-mz;htZzS7y&*f^tg+O7IQQyno2OfD`7Z&f{n(;$#?~-m>P$wW&v-#Mc zU%JsxS583>8W74Ec?^t}m0C<1TeN3eZ;S5KGel*-Tbxlgtq4)=Sv%9e*$`Scpmmu5jQ83 zpD{?AI_!N56L6QLjE42BdsmI^jO!Zv9}7n-s6R^K33s%R*^u;cCs}ORK%tmHhoW&UT1(|%8l1IX9a`PoBl3d8?dXT~IWFtA8ZIoL*>REVR ziTbukeg3|oQ;GljBnsdOTUAv>{9yB#Z5S4E(XaAkQGckq4i$vIZ@)LIB^aeke_VU! zSn!OSqS51yrESS-;+$D?pM@W^L&=A{Q;dyX~w z$D+#q_ECO@U$1cfqbQ&Ha&G&(P?$NTC>s4K3jrn^l=>l0=TRUA~zu?d|bCF9deG?_UQWX zt`NWV^eJehsgP!$G7>?!=FpOa?vhq6=+b1T47yCgS4a zveS6)mk;8?y9*_4;6D+#JgN}P7IX{zTA4n3%`J@m1>u7EwX0Hm&Y{Pqot$Q?CbxAw zJX3a!j&935)5&x)GBwbaRL=q2RNl`&sQ+Jf{M^(LL1hTyjAYnO?j0fPJ>#MF|7zQ7 zCKtK)J=9;wTk>VWgSU=J4~czLrc)5!dB2S+QqkmcaU0}pVaa#wzwYUZSQq>o=Ti^j zh zVhfM{0Fbdhlg6=is_24T_(Z1ZO=Z1y4uV3QxYv-0?p9y^)R0`R%~o|)LarZow}pNO zhG`O(e)T{xCH1q0V2EGBd8H7=aE5C|t#lXuk}ZR#VrUTx#BnOqIzE2Cz2!z_ql-`h zt>JK=y`a&zhC17>EmlVCw<)*3L{Ic^n+x}1@V2dE7Do}g*}uHL9?Wr8WMvh%7k^Ra zlD`%Y3yrFGC^s`OE;wG({}ahOx=0dbi#Jm1u$ZW)t~ayARQyPME>~|42gr=Y8|a%| zSv%=mmx$W|bY-u59s3_?R z$fQgPy9T8-fB!w##>&JWZub89zStu-KVDaFp-O1RTGGaBOi_2jk2}QM932Y<>Jv*fpt!$Sf+R`w`;K#OD zNWN6Hc#!^)GJ>?9fTX%3Z^&54MO?Q<-R2zZzka#xj9t)~?bt6AA4)9b?_C;d`z)g( zJnW@jSD9b5tcvs6+2&tQeT0bu42is0O{0`P@YMA;J@p*t$|X}TrcG^#J~iB$Ls^pb zw?3o&sg_3U>F!=L$|`Gr!yP4SjC%b2UpCerC`(hBfH#zR}I16H|la zzxRG9w#|RaroU3Hsz+Y0|r1=~R4a}I+o98zmcwPzC;>I8EZjb|VuEO} z4vq|BI{v!pT8H?e%C*Y(tRvn2T?#Y6JS;CAX4vRVLGx4d274jVR1h&AuX%s8T1~k!=(EXRPoB(6EL%5x6Bb5QLgwFMDur8-@krJc{JjcC_XYUn zHD8UZnvZ_XSo97GrrBwkQJyQ({`eZc>|X6cM~w*5CA#F2fgr4e2(_xQEW2V^6R4CH z5ELu*9@5t9W*n~uidRQK$l`djNX+~@XkG9Cs>J_@SFiLG^!(TTTg=7lNpB6Y4EMje zyaoAr*$MBOjs8t6Ved585SILQ3aT0}Xvn^-T)x&)gXXC-YqAbvQVc()|lvXtdF-K(wL;1GHKS7KN0Clfx93ca3* zmx}91N27RFe&O#2{|T|XZiX)SwLEny-<%e4%TB@t@+=mi`{g=X#QvEhMibTVdmCqWVeOtg7mwZ13 zIfExMz9DN;5|)VxdL&i!Ij)*9F+A5chVRToM|m=dq3HRV*w-j0lC!li zVR04FQap&c*S%;y9(IV6Pt9=ihL?Qk);d#Cc(MiN}D2dd@^y9XJmKWEwX;BCC4 z1r?6p-rFiU)I682d^-3eZtI)l=kF_D&ygdD?W7yzzX7!3MqH(G44&VR8|Rh%nt17J ze$m85QmWe?CqMQ`MvY95;-7zHX?xr?6j`Xv|0Y zoYGPbh>h}FA_^1a@w^(-4r6(tk78HLk7?z}wwhckNSyi{Ez+KR6%UQHxq~isE_xBG zDfU)_ZMo3_9ENzGgsgNckmDXJ&81%}L$(=`5?cMfQaQ<5y&f}*5pOmjH+SJ(7f6Fu zp8?YI7iH~#a+Ci83hiO0>IeouG0srBD@yaV7NhA^PL1gWcD0^lamw0sBUOOT0njH1 z9@!1XJ;ubzrSmt~%cQ?dqW!#{zt8eJ_|nQu!j&)bu5Vb%LR6u@6!*bX5d@2$5N9ym zRfv%Rtk~kLi;`iSw0K6=+_uKVmA6@LjIE%AT5OhZIDbZ;r_f+{)}}95b~)I>qOf=z z*-6&I4b(ofQPylvCMW#bPzP&Cmx}?iJAE@%2~b?$f=>)SwAIw+8jf<{JLR&s zqiMr)rBU(F%&3(iA3nak+YXItQ34j&oeXarI)s@EjVyc1ja?a>JiP1~R{y%uwaaZ{ z%Orx1ZI~?#%H;)#<7cSCvqhjU9X)QgVbcujo{bwPS_fP}G=(rNEx7VzSqj<2tY)j& z%9c~EHd5KVMG8VcRMd=b_JJdrvx>?bnoqvL8}XXT zHeGA822i)0TBWy%L`;HYxQn8`+AE!vCj!s;+N?2+uYA3 zy5GKlKf64jbU0z>d>3XrlZzr?!kBGLZ*m#rgKqAZ2g-0tWh&#@kBU`pKfjs*FOEoc z#GxxQjuPH}!wo1Yqxrfct3$>(O{0)8hn6k1HtV6dZY(?kao+Dndpm+_Xv<5SO;2B9 zc3@1U;?s`4&vSpVjw%jq!OSrVr`f{$+XHzsI&lqhKC@+Yqb;SB`yb`oZeK9feV7s@ z`G;e@8}i>Ph>yP#vH?ko$u}rzEd6m~^~!n+B6l&9iq|bauy;Gz4W@Fx40mZK6<}0b zq=7)#R8{wEk_Y#`2kNY z5<=fz(^oNTqt2@iQCpX;${nfvuxGC!kQE6tvu6w(pkz!2*iau)q$v3qI64ed8CM;( zfaaL4Esc3Mv?b;J8B$zhoDh1+9jVFSRc?c3T?&O4hBN+;-15VX19wov{6U zSLMvxd|TmRSurIQXT*;=+< zRRE2zMQq_od_i)Q6t9}lRs{E#k@D!58BY>}Ha8Qj_wPX&NT0%Z=FgoVomzh@kY(@_ zVWX2q`govZR`^h}x6#VB19{~n{_265H!qp@6x5@_b6kXDrZUdqVT8D`)D9@ep>6`x z)ZCr)1?$HeO=GT2Cp<6S^Iu8R=G@96vvf>^rsem!tV8V`Ix8 zU+#rV5~#g?Gd$WYr$sX|NNvE=d#m`@QhuGF%EWZl2Gym!2W;Nn!f!YEz{JUj@ZNV7 z)hv2s&D|qB17r`R3qY^?-((?oiQgqi!s!nE`1s3b|SBn1EVJ3!0NGNqwIBRTeIDBD?Z29ioby zkAl`}k_EH)>xr7^nVptlgI#46!LoflcxK;ArVU%+fcVE)nt-k5c^P& zect;xZ^l~dY1iLla-tny>PTfjGhGeKhQfl!BmLFSWerAFj*?R>cI@6S>%d5>9Z7?+M z(U`?3P_OzPpSm3kJeb$Gxz6jp;2-=bh@});@XCf(dH+1kIZ*KXaO6 zGgQ0nO(-pAb7M9dAvbH0g%4JVF=2Z@_E`?C29na(2=AbNeE=oQFe-z12v}M%LJHX` zulxd_)>uFK-%Dm*(PJ|aZ0ncBRErdNwe-13PGM}nFHO0sp={bj&9+FI@??uerfevqxOgGn9MhY?~|btkY@fXl(%PL2m0l9 z%0>mZ#3aNi`8d7fV~i4HSJxK5{t-^o-_{ut8}Z%vdvwm;VZ;D0^MiF9% zB8sUWMf77LsA87={&aTt8@H<=>lYRi4kBM2<7eKUU3_nw4E=;)#&;#)ueAF#c7+1` z*opPRZurWWfuO5uZuZsIC4N?xAmIycEzgoim%1Lz1Zu;$*G@s2j!TH#HY@LU?pN7h zsm4dCoeX)48(;l_;zmQDs5MLV+rQi%iH=le>qV4689{jbN@5F?G2=T60UAuj1pB3FN5#8d-D!MZ8@Y=}7!Qa2K?#G%pXzkFK%3L`nqf`!p!^0<7lDmE z%Uq_h0qI9@kl9-0uK+*`uwHnTx<)L*)Ua+KgVYabAVwAv_zy+=w?^en!aK?bvI@pyN}L?z$r&KR;p!%{G#;01j>Xexq# zoQwp_Ym&GvRQ5{)rVzQmeFU!9^!bKcb8lyLoA@1ZErf~Tz;?c_3&TbZ!im>KDl7R& zh&vqHM}4_joeWCLgJPedvM*nIt5)il8g8Fj6V97@{;a(U8s)nMszNQ?HVZ z8#NRiqMTdNHFA7GF{qR~h=aH=sK?=9$MVN0GbZ(#|xG zm18b{pAK7A1F7>ff)c+_Yud8-+Wer~1A?eg9LywG*r+mkMtEpycMDzJa#3YrU89cR zst<-m1~}o`zrtbY2Jc{g$9U@PAfTcydi z9Cu1K=c?+qM&~h;M%ZR_SP)x|<%<*R7G6_>#=yxtG$~GO{elr!^&f-2fmrt%+edAby8bj?YoBLs zME1l%7wg~{m4EnSK$ls~dD%!4F7g$*G@xn*Q5jIy>icr2T9Vqi08`;~+CZ<0Blk=M z4lWW3fG09S7AAs@c;OK{;05l;>%GUk#-E;c{HBn~jR87cO1MQ7NUldhYBAf_foX`~ zWoED7%F5CF@1>?rgYt*t&70t-_nU7y-+2pDZ0p0MMfgdm*R79N|ON0e+2fJSWL zln1NSNt55#?A|Uf!F`{@Dsx(BBmMg12J(Y~9Tta0wa_GQ_{I)-um@$w;)R%rVRI|Ce)kiFRDUtd)_wr(@%9)De%khjN z9awrqz1b>&hX)CY`_DrcsG+cZ;Z)m&hj9V%9L%`~$Iop~L00wHI7Bvf2ljydT$5}X z=J$dsH@Qa9a;$f5R`)9ej90qZfi2XHxtmWS%XMM0P{x#tzSPakp?pc=qK7g8#a z*a9k@L_(>xf6E=5v!-K^b(PRzixkUXkswRFzf!V$7fy7;g2=ac8=bP~{I~n<;m|s? zLsNQ{%_EBFje#$dwP#Xn-}r{9d(WsA9T$3$e*$#>O4gTuks6}e@7{I?{@NT)b6fpt zSK)aW7R4;0ry9=d@o&am zc}iP_zWmZh$&Ob3nkTgU@IeRl(nt{O(~MI`bcGSJHFOs4aZP!KeN|AHi6@-%gKIL&wWj<=fFul7DpSSsK7F| zj~D>x+!_zTydcyL%bF&%*@(TRyX0$_P-O$5+<7<8q5tru+_SG`!BS8ZrUpZ1AMyV> z-op8VyA+MxY(VPzr%|;5%XxjkwF<6EAafQjux%BU*S(=$f4Y%QNG`xku2f@w1QdLT zJuiR}1Fa?bbn&PMUT$Ie=I|>^F5KB>s`uT;e6TLHd?t^e3a42xg|$yaE@!%HzE=^5 z3~3Ug3Z_uDlCA%)gBZRj7oGRrX2F7|q}yUj{dAw!{rY6Zge9e3ibaM4#9HBj{Cr}+ zPt9?b08sv=sZniZSM5|HyXUw~RJK2FeR<(dmC>8`zj8+O{AF_id{Uu!KUy@Ih+j;^ z4bB(FD64&iIq~ZC|8g81yC(v<^o&90;F6>PWNY*i@=#lSe&-@@jEqV8?CBS5KR=rg6QFW%su3MEP|0bOtk~tOHq)b;AkR!cxENAi@K&^bb4y_eOxSuV&af1z~{_Z@F*MFDwrD(N4aX`MqQ7u|H2ivTN<3 z+sDg}zIfmSS_OVR<>7vrtLlkejJVG)e!$%@pT{Bgq;{BCPGYQ}-3hO#U`mcMz56F( z$Xt-i{XM57MRH zQ9*_hZmVhGeJOKnN_uZCqZ#e!R~tsWh+q5z+T>o99qzLI_D_`SafjceBN#5;RN$_- znsEP)+KsP@_N;%mT=CWw1HmIF2Qq_PmPn&~G2>|` zdBvSjNRIWCmgYxW35B@sJ(bHIA^>-F68-cCUvmL(K$os1G?xPI+5FTbjaMSM58fPj zwk6H0Xk2ixQo9$CYWjXVu%xrV7g*RJf6{-UN?iZJZ55K4A2&gj2-Fof`Ioilt#7`o zeG_zK5&OyR0iCs-=k_T3m!F>79?*%EMgv5v}IRurVw)Itoz zNi6L3>3*R0crW;wr0g3CFH239%V|W&@81!GV;L3T9F!u6D=HR)dy0xp0pRb&oQ+Gf zJn8c-AF(A2ryz^sc5b<0Tp^q;<%T@58zPN}LAFX`=Hq5BQes|;1sN^WRNx&u7IO4! zx#k>mr12#g3~p=d$lDHw!!N{(uxoH}8H0*}|F>|5{%HVP?<)^t@?e^j7N1%=899wNC&`<~Pxtz}l9~>ia|FPF@0Z75cpjz^Kn7 zRH?sEY^NZ5;CKa)knr2>w17rzPwJ|3?zuKJcKJnf{Yc`6gz3S<+r~PKjook_$$zT; zqnz!b?2luwS_~UR&(zs9TPkg=0teZwahO(pX5BKsuN}Pl5niAD%hC{o>9DtT~e01?waJ%)%!OJ6OFAWjwfqr~lc@ z0yonP>1Px0a&s5VYVZXAj6R08L+OEC3&RWs-D!O^YObo)F$b(qFnR(UkUi*Gy4Oh#qQ!qPKUU{gCqzL)O$lJC~4tR_{ zzR^+NP7O913XrR#z9VT7VFXiPX*hypi7Esa{chijLHEZ6XkstksvBN_zfhaG30cqO zg8b$ptb~1A)oW2fGuBLUX>9k?!q zh#2+GH}7jv{)m|lc-Y^Y73z0RBS5Ue@$FgUv!IKMDsl_LZ)ExdH5=neI%DFwU#mYV z>R$P5ulk!`ZHb>vc7Kk{#YRv9*T{Wyl9b7S%5~Xrm^BX*BzGkRzDZkIV!N=oSKcZSTasPpGM-pav12W|Os%wYUdFreeMdR));3i{?H)uuwDJyy}} zC;{_adwWyU%k~1-5*|PWsAH!foDLf^`I%)I>>J=5aH&yO?#fn{&)hq1B!AC65<@nH z@)v9OBT^qk@BP?GZ*%8UaIA)@o1^hU)W@p2p13B*h=yHe)0AhevQ|ZKF`1bK(%!wJ z<052$CD`IAw6%EhfhSBx?$QyXVD!^WMXkcOy_$4j10%Dg!S=xf+9kE)bP4$tfOy|nUr ze>+`?5aY9QP?>tc?ef?Af|BDe@#{@hzv=kN0zhvhh+g%;3{#T0mZyfVg0LLNenjm=6w>n;i$TIrQQjGFl^hFEpSSA7Z zABu>F?t&J2pc#H2|0leHFLwA|8vana!?fo(h3GDurtMW+4d=7>Y+(JvO>JoP^R;E;wX%Nm z9^L9Sk&$R|^vyGY+7-$CL;DIU#-EiUlHHF_miynq~`UpV45Y!#mAu1mgzE z01|F|rHKm7qMGhXx=()HwXF?a&n-h_Xtwi}JvJ=5RXrQMZtgQ#w@C#5@WbRCaq7HR z^txpjo0Ie|(<&1<_>j*@5mjQG(G*ikJo1GBNsG)`IaW^R zzIiGBWsUsLXAjqCW^*eWD{GZFH09Bui>yrkk4%MGgm3Fj&iS>Z)~+8_ZXxjVb8#gx z&bnehii-U{m)rLt%sb(B)6P04C11;ohVnPw0SF#}RQt#Ix&LpDldHNfY_xf7<7LHu zbf5d=p{@G<*aaX*)POzj*qq39CSJxWm3okBw2mQ)>;eVr z-!Nb9#obFP14paguxf7^RI5upGwpV4|J5CJODT-BBlU_#0wRiFC4-27;?p++C8^#E zdVxkCy)4a@OZt6wZdyyK$Lt2D4`2Jsk@j*NtM>K0XJ7pf28qH9WOk)aRLx2ixC0ZH z$~%^f4So!*%P;$Zrc^9E?{-hpv~3YVDa_6_xp~ynsUQY}REdGvWD%UhN9-KSx~byL zh`hFIRh89|n&%mnKq~%%S=xe0+BY$lovV|=XNFQ3uKhWNTWFrQ$hyI7;yvkvjQZ+< zj>=D2B!=g7IG7cNTXdz*+IXCTAPu6w_u&&Ggey3 zvL!iFk|hgBmYj1Hp}0`NxqjX6%{TqNo?p+K>F)6lsoxc@mvi?yXP>p#TAK{FSvipE zu>J;UyH*J}GVV-cG56L^Kx$|hXfF1M2wm@;k;Oks{+e4JWTsm{e3%RSat)q#hqAv7 z4i;tL5_Zhaiy+SAUcA(~G z+(xEZvc_`mAF91a{44Pxm`;vN?-^*sx1A!2ztEjv0?F*)#cTz*9PBV8e@W8o;EV;ekMxPjoY(L>pz%`#WD{ zL>5ySC?l*F2?!Tvw7ADHNwf9mjLB%Mf=k<;9sg3y8csk^JiX0>?b=9SzS<=H9*GI* zeB4O@Yp$WDK~Qo+d*w>P{NY%G78Nbg&1}lY8?(tYrvXuDR$~YY?P!Vv87yeYzS6YU zc5gZ#C2KX6xsXzAmMUPkzb^yMto$11b?>SqR+E(W175QjSox3t_mF{qyUu$27jxAo zzn6hb=n>w01JdT1MKiL2C=z_C&s7#oIUL^vbr_7(^7g?|;?{IRhfy`CN!T1%!_+2m zjwxR*&NmM>yKqn5a==cJH29!tB%dZcI%LSO^di&4!gFsDA9W{PBAcr40SIygYqZQATdaZpCPvJJbh zpSOf&=b3HHSo_lr&WFZ(=XT9K1{jL-#KDT~=<7#)x;w=u@a{iUUU~(6^H_ErW$^Q) zciUi4^7DhB9-XN?nI=O+OR$iFiH6HVSpFK@N{;NwUwnF}QUYtLS!Yrx-LS zca+fC8v|>|;UXQA^FY!bAdj)B8Y?BM-a%rV2)`r`5g1|3a|F(yxh_u_E8O$5EIx!O zg5%-_2-%j-)xQr?!E4Vf8kfIrKyM?m+Ybw9Inq^?zbhp~a41}K>ia|GhJ8bTRf=sV z=S>1`1`#I1{Nb${-)cjuHLksjkUxSb7(x^*d@;3HM-(7<1fnetKkTsSzwLQ$*eJ;a z-uUhSaZ{0JiuVfdRHu$2<>TU`MJW)HLHTHfe~FtYNiLs0S}P|yNU}n2Pr;~v=(b8c z?6C5agm$OZcoV@0+ECu`Swk*#^n>jtD-g)ERCkJ67L2w=T4^aDa; z@n`i=kQxDX9`RW(;dwgzKxlNGSYW(6P)^> zW6DZx{#HI=abh{wrygkzLtuZv2B zc_apY`H+ruC}J}G4Fb}BHHvcatmT9|G6{M|gueQNsT0#SGuc?b1#Xj>j+V*5o~f=g z`giEq6HNs{yhlssB%27*Ylo0vD4p4^sNWT-?9(2cc z&nup-aSP!9LuQ*;I;XpwIJl(|2L>?_rSF@B!|fi5jn6O2-Slo)nCF5nbQeLDMH48QktsDxEjD zW2;Q1>o51$BZGz?@B@d5h!bzbtF02^-|S}F4mBv*T+i6t|8W7e`c8pE@>}N_s=hsR zN9;W~`4eoeezqcNvaL)u!CDlUGsLa&Fju?EDLvhJ8}e%>OrX$fK#mbHfjzma5JLj zva`Sy{k1tR^}%Sxz}Zc9==18~;%t#3#QS|py{&eehN||5nltsXRB#Mfhrr_Qia_Sh z1fb$n#myfhk~%g_7JAh9^z!VT6+k#9+`oCZ*B-gEKs`1%i_?Px0_-4;3kVK`jz}Ze zE%3=(cVzUKEL&*$I=!ywBrUa~=M1&J3-{jUUB7h*6t!ilT)F&1UYnrX=P)-(6#yvx%~|V?r)>vSpr=|D#u7yF5|N2-qa0|PFrJane% z$}!}^N?M=WvlRVgjgj2Xhe>5{+4$Vva%Y~?Jj3h;YW_Q9w%w)prY~tO^A3DAaq`W! zw(^gt3j~@}$ly@URYT9BZ1%nK9O@E)*9-QZ*ohOCLIPfXTVzZE<9^reX+R0`1%M{J zAs2$*jiKB?-y6C%TFF4OG$oq+S>2m_u}^E=LrC1@J8W-KT{WyS*oAl%d{Z^)Vi9Up zCHRas5san#>fJ#;g!9;^DUs&WT1uh3jB^Lig$^}=z*dq9t9f*3)FU|pOJ&kt(lneh zZJ9F=mC9n9mQC>Irq`e#_0;yvQR{j?jx!djNi6k*_uxYL4p9fEL$D1$9y*vR#t@*d zo+nszAo}`#9Czb9pCn548=F>9x?nh0*OHRUF4l`;k+3rB=X@^o_Y-VuU5PfeS3eWq zw5}@4%bX4R5EgdXZOnQ>~}pCkCc(2o3a-%uCdx zzvDW1HXJngk+=`W|<(VUhs1F&ALW91<)Pz-3`Rvvw+%CZcH%oxO zY`B>VAldZG^)3YNd@YT$`B2XHL26%ux=Lsegm?JcpBFuMtOFuz`^{@*rw-jrf~UDy z)|!p7Svg7)O>~w(Z1t;`{=Y)W{yW#G=fLn4q1^)MQRmTN*MNeLlRG2IFs`Z1NG{Tt ztbfbH+Z%%t%__dKTBju}?MO`Ygzs)~P}-?x#pSWI1r$w70lnr#B2jPN8s!_4a5>Qb zMdIVJvGgygE?*r|*-TS#(@$pZ|J1us$fc0|^iguiTY#O|yopk=O+jY}3Gap->iJfQM-U1Gq(Xyh)e`;e((> zm3f9Ag`YNDojdI@>$8b>aU(y+mJS^rzMEEz8j5zvt8?;3E~{56{#rCiGK@)dC`k|a z(vS`&Lgmu`DjSkVOHD3@PWV~lphNher59B(5Qs|}^F~EJ0Z4~%H<;8^9n?oU| zE7U#Lla!FqIx4agFXi0o930TV+Qx$Qq_(DOqx?S3!E2u$#iHL4X;e{)lum zn`C?8dPsI%nZ-etOxILgvD`Iok4)2QWH%aTQV(Uk?83hA!hPMZ%|*TO_|-FKsBI@!vsB(e{cO}g~}qkY2>b@I+4 zd2=neQq6Se(A?7NVfbG6!pz>#{Fwy3GohNxMn8)#ghKL*Kr=U8B`LyMmzI}?aZA*V z9Q}VPng54sn`ty<3RS6s-Ri?N=2Rr!R5mC+8>Sud&G$;s@HfiF3-^FhgP(~iQVV)* zmV)zgA%|j&PN}EI9t_P(_L85}(-=&rz0p@nq(M5{E5ake^*9?_c|Ym5bXAq4?C~_x z{vcT8^0M02<5g;6fBPG1d7>!e4~K;f9q!m+h{hASa;HboePXpe$*p}xxouhA(O*Do z*OsHYM^|JnE6%O5DmuVwFF@^s+ZHGBGG?2ykcl*ER-)w-XjuTj` z+j&Q>qc<`--0W&Y&zz!rHoH$HUddYqTu0j+V!qJ~NM2zSpLnMHd#% zc5yK3$l;C%>(W*(U%kNCM3mXZ7|$%8FUwYbg-3yXC!*0OF6cru6Y?g)ZEp3|j?6Bb z)1+R6w39)ao6O~$>eq;VISH!LPAbnpYIx=!Dvq zs9*Vgi(S#h$`ctPDEnxpMqWhrEsPoCEyVCjZ9liYWJ}Ij%Cd97>MPC^U5Gz+d_fYz zkWJ_M*^kOe8ejtK4S>fSBLqE3yffCGm6dY?7IbUOxC3gkzqtF{sWz6)Hij++{I!HGgmVec@9~ ztI|UTP%KE>wKZn!KT%~G(fiFuoTFynC_mk4tZ-|1L^W0b39`wWuV9@NR5=04<~$5U zYbQG`YVC&9I*cdaaXi1nj)J~7TpYT=(UVS=$Moz1LLgj|?SVrrl;pL$UC2qPb9*D2 zjG3IhHHpkoeJ0Mkb6oFdSMg>k^BXH6Z;OFwYEBu&QWg6|=0pZ*bgGP`BXQNWFNS=`mr*Gp#5 z^J~6`J)dF1Mq0#gp(VTV1SMQ3*9ygH7XSF@UE-8)<@SiI2e17b6MbE5FLb(`A4FPRfJ& zbBlkdZZ}#F?DE2EI*IE$+NGHMHH?l>zeJjkn_E~$43>6jv@akF!sy;)nl*0)k@;MB zFZW2V!E98lPiA5bX@n44KzBd@fj?C7urePZ^EVZ>7Ud4ruX^&}U;Puoej}a4A9vPk zc#@Cex0;DQ2th(tW!z-PA`#kl$4fLJVD3Ti1Ksb*sOjUE8=o7c7ND(`vui^&dX5+N`e*vT7!e*w?F15s-nz_&!RT;agffW(|i);h{V1w8Zkfgqo)2Py7I>oej;FGFcp6l zTQl^BYRJfZ20aP8pO5LsPQ+8_vca1tb zLO}1-PAzZ;Kn^Cd-7@qlUC#|T@NrVtSY(|yvdYp+HtqFrZ_zjF!Q8K_Uc%0~1`V*| zP3R*e3u~)Xh~Laa%aVZS4O7JAsX-|aOK?L?KHn!~0!4OnaN6U^@aQ}%dIZz#3T3QO z&=x=bd8yD>!M6Wg=lERgN>Vpwr?$b`lS7jh;*vEYsRrDo%aGFui;|KGFxe6@Sr@ z-G7Q;?!Z6rWkm4AbQScW4%2nfA!Ihy!sNyebRxBm9G=0+@5g3fP#J?yqzm}uc_n1e zrv2z0XLVP#>n{(fd`WuOBFC??H=rq%ak(4neVfb8~B_o~6*;6R?FE3@0zos$V* zJ)VU~ck=bhT+ESbeYg8ies*@ijl8LJU3H3SZEH*~t_FS-nSbm`Y+I8XSIXLC6>_>=W3NO##uWzhtaGc=)ATrxJFdhb` zC=*Ebx*^Kdp!>gEMx8_y``2`Ap2pQ`?c~P1WeMf9zSr0c^?0n}_X{@`S+FABz43IV zaKMFKNXM@~BR17EP(-Xw;SW`{xM+0St>|R8*`3+pduw`AP{JgDBGL!l%xKS29ZBhD z`<=oS#F6-i%H%!dP+u*fW>2#1wf-GjgFYlTau8Of(TM>>p`AT&YCuo3DWX-^oqw1l z@$4Fr`<x=np1NI)pE>G4T}EDm-*KI7sH=$^pSCFG z<#!Plx$}7J=jkr4rE*!V>Fsnm63b%S%z0coNr;?6VurO^LXAC`rzftBG(20-k_h1& zyOpW1^eR+l@90uV6y^OqjQ$VRNPzZNo_8J`gs&UMNA`pJmM_MROr z^CqcY(0Nt#chlP?aV1vngOq5{F^KjiFub7KI|*slV~9WhAacN!GEY&GKHUr@VqKSqKr@J;fm15D_ElEJO1eaT%Qa>Y z2A0-e^|Z?ZZrkWfG_{CK6pQ#`cQohRYf)H})26o2KJo@0uG(*X=p%DCy!!*p$GqIh zbR7xj3p{qCn-h1Nl;0mX&Mm^GsvRGLX%;*Ut@&@YzW+C0yp{6P*BcgAJNB#I~vFEAi=}&xAu$peF7G}7+X_v=Y9rK%=zrK%wn)Ydx^h3B;-CFP% z9bN#c(!FkraQRYcY0ZyUJApMm*#aRA495v5Nd7;K62A0FPPGkbcIUq=mr$lsO!onq zx;`MtWine1jjMd^k~p=t-$@^!bN$%h57pvM<>0H<9!4vcYYpi-BlTDOQ)D@m`7JE< z!ZU3I*IA}W@dMED6hZPw*jx@H5bE4R@90Ol`ZnPwL?WB?VUhKu0G!#qw8W!!1y5);v&7?O zH^xE22qok_9&P~cwrrFUC{BwEYs1=)HgR=bObVLtmwqzKR?d^x?bT~XPI`B6L#Q1| zOPRznVW0n@Vg}bxTBYsigVOYTVi%1J^s3hYsXI~&9j;&`u%8j*k zxT4xSXKO4QRpdnMv0lWf^4m4sv{G>6F>uZB4Hrmnu%SqUl7@HKnj@Ir4Gau856U57 zgttGD6Z0Po1hV)Uyq?MJ>}*Ssf&F1+SBruz-2fV-Ph`tz>o0Go_6{BIku>58JnfkW zfLOpi;x)|tD{0VM!RCNd{i*N2y)zn?N4kNQ<+!Fu{{lyL#wX+BcaPYayM1#c^7-GR zZ=aH0WEZrlmAR$P=#^1sRz=XM2cg_R!mDAFE%r5g)76H(l?GVNaBNSlY=!SC~!r(VNOB|1(w$mPZ)mffF4a z;S=yObX@Lwy>=p$xb+I${EI*@d)}->n(BDWo8z?Nk46W~rIhE5*%UgJB5omqDqhnl zyw2${ZIkPB!Gp66poov=%Q1|$!N{+gqAC-@7VLXB0wfw>ewKj@gI6Ag6vqU(A1^Gc zCVYfs)pHXxT`yK%-ghiU{Ww_wmx}?twf`rz3aWozTmC0}rarFyi*fj+#(k?EonPqd5Eo84$_mn z4ad!b$D5`pN6#p@G(n#r;?CJxpl<9Wsr88}`>pP8zy&7l%B&)Y?+${UE`4V?dXGcoiv^lmC zgr3RBedwjN_51mxUf1|y%g;ynOP>izI(o7RhtMs{KU8Ob07V_o2Oa|x3w*e^tnq{j zZm#=vzcSr@yI_461TnvvD6A*7L{UmBiVp0Hrw5^jL?9W4DsFO~)KU9~xid*UlsQn$)E%q+AO@Y}oqJa6^xo?Vt5sjn))1!mq z$6ziG7>)mbnzlQa3ge|cZ`H})>TbOjvT-gCbnQ=oR?#-cI#JFK5}&U(-N2<+evJnE zQo5Xd0KIt@75rkR@KY3HmUV)EmpoYmpvMhS+qdH# zSX((<-CD=@6X#Q-Vyd{{Z!o&~QH#rz-jPekPsO)aTo~nuI?&q;$oeQyV3ij!debSo zrAVh?ezx!M(2(*1NgV=S=Z%^lRB&-$R@T@BKozVXb=v3$KKPb zF6#H8GwHXZ(Jj=+#IXtYv-Fz^hvynU|3;JRGT^cCy~;28R6n(FbmbKffoWy+BzPd} zGFJghOEe&77({hnfa$D8ymJ=ch^uHTPsx?Qr|?$qhbXR-tOg>%00-h9@CnTK6Cu$F z=Yv2m@lGwvGl{6ht&ugEMLe6_rvDdS#v!BRMll=U@rmoXZV-}1plCxK`&s7DK>9=Y zvD7p0w~Y$c{AW1blo?-52*9Oo)6bWG0kXBi4~?PMmr;H`_QBR~J+TjskIvRR3OTD@ zFQJPn;gtVNbk`77q7Lu)nZnMlYn;b#$H_Nr<*CB7aIN8~ zz9^!efXdxAAM%n@m%d`zvS$C?IH6x)nja4conc>h`%Kb}by-=EKkTu``dvHBk|APu zuXYl7OM)BWa+F^voG#{kkT<*H*U)c(Y1^Jn?@tX%Bx3ep^x9AK?iYwB7xsRuhZU{N zmv5PB48D(^m+)`84a$&b^5zsG!a2t-Jm*h$XK+&6RF=^|=#WGjiIxSTNo&FMpPWWj z1qZhe8D#e+DIMEq-ddRd;EQ^sLicShKGz)6qe9<4%K@9qL@E*)eo5W=@>_M$K|zko zDu>o2HiB+^C)dKG#urnKvK5=^X~tH>=#Lk--oZ=Vn9ZI3AtmIu2M@VH;Bb4?DYLkm zc{#G#=wybq@E1>^$7oNV(A0=!fOD`Z4S-EqW&J}{wtqueKvq%lk#s#}(YNtLZPGHy zENd2gRUK%|KX&IJFrA=LB$r%nPah7F!u{Ij&&}+XDY&N8G~#}4%30zU@6&HPz!hhO zBlOfJp+aw>bsjq|U7Jc_+P$PcIR5gEtigd(3ePmViuo@gI-DLLps|%gksM=RaEtup z@4U5QJDC06m1y~0(5J^PU;T&CbhEPa>cK;np8PrSp@l2$f!~HQQR$Y@uI>F`$SRsu zKJ0SVia72M71+SAyKX_CDo;m!c;6w9KX*7rbtY?{cnaASO;iYyrTiTE2nTc;?r?Pl zX!bl&8xd(HYyca-Jy~@FL93p&l_#&AeFYH3_Zo6`DO&#gpJ9&kO+3vn{9S~L#NtI1 z9ee77Ul41Rs)&Cn@vn{`;0bZAa58=zYl9K;Rh=j{SBtk01~rvsU_N}NU>Mm-6iKW4 zL)E!b>LnWNUYbYgvH+zfM@D2?-tuqAk_wH8M6M!kfl=#HzPo-eN z1QkBM^s}T*_exZm#?}A2;A2vdQmAGYtSvk);Gpgc23M_B`b*G@uiU;`j!Qowp0C1p zCm}H)(NsYIo3E^Ta_62%&-!xh_Dy5sp%^=Q1F|nZ zr*xGMW3Pj3a@3tG8KlgIwbPy^SywQ(UNxng<9)&E>~gC$3_j?#H3Gi-?*N3zyUFO7 zMFV(zc9`ttJqq|Rn55tI=IEwOtCBkEw@|wm2;9U2{BAG782U^({j5NZCv34#ktrP( z=`w%T-Xrna2gLqIKJt)fEx&f6*FiGn?F0{u^YDTR6Wl02)9&U(V_>tT{82^5MoJ3O z?j$WbS7*vFzp>ay3zd~l80r)OpJN()3qwJ&0iWoL*b-ORZ1vhsuq2O7~?l z^G+N5I(~7U7AAD6hMWxV*4Wk{3XtxS!&N1^=G`u@`*Deu+JfjvX=BLv)NDt|p2gGy zs^7I&7{d+4n;&0NC4#qiKsC2DT?LFsRUyDS|4~$s?5Af{cww!TjdaAC>d!`3YwmI6 zfhP*#PWuDj8B+QIx*c~ZwJMvxZ)OpkOYu7kBwD5SBe*Wb=WA^rg$-zBXRPi!zZ1S_KSu(H(e&H!kN<&=7*#y zlXvTV!};lnz79pwM43UfKj%$R`;E}38^zuK`Ml&SWN~0y1Gh=A9P$Q#<2OyxxZTjL z$|vbF{VrCAB8Dq!mhHx+oL9YWb1$>*V@N7JglB)KKI3uV1f~6n!W*Mne`9T-Ct}bG zFkCS0A1c<{P&EU%BIuI*-(1)Dk3W0r;L-n#dm=$XXR{6LMfUu(@6^I*i0k0g?2nYX zjW&s;f$!m~aTz$qc&PZjE-$$De|Y-G6d3s4Gm%|b<_6|MM4%ZkjjP(%8WqVJ-C!I0 zc$^S^@gm~cFUB8N8Gm3t&%0hNNLmr^xc7LQe@4vb1S1`vuo%aj-S$N7LEV?c879h; z5_F!%(gc{ipP3?;Xl(1?xEKp8gtJ6&{XN_k%=^DRh(&0keW4d+5=QmBDIC)Z3z@C< zYuz1JB76@lfi9$mk#y!W0<*3CJgf`&zHOujz2cq~JFRvZ?uvYJsX)FTWvxmD)8uAX$| z5>@k!g`vr@x`&fWu4#)18?-h4*t*5`*Ybsj+O-#5tVC zbjH7)fX$4}862my`|(hdt0)XX2HtQ6(qq8wYuB}wPU{78g(Yjs#t*&q+dQAtu4|Tk zF8gNl?CqT&*Hiwf)#R71>#diiBn$Jq_~uUCzWBMJx)W6mX-2)?0o@Ct;SAmiyz=(D z4LWvbz(u!ii2B5oS&+nvB|MMqM#n?x_f%wnbEH;%+FHco_W-dr48w2x6H10%kwf*p zqm(0w2*W_e-{M=XXMC?WasH*qCr_rnT1mA6Y-Bn#A zY+}Y=|4YHMxO2hd`yOkcqd>eiv1dNDJ^mu;1+GD{Gu+3?(yYY_L;siQZwcv*rSwoa zErR(3jF3-`MmYouBs~U3a2-8n##0wd?7mLr4n1|hoT-^jEXnlcEeV37h~@|>P@LhjBUlpr`hluO8>5f-&|?er9Z83~dR=R& z-2+67*Pf$7{AG7;&G~&U&)zcPgmI{ArOcpA5i+*2%qXsNI~g1;PE`>H7^$4<6&Dk`~p`^KPd#(^n&$U7PxHOWySe2gIy~*FMjAS@XlN zlP=9VwpXaN3!&a5D1mU+&3?#pu$1nU?3*|YZ#5y55-c1RM(IW8m)|c}e+U>zOqSzR zM-Kj>lIAkBsIE6T`jCj+vvq4hp9YdBbRtCk8OMO$#Cu;^#~ds+fmvr@lIw%g^c<4PJE7%%V{&Aj#MflgtEeUJ z6dE!o7~Kn3Rbo2c)ZN%QT*4+#Z#QHFnze)AIv=w5FQ^`*11=shBQGm(tnqlMnSRu% z)A1`#Ynbus2b3S=WMz6biF)lgH{x*`i~#m#rqCS+9L<7k$Gnab-qzeMaWzhua&7=> zO7SGR8P26li-XR^zY-=rTGTrSz_$Xp6U9e-q63wmpIJSMlgIol$4ujz&Zh2b80kHy+o3(&S{BR=}AF+8Bgc|mD^1x@ZB&Qujhq27^sIu%Dg)IY#qxvvb&s*64 zur)q9UMJH9v#R|SWkWp4?@?(dSzoAzV> z+snqI;35Q{NTEEtg5ptS4Od3)x0wva_r0g1I$?^Mr|=+$(F{$ZU0evG1xRR+F5m3N zu=bdU8z&`HPN4q(+L7R25gPtiUE4!X(Gnza?Ax8VxYcHg%8&_Rq?|u_OI~OCR?t&j zH-U?z+|4wP-J2s=NeAEw0$g4z>N4q60btrbDH8ui8CHDvX?DM4tWp?8_^VhL=y#-5_hM6Vy(&&6ctr9>pp%RnOc2 zOnG>Z$qUmQ=U?-UAfteN89ppo)Pp4eq+2*n}Q8jaYw~_AeePH#C^t@5M^> z?pbJz+|o!x32m;juP$Sq&?7#qz!aF^fUz1DE)ySduzaI*M^(R%*S;yv8|o~1g7yn(odUD|FpQaQ=AjF zzIBH-oua$2L)%y5#kl2lE)X-HKFV|uO!|<%ZGAw>Q*N=9KE~~hxUttA!V76Q!awRljH*21EE8aSxVyA<_PjG7)~?jJs0db)Rs*>Nd7RRBC-C9)95L> zuyN!gq78^qMh7_#9=M1tFCFQlxCE>`acl?5dFx_{NXFeV;%)-5$l zs+_VH?LjicCg4eaZ9bC1pP!V-@89yw>#c9^mq^WCb{)vBJb>kE3k{%bW+x#J$azS* zHHzr4Z^u~VvenetuClrZ=bx(p%Ao;8H+QW-Q4Ea+xo!(J_W@g)7uj^Z?}}XduV>z~ zkO^(1`Ly=a7FJhvgVPOPPo2pTJ=HJN*8Z$;epCCkje}anm~FLc26Y@r>uO~WPn8yU z_j$~CWLSBYLWc(LS^~I%LD4&eE#2XD;|S7js@~sfkh7DI-`YTKjd{);GiH5!_JJrW z*@{agG=cLK%(-T(c=8Z+sqr$9a{zMgZ94nwrC`ZHW(B&P*j3#rRp*$CiWigjAs~}F za^@ho%|x>^@FeV4L+q~j%&nW7T$5p;h6|FDKV=DwerTJ9+4XAmAuq@o*tt(oE)XSj(LPV%A!*}H zBj&5GMzc0J92|>#MO3DG3o9NzT*1EhhbYJEYXrWhO%Wb~RC&CPWWdwxi!|m%xo~vm zSZTVmx*9~v_I6UtTqR!YFNeTGy!B}b9dUg6-S>npgenbmHeU>1Y0YomVYRvFUBY45 z`DtZe1!cZT7i=$?AEwq(uzXW>wa8Tz@4GF);r;4Tt;Sj|he8dj{MlM1wrE2amB={z!UI616O9CRqJJ%90IG)Xw-?hlQbH&ypo9$a2~ zHL1NtLFX4*@!)yT3)5V)21C0dKJ@gtvkdJGp_)rPpCVX&3k^Ji%1rFjeXbeO<;rH7 z)j1gtPvniz1c9@I29z^|4hPAAf7{xFH7>a*iYSm2?6NwJut%Y?2M`CW7UT)Zpi zEc8}F3QzLiKq1#k?*fAHTOJGXk?aQd{0q%*joX_@W{Oa%6CE~f9f{fU#lbDb#_+Ps`Aa8y1~1zb?fZe?xQX5E zf5XPta_#v{)nE81m>7jZDud;SH^BG;E4%iX@lC@jH+t~dD@AywLtL2QX_dONYLvM+ zLo@N<=P%p>j-#TeDCw}dcUT-;FJcyFKtBaP3xtn~Q3V+%KvHvcU}@GRE}YhOQcqLA z3qSK{xUelr^IVmLSxCJ%CKe=B@?^uzWqA~xzrLT_S29vj!ZJFPeO8O{S7>qZsSD?> zzEndQ&f@O70XK%hXHo}u1|<h7Kw(v(`rjHxxYFcBP?Xs zj4}`Ukb0;#BWxx65%MxPpTqSiFgODI*{RvRr%hBK{u%-X&X>&-N}xUUK?LRc2Xa2P z9tY+QXCy(X0c_#s>|`_%3&H`odxBttb4=gHjsFGTM~R|9oxFh5?`AyNKFj1h{o%RV z)aTolyIkc@eK`fAD8ie>y8sMS{-n12p(32C_(L^#^ENl@{~~$mr42T=lgd}4)%vYo zPF|PQq$NKhmeo0IY?LqExf<4d_8(0Gimyhz26JUhznikkf+m7|*iiJ{v*!3`adh&vw{8f|>HoY}g8GIQg~L_v2rz}A&ZN<{z{;Q`mg|cI zWN8B#+@&4d&P^k*^A_yTXSKsJPPU5ZSNuk?KUbN~JXn4H_Q%DwAItC)^v#7UY^aon zUmt0iX1mQkU3Ilb1w;ocb||W?|5)#m2DxP&HizFha<3RqE0CkQ2}mQd)h0&r7ul8k z5<6D_TBxDi$mgF8ipGU4-ncGl1vu#^BS$!({`0P9@Q_{6a~!`5-U_Wdk_5?LQFC!1 zdf1}EtOs-wWdN|yxIp{T7CM4) zpA=^eG|xhHG^0#r#@efJL3l#@mbStls;{Lnf2jN+V(?fG$mk%4K!Fm` z%&pk@(07Zx^Lq+ynTmh0X8c%rML8)@H;Bn{x9rf&uc~u1mlX~6SY1adfIU`AL4!QA zs-*lj!ODj6G~3V>slkL_Z@-^}nXv-zvTt;CX!k+AI0e3fsB8hpzb$b8BVSFI#7Nxh zf2ahea1oRab1a!3Gge4?4Q}d}}=Dd$;R#N@D_A9Hhk~D{qg6jdUX?_d3WoG1y7OapC<9SvPjdWNne zD_-k?v#KFlm{xFnguwDxpVQ*ew#+>7gLh8q3^&g8!{^|SOjg^xfe}yOu#WpRf=#~< z1+bcn+K8YrvFx@Q^P5`vkK!G2vx%wG-9&UW;9$=Fb_Ix|>$EZm^|9AF{4!ZboF?V= z*F$d&s<9sX6W{(LzRY-7a9;`*vCQkB0w-_Aak8VtgF81lIY&hL$V-VvbC89pxA!*H zg+!+vu?yfJSAs{<>PTs&z*U@R?3dtA)X{;nmnL%7&JFYy@w%wCE%|+fgxO<$o&`hD z2IVAUh?-}?)j##-;j3KzL&bwhLOEi`#}@3iwD62Upt`2TkHR+c<;{Szz>9SH@i5l? zYw5D~OBOLq#qJ1sWqsQBgJAjxKIy50R8Xk9*w?wW2qrV24ab7~7lg|Sp0z1HFl?`~ za-GOmAK}jS{P&T5KnQ#^8O4r0C$==yB!aNoV4ISu!Z_SwoJe`Wd&o-uq<;$Dto1~VhC(tsr3SXLM4Dlv{1u|p@Q~YcESAwq2qFD4- z0hgiQPNs=J!9JtRn_*aNI#X|UcO$?HXZaY zStDj5uJoLb{jxE)(UD{1;VNmUt)rfyJMp#18w9$Z`_jlF8h|GXmqR$Y)fA&nDJf+i zNf99A9ME!-iJaNQ37qtO%^nJ}%x)D<7$9yd86^t0-f+Gm9FpxkR}`O%OaSrQ>e*K) z`-F=bQeqK74?%p3Sa5bKWp_#IJL>4+k;yM?n;n+yj1tUvXv?3gB4%kVjN_>*6iuMrO{Y;Jit&Kb?tEC+T zS$;W#y?Zf)Onckt@i8ra0~aBOU1asKmNQCrQQj^ZxXft8-O7aMrA~VHZ3y_7QE$9G z=)G(@iAz~+L*x9=o#sXHmxHbWb{D3cON75R==xuRZN5mL^ieZXTH4)d$=)(RJKO@* z?5OOvfMG|D2LxlHcPe#aby_KGWkZXWx5aC!BW-Hls!xUQ@R-8nU~)rE8kn%&Z+f&* z1+S9~-CZo5w@082?lV3Y7KK_@-p$Pwsp+JccWm0Z7M*}*(yVQPchp$HhOxU_jTq!4 ztfKlAk^`{S2@Hm}S7U8;qGOI_6AGo19somsUF|)G_sOHbJv@YI{ zc|lSHNvG-8quc3$(q$Fl>N_T~;U)%KmQ9taAX0cXHi$W;R|f+VC~D}p={s2rz9$ld>;!l|qOqi9#kJ zTTJ${UD-oOWR0=!%Zz2rdi9>}-}3&RyWZ#XKJVxKW0Y&gT<3XS=Xo68@3BJoW+&(m zJk5QX`$F{|X8N_&Pt-&a0>^iwlt3M1=5AZA=n0UdegPdwl&5Pv)iLmE6WY9NLM z?0z*shdk0p4nr-*%xl1;L*-tDUvJpM$66_g^|v=jfBRDi(^CAch3Gxenrkl`)R0A)BfPh3;q$ z(w);EWk7p2@DIOUwSapC;7%*ufG6m^j0o;p@tUN8TIj>GW&5B`Y6diM>-(74su^;& zMiso-hS)`3HxOGTHT=|Q$XHTV3Nd~6mc8k?bdeNNro^1#1wq40L=gZNX5N6M_EqBr zpI`NF!0`W}L+M{3TSg#QOb(z0e}AT_5v>4`W`lUtVDD}=R=7^n&#W@~&@%q?k z?mj34zji4MQ-K^Q!c2IG>WS|9P&2eP(IMqvV>7#L_(Ab}R7Lc%qP+o6Yc8WEt``l~9 zIxAV`RyQViCUUr3+lzIbFMYG@`X7%^fxMto*FTP;L-*~k+?)R1t7>bS{kbA*DGzK* zZ&pd&Zum%TzrzhtcG)3aDnFoR1T#V*;rX+9=O%mrK2Kvt6inQZS<@%kabzkLWF=Wz zxXS8xJIP;qtS;qah}&_A&iTv|Sgo(wgMa@M^?r;imN-D385^J+u3$fHKph)czFu=DDqQjQ5`f#a^W>EHDPZvMT$Y;RR`*BkuH-Ys+um>`5?;>nm4#aKw8q z$bX@<%Jb09#|Y!VI>{d)M|FueWMV_IH#aOyI;u9xr>JFaASJUMzs=5AMVVSk1Vv#K z-)395mgPS1?wQf|@^))2{q}=b`3BwxR`?Z}cH6ojuRvFnIejgssN%TOV2_=P;Fu=* zRLUw951I- ze@J|=a1LF?vpSU000kOdYG_iWybW_Z&3Q-GE+2I*&DxBcEuxsSr`dYQd?>226#BtlYmr2!E7~0&MC^^*Z_|E zTm(?`PE)YkPh~=OZ7a~|U$0fzDjReT-TA&>^5n&A8+&%7h|^udo_gagX%|g()+ylT z8-X-#;=LLJj-mbpt+9Y^eBPznfg1gD_$u&5-F#S1v`28?#_L zCM#xg+4jwfSIw^(=%xPgsG<(8_|QOMcjnLsj%-23-E}TcB2-?vQU#)`}zgj2LoNcTBKa-pMq6GcN>W2G^8!_9?rmv4xkt|z8bWb zXYJLM1IOZ3ArfYZeA|Pf3@#7Oai5dKpiav<(AP-^vNPw}aIJr$BC-cboQ>c=<72Od z-T!6w?Gs@hkv>}(+K;Vq{2r)QOtyLNZ+MT@ySeX_zT#I&8Pal?9~G>-B#(j__=CxZ zh&BpOHPAgCCG3z>XDv=$dv0HPqF_Tx*(kC}WK4o9y@d`N@#3MYm~i5r?}bOyi92$P zJdan}Tvp3i6M#+AjxWaT_Y|MSqPQ%vAAJDUWdSNq{H1&R`?5Vttm!QfsLO^QL)N9F1EVqP|bP9Wu+%Rom_lT=1-JL z|8lIKG%lC3_l%_lerpHgaA7+*WU*v9-5s8}*zm!=p-);ryk#>hZ26sb5eoW$qBa+i z_A~ZbpDXlt=BuRg+lSk-lGhk zDuW&!F6zoszf{!gYLs`efy*iATJ{wv|8P#CZerw;wbQ#1CtD3?d(20LBK=(}tG1lS4X$Q-2Q=3zV`} zFo+`Bu(i7w9uRCjzWom53p36B< z?wKqIO$CD0dE1cAbpFR>ctrI-uA-3FE6yXt74Dx}_=%EM0z>0H(t?nvNpaRw{97u` z4HPR#%B=(ztnGlTv#nBbqregm4u?3yfGfQWii1PU!#`1YZxRwSr!?fvkw=6$KT(k| zSMn!{QflxMW$Y2Tig)fmPdf`>A^`$a=MVN&JwJ@ZQl?lllyM_)KmdB-rwQ;PH$prO ze8)nM9zT%{5cV6)yaQSso^}fTi8?(*`IOEBSn$C~Xt+&R3F_>TK%Um>p)(i3uvUh) z^78!-cCIQ|R#2J`Sr5^sDv1hoD2Qt~xDmT~()jIhx$yTdcY=iYAAOFmdje|L#C6nA z=@N?Ns_fmsa)6oZ4FaaSiv+H0FF2Knv=pSK4qgmD!`=8=WLz5AIm`sOJY_KiYJB z=q>cr8+i=(w-H#Ui21erdXzmZ6(ayjjL%?`UDDmlfu+y zPF!rc);{#%+vd(sPqkbB*u=_7bQa>xAa@eZf2g z9H9E++$}#*SA{4@oa)qk`#sES0yFeke>86k6hdB}1rInvY4I83I&*%nW*M4RKF);9z%cRm=<{jUdQe zxEk&g^xT|5|F9M{^f+XA{LQ^%s$Cs}YUJ{{?v00W+ND>4;Pm!0e-roRhCb;xPTmWSZ$5fN13h z%EZTY_tV`U3@Q_AtE37UCl8DdZrOjw>yXjMl8)nrqEE{e6>v4^U-sPvh~}ZeeMzXq za%6*$C%w1@4j7XLSHF&CgapIYSkCgwSj8DIcZ)5u;n)D4xwo)93}4f?`78JMYtU&u zcXz0QR7J(^h?9Ymp_Is3^}!o5Pwt4wDzSD_#;+klO5lt_o;^ryF`2g`=e0;%J&;hk z%HY5}hsp^=G*o_2SH+GfLic#cy+Oe{c56)?Xim(`4%Gbetuni$>-_AOv!2_^WjdOm zUq+9s2TvBw1 z!y{8+Ml)LJmZ7(w%>00hU-r2CI9Q`JBNB|?QgVz&_^W5HMV38L26XR`jF~&%=4{&6 z*9&#KZ@>FhIO)k+L&}%{BJ_&x91BD+vOxnH6mpoC)zJUyEAq}kD`2?x)4 z&%RUzvcrNZQ>lqR{dyqlx=h^gsmyF_ zpDl{#$(#X#z=YTY3#xqt&WMdGopm45ig%Q>PMbDW(`)OOg(Eh3m5cTdWfGtj*W)0T zA52pZa&QtDa1N!7RcrAxiiLjEL0&!tg#(Y2hvR0=S>XecCgH>GjgVUYax_;Om|6F_ zGohcTKY4f{`a8r{@s5HHHWENG0(9d~!2-xXz~sA@$kesEOE;>mxa8{bbWLcY)$TPN zUxIeL*m@!Cl9TPOM^~ixqS%TIAX@!HxZ=D=PU2;|ef7R_k9jE&Z)rJ?7PZ;hd@1-E z6qzG-bN~*K+i3#)5DBfyPJPl<*@;@*V>`hmqyWj!`cChHIw1d>-8wL`OyFRF~Ox#qlix zqy4|50R9yXu=*nwRQ=ah;^_OTx0T2b8EXtIOHL8#y(Q-s$YlrCm_diZm z3Wh&kcLVgW+_t@A2pp9y$hv@ZUlF*JnLyK$o(fyrge~kF-nKS0LFh!oue~84zpTPc|AZLDqoXS zh^QZX%37c)F-n*`@Hh5MiiSVeIH}KYVCh92CP)ppyMAK*sL$S-KV}iG&l7S<(qj=I zjaG8jXx3}!N!=cma9H=_two9a1>Z_64zC+5(b=k0*`hEJ{NW;^t?`AL0Oi?E!~K}< zj)BE^Y5G{ubpDK54r6x6sXFrEwMKt)R-&(m+2{V@>n18Y8$E9l0+}^I?YBvelPvEu zaj&wXZ?+}oxO6sf6b0f8I95B-rX4e9-oW-M(X(0P3rz-$6>V{kdz4q?E8`|2;1F+< zX)jfln9z4s=fpWhPFY7>l6J`*t@M4D=b>qY# zzqdj-hB3;kY64w7puCS>+EPPaOsvlVepYz z!~0?#)W_pULi2LRvfmwfKJvy#+J{r{8y3R1q%Fm%&nhvW%sYBGx0@Oz+R%HS(<9R^ zS`d9iuHll(s!HZ^I5VRK7~?&u?+6Ls_a_wP$0&vRJhZqPr6?ScD43xnyl%Vyy8e(T zSkA-p@La|3&dJ}e!8@S-IV?+^`Vhl71VH12GO_emCl{b~mj9x4W#UlXc^Z`$pbV|B zx-fiobS2MJXiII(u8~%jdw~bd_;7%7_E!Cynlf=HPjQ|)nW@>#&=Ww;fR$kygVvoS zJ@jo8yvR>f)hTk008dLp#imYXkG{9SFXQ8Fhr$@pV5mK zvM{um?--UGiTS9Np$G6{vI{Wcw}XfCd2!V;zj!|;yMrq>*H4+58&q~QWa0+9v<>|R zdhBNBhMZJpo9n_)?Mspz((C&3l!O8f27ZY~m@5lF#a_c$q*~`Ns~P`IA5sT<)s@0c z-c8_$EjEwopolL2a*8aIxYB?I?DhB$Wg*Tx+OYs=!&*Sy>a7tpQ1TcYs5s|V4V`mE z{YsH39U)wRZXc8Y0Nza$g*qDnTUl`!D*n^{w|4CBELn+JxMCvRrC3R2Y$*UP`3!tF z;4;6^WXjA2IFuR+&zp0BBDvxS^JErRHT`SwY;mxO^=XtxWvWcas`w2pmV*;Zs++A! zOH*F-{c)!Kwe}Y+q12Z*YyL>1jE6Ejm?B9?6Mo}uEA@c$2UnG8J4g-I6{nxdNVc=lq_2r8w3J~#uc(Ory6+Hn&HhgO0r9Yq zvAb#go5Ju#iB($#4>P8;<&G~zliSOJ(Bw8s^p*K~;`H9P)a9h%UTVa-hNih}ngx3G z0L}MA_@GvEe8G-t15V`7y4vSnb=8F<*NgfbIqTG{Br}~80!Ouri=icy2>nF;fqw`drU?P;G~5Xu4Au}+Kwf4+HKZ91n#BWv0&YOm7Ha$AmbrT% zKIrSq0Z=UsJYl*RR1rke;H{4b`~!rlf-PvRR+dcggzmZs!n2x$5wr6Gion~7{zP5e z?Fj$^|5m^`_0hBh?#g{_|Mz_@^igJCeRWcpR%eZrRce}zb00@Mv8;Gs^)N1O-@Ubl zyR!iCg8*-!xk+%7SED&wT&X$u{+49kYs9@9DaC5D3RJJC5F`b4p#wIIu_ZtQC3z~E9MlI6X8xxvW_hpx$}byp3?&g=m)zi9vstb z0r2a$-ap_&j_fvGCZ<1v3Oo0P|J%0Sx(i*KWA8G928=TRL;U5l zuSG^C%RYnQ5W#R%f%Jf;=D?Y4wH_e?b3)ZoID475ISr=0{SLEs7h}5Skae#(YDfcm zTOJaXtE-Qj!v$6Et2t{0k+&saH~Ri zxZHOYNHtzfT|v1^Tt>&@3h4X0QRDS$*bnM&L9^6ELZ}S&Y9O9mI{M9jW7Bvo($4;; zUiiyaBo9>m>>NuC9e`n|gAJQ>2iI>+WJBe>)OiQY259Nz7ecLdL5jFQPXH!?KJzh}%43>2o;}1%3N01eA~qz0FW9 zQNgPXMudF_ai`2a-}v*mK!UhwsXU|RC@*WpYc%ke*JyNc)!oW?S(pwzy5;&xrD^E= zcQvC&Gy7+ph7K9uJ@QyoUSB5n@FtW@guYKUm=_jl1-h?}p9!An!|xqHG+lM)2 z8NPkRax*-~m2Ct@BP&`fvSLz5(lF;D9gF;6f82%YqPR!EcXvV)Lf;`w9tyX35Nz4! zK;dCZoWODGZ3da4xP@l?*IKR=P=0$5dLfVGfnlGxp@&Y3ToG`(K*0SaQ1SCu$x`t2i4M#nRR;yh<$*!Cl7$gvN9u-5ZA0N8Z-#uew|0^6o4V!X+^Ew@ z5!wu)kv+QUmprnZvpgZaGP+Iawd9F{T&jcR^D6g(g0Bf)D!be_JW4+bit(e|cEib_ zGOP!8ll%aPI;Zs*bm(qpdg#;Vs(n%;Mv*zw0K$G(i_^_d?YHouXBSAC{?nh{?@8K& zLT=siRZe$!;uTfo#H+GRtahGFp|38ZgX2K(J(xCurr|__=6mgn0!r|Iey?FEzq$Zb z6%D1y^U-GwG9jaG_gF%bMJ>UeAe32h!a;w-nv-((g!zs2_@M)MnhUw62Yw84`d~TB z26;7-zteQdu|ETHN0M&u&q3}sALKf+{V2m7$i@TJAm$5}S!m{(<1id$ly8H+_&Dg( z_TZMTJn=iI)2pqMUQwuJQ##nIbgm>I@Zu#9`k-MpZT^UB$JbIO43+PK?a`z%pU1v)&)ycefv8TS} zbEeGGhjqHzjw0ufZ4ZVe(@BL-hSUwHL%I^ru6#lR_Fpm$jm+R39+57GcBIJH9eH zPP(NYGoYPY*>d%RqC)uQ6LsBPH(5Q%dT^ZhgX!pL4+^DX?lFBz!$!1qRQ=#(>ytBS zOpCUegGCxmw7vZatRb|=_BE95dX@;X!5&QF1r44VNhtf6oKFcP?y@+!wdbNJGG=PN z?UG8xd_(xwkD!H3EXz!8nf%t0W}r_y+98Nb zz;kf&zRz*hBDrcE##zW%8OdytBEYOQWCjd43f(=?c5BHGeIdYESyg%0=E}R$f`J!h zHaQMpnR{^DO_ddxJiSsnu2TFx4I74bZM9g_mFzIn6AiyqNWHh?gmXmadSvew}s8cRpPg-+dHSUS6p>15L9yCz&T0 ziOeh42ItmHZDrSxd=H#?mDBwh)hk%nepEs`jUm6?-|O(LXzl)6x9;xGDpXtF6OrWh zu=V>XNArSSIl70X{rxY8`gT=n%c;LguN{2w&BX7r%}-Q%SJqEdC??l-ri)&QtXHCI zVOKMo4cf9wjuG}~*hqc6Mq9Cx{aR5cx=3m%94xU;myh?}7u6?A?+X%6yY7u%>_@Q<_B@NC=Cg4x2V=k(fI~uK|#$v=~jiq#|MQJj^JWUZD)I{ zKC%v$yAozU&A3X|0<2-!-*<)2HS)`8zys%4abwmC@I>e8N>Dymfzl_%l>_4RI6Pd+y#f4F{6R>hA-?1Y z3b#N23Jrww*PGr13JrS}x!bY$^cNbahmLdo=Y9N!eoyV(xHV9DK0F@{0W!xB0rGOO z*9G7D3MI}G0k`l18aj`=6Wk+a>L<$3acL0V0oHvE!%`TB%fLOVres9oCLekAxlPEPi?D>_5l9* zvmFc_e4_zZ2IlPUMViSplTvK;`yMS%kHP9Uj!}2{d7Z^!rqZ8tdmp5q@#C-mDlqo^ zU!mRFmrrBDKqa3WVgLo_0qUWHM%alno1ta{P(3s)@;rZr(4FNoafXgwZcaNFJ(I6r zVLq@)qmdar<^WBdeT=l8Ysn0F!}6>;KUFB?+&SHHcw48>p{F({^ijmjl`K0qOtor2 zcYb^{J<%YWNgDX^?#`t9CWDlzi&J0A#P)Cb^V*1#q)s2~0x&8_3y%E+7Z{Y!Xw>3` zm!|NWJbg^-Sx>pSmh}hA)+b_)m}Z?axu?1PaT>sQ()kPtt|)LS;K3;j>_ab zo4~w?sC)=Drr!v@diAtLLGmQUUb%trS@QbA7G@3#lfG~7`*YFf6`mH=$%IJCo-@C{ zvcb>278zY}fP=`K$k!);|H&Dk)_)ylm7MEiZfNz^DY*|7rMNijJjA9NOliAnmH>EO82qFwSiA1Z<)Kf z75!I9y(xv5T~%<>W(~xD4B`KZ>xsnWKeJ{2$V$npXli(8lTFN6vSg9PYvR$@~S3Cbeo_UhO*@wS2EO&A#6yz_z9z zQ^d;-G{L)ZcQUC1Pgu{)*AW5=uyuFGeC?4$hTTe`azIh&zT1Y2(~NVOco3cFS-zP$02W5jGr94pST zo|E1+XI4u3maa4mb;TkZ0+N`Ydd5Mxv;2b-ZL#ZOlJr9NHuH|iya-+z!Su@D+M_(4 zOsYTqVbvf*JDV^Rp)MG)cX-oEUtYXO?DY>{3Me_%<+ZuvJh|qDS>jm5Wv6E@DqE(! z^lzxOA3LL(_h!kaSU2p=nLTexawq@Od?xZgikMrziwGTMh7QcFA=blU^6mM&ErwA; z)hMWLFk4PS(h*{0x6;2*B!nE{csarqOxsKo@5T42SFV2!51z8im{PEa1g zG#BuGbqD<^0MS5Z{r!!$BB*ALf3kyS+087jSk}Oqu1g41z9QIp_N16$w$De zrJj0IDY5oarmR3!Fu*Ke<`!@woq~`M5Ton{gcrJ2VkYz_O3@AYj%#?pc4Kst zqDe8}{SultiGM%Gji&&8!I90w^Hc-j?0v{F=n9pkg9jXgam)^8fP*Bdn{yXBe#eo{3ryZv z8FMqRJJy0h!?Yo!>N;R-oO*5|<$E*p7zx2b1GT(Ibw5$b%gAN0xg zKmpW6nbd+~@l3Ts#55Xg#H(*pfOc?XpZSLi27ZQT?uWU_hlj|#uoV^oS(tNUfCvWi zdt@&e#M(_e0HD`p$2V%ZMCw#Uu(ACxkK~O;;k5z z$`!+f63ZH3d0-N%x6wTUb^ZbNk8%5Ro(XQg80=!e_##Vu?SN(vh(=;F_wWsMcQM_7 zg;W46#rrTAd2CseNe;r#pLa!b*7blulj_$ZGb(>Ke*f)vkuAJJ%%9{{NG~i5R*;Lc zW%yY(qB)9I1$wHkA4Qh2^qO-Tr>IKTa#5A^b}Mu^o^}H6_V{Amm`v3b|K!o)i*rax zK&C@P&M7=9bh}kJm+u10m7zS17%!Q&&;VM>j=^pUO;tVk`JjUE;etzXzAc|W4n#g^ zb5%fp`=D60@8elHs~43${pt4m2v&HHjWc~c8d)T>A?CA(1Eh$WE4!w%MZX)``?x+Y zo0=_Y4kX;-1M3Jv>o%vs3MS;%Lm*?7Ahp;Qfh; zqvtJ)H7hIG7j9E~N{(Ti{G*B-_xZI&F|7MQNV2alraCtb&r#JNNf~v-xV4uL_t}nCj2L=_*?$&8ps`BlT%N~v!wmxfpeB+`aD3I z`V+~LnEn?w+JqoPw`IxNs4~X!of*>ucQsn;mKTR{C+=R-^#Ilz=Zwd*lphZBlc)rl%rDx`w^q!}O1oY0JoMAwN;)u5nF_{PkwdbHeUFS4$CQM#f8X7%iVM>t#%B@&-O7bz6A9Gya^pDbw*5H&8gUm&3;eTiE{sSD#cHzrI~fsaeGGG-!mP zvui_X9uNxYr9n^9Jq6syW5e&blkzbAWGW5FH$kqqdb|WPfk*DAO6YbvEp4hkQfmG| zCJHod@LG>--6e8!O+e}(Mkq57=@=*?TU3;~w%?vjDs-QE6`EH=5lv0-84!KlT&*g54|M}( z4gsR%a~o7856i&giN1Tlx3d57ttJ4>KY;3dm_VNVxlx3-Cj$0#T<`$()d3s5$-EDK zmM~uqH9FSVDAL?Z9S2Jfb=P<6NX}ZGjz4Nq2dOJ;+fjUd>>GSK6-61PBEn$*MJ55- zbv6DacZ@Qz^Y2ld_b{5{|6Bx4Er^)|A1~%&fRG|mR?OZ(O6db-d((Oq-MY zk8r-5qI`vFB*h}12+~fVEVhoZY`=>1Q14`n4~2nT-fMqgP&>Q-<*M3*r9br~A5ZzsA7Ua0Z=5O2@yEOAa~ z-glZ1$=5VsGvX{){jK3zjCoFq;`P{Na*TE1)Hg={OZta%$Li@8JR9lCg)^m^3x=tE zqR3Q)x1qJ&_pBM8x6wn5;_S>p3iHUbp|^1}yr)3k1#~BQv3w`yoGz1G7#@5JYR$m7 zy9bj;;RzrhKCOQgJdCGGmAap~b#Gu}cu)-8ZH55s07CWd0><|_5?c9m%71=(58uM> z5DtM+17<}8+0vxW!U2_pp|HEgG-_~(T4Ktpv>!~5^FAr9S7dKS?3EAWW^>Pml%F!X za$J7!%s)=gius!Y_lJ<>oH2IID=~Z(=uIF%wJE_d5o|r{&s4wR?B_EY2WP*$&)7nB zcbs(Kj)41FxgAvnqmGKApYF0!6`#Caqa(%wR}zll#=rkR_?!SHSvv&P<5wbkJA{BJ zGLAN<_4@th@`Y7AJ%B1vrds-+lZW&CS1X@$+ z?(2@X;c*G4*+hWjkCPa8?&8&$8;3~M*iLi}y3;cMRV~BrYGX1!qCFQhq3JvR1fJU= zkMZ16O^m@|=!yeC?yGuUbwXEpTW6(RIlzgaG)f}#2Ut&omLnhF36b>Yr%l;WpbNA9 zBD8stXst@QNviZLEWf4Wi)T1 zV~T9~qKj+1#&&XE&?QW`t__i7^P~3pQ)b=c`hzZY+Ik5~4n3!GaLHy(lasnmHcB&l zENlCYT*N=nCM5Zuq|KCNCQPaqy^VD}EW?-=Fq;%fkS#Blt#-hDYTEoTZuh%(poor} zP|oFReox%Br_TDwEJ$l=57PyO;x5Dltf0c@@NbfUkcR-L&#?~RQBap25X!A?JV+-G zz+~cgsQf*g9bJL%CNS)nPg8wQFkSkoQVvpt;Gx3&kL^c3WR3XCJ4)ZWc>8v7u%>Jy ziny-@5A4BQt!pdJzBfWNAP3j?5Rly@rfcmq*h(j*2k^+20xH)S1u2Nnl4)nR0!hY? zW{SjP2FqFm5bOzjEB@EN&+`QgW=$9o@uvzczH-zr3TM2(a%5>T8tIvdB;3^g!` z>AY17%HD<3yIf>bfNj{>A~|H;HG0#dIfX1yc@t>W{x7#td=Xd_F0w@r-L>FrPjiSv zZ}q$`S}t(m0g3BPVpK>0p6x|yje zm*V&itfpnzA#00XD;vv3==!yoKJzFIbXR++q@jSocJ?L%OV(zW+VfrsWC1thE(5GK&5iN5;Qk-(jxVfVD=goJ?8E(ktEO3*YkhSoTeR zo7}NqL-c*6QpWX7enLcTFeD?mKb*Zhou6e)KivQMdzP<~t!ht7cHYaT#DOTY;>O_e zK3bZj;CfH`vnLx#T@Ff9Oib8eVYzCbTS}u3%QP{8M$Ng??HP^M81kT;bj8g@omX!5 zs)0tH@OKaVvs{b@Schml&1xe$bdx=^u z*$OAvE0*V`pX~B%dy*ncP z*U3M)m;v&v25&X*toFOM%A|TJlzGEBf`o5$wI@5hx~?fm6`6Ks7tTC0}T+ z0+f9Vvf%+RsjMFuWY7ev!W1pqeKnHn7+!f!*n^XnniH}1==5t(rEhGzX0LY#x(wSA zx;@I#`M7&Sbcy>*J=RxiN30%2PJhUL@|bn^B+;&C@_@^e)1x1$-3tsUrXR$NVv{b(?6yY4nYZl5b9~p%+Vv@>|uUYl1Hk>;?-wo}?l>Q{Q#U z3}7vhhnW7S=zNH~TUR)GAU@x%_`=s~hsWpSeLJ?kWF@QtwuH~N^MQXT+efOHD`Eq-|!O4|EVe?GBbfy+MwOlAiT#gh)B>fO#0dWO6Lk~&FuG43o*yl)eVSqs zRcZ6%iMt{vk^cq5T<6@X*`-qF)=F=+_5{d9JUQ&Ku};-|L0hocjg>w!YTO}&N~YP& zZQ*+H-l&a30~^0xr_BZAOP4C03d@&#<|_K7UhzgxRYbr=!r6TbdAQuC1GKxMEkHK@DqtwHOsf(6<7cb_|u=zRL zkY+YK1Jgl!Yr4l{DaRS%rn#A-l6gU8Zf#^fUjLIMUqG1N(4CHn#Z3l|tMxbUcd1D* z5py!<1AR{UA%GaxLj4mwLceWgm`0_R#3y(|kA*!QRm<_dv%L9{_`%mNi zZXiWuEDSRqvQn2spcO>brOyqP?exl0jfoja7I7EtZYV8=%Pm~Bv4S6jwGT(#!TB=N zo8$AA@5Huu^rrT9Ejcx0l6upXXwk?{EEb3pA8{u23&pC5SG2OOaiE!MSv$A z$}aP^^Sa-Zi2{>~5>$={3HSSQx%x;a?cDSJC7NC<7vv@zx-sB9UW)q+5YQ~XZA~6> zFUDpkQT>oZ!=*X+1~vFVqm;2=-`2Kor+?hAHcoo&ud|LabQ8{@bcZ6wv4g6-P^oAn zq5)r%`EM^IbQ(`{6yUyLU^y~wsyqoNe3Ch<7_8HK5P$?QZg#CHh%|El&eqpMH-eGM z0xrK-F9@mX1)A*CkB-q^Vgyv)hM$iFi-CB#q`Hg^Jk;`(R|}X{oO=CpO*N_+`k)qlX0cgOm_Z?3+lt9@@=cH@z`lvLX`CMN5Ot|AL#h;od5TJ_z2G0|fT1g(nOLBg>$n0nv+fZ`Y z&&#YchV^bCz~!Uu-0qJPr75yzGeoM+F?Hh0PsIJ#_9H%H-0$%F8%1iBSc(+N@)wNO05 zKTTOHj#a*S%x@e}9djwa$#7f^C#o{lq!ANxCe+DFg(h}|K}Yj{43&42=bu1pfJ@>5padx!+1z{(5t&I~DoAjFOSm7)3obyj_u%G1GW4qh3ZFs#P2e8D7{7R+AVsxb1NTsD?~-T+8;n|v z`5iDeIp7X@%bIG>sDlU;)U)?Fc={NXwNM01%*Kcqbfph8D0|hxV-skU88eP974Zai0^bdo z+!@d@F&>4K!7{d?d zf+}N7F~}BNZ(aw@-PhZ)VpRLTdEsh6CT=rRAt(^E5^PkTtCo|n0X(==3%O@gHoh3>laLg) zgG+TM79Bq_y*Ls?Ds?l|AB7et=*s#2(X!-2+R$@3vh9d;V(2U77h^M9Z=LJSeARP& zepq0;KWM>Y+h17Iyb<|I6?O%A%1jI{zdcXK&_iEaG4jfCq8sMW>Cz1c*2ujnsbv5; z=kMpK#F(LN%I>&=d;v8(C8f@lI&ITXSInxB@p|&CU0tWnG;;wrJQv8lLeE9kC2|am z-}V}e+DA7j#I$r#4d`k)abDT#x)vx+L6m1*p#qgR{tqxcXO}J`EE6* zVjH4QX0n?-`lV^jO_?3$=WA>V_=`{Z)RV7sOA35yn&=q!bRq27g7&;wQvUsf`<+*^D!Gh{32~ z2w3J0{irfkUo+YT{S>@!>t)ZYUhX|VXCfL|5fnnQQ?DO?-Czylx-9_SCLP^Kj1_VdZdj_ ziM77deyBieErH za31DplcsQ{;E69xXJSR+C0;Pg>ISiWWFBkwktxnO4tg<0(sseY+7ek7Q{LA*g|FT+ zy2Y#uztr3)O`3f#0B?U_{fda@n(^XwwV?7HWlE~SM|93iakkoCdeh-LY}@K4)^t+B zME#F!Wca0I-6;iUG?7>i(=LguMZO!^56p@2o|O}iJrhkX$r-G?Kwx`3Et`4<${WVb z4)d!vX)>Qx#=P*wFy0!PO=%iXj<`kQmLq1qC#Q6qXlX*EvH@J3k<8c>rp6~&tmNn*R?Hz(soS1WMu^o6QI9(7 ztfzb7lyj-rSAnvQ|9SY_006?Br*fcjkQ(KDzO!}d@pY(8y&tmV$?$T@HcnFC<7ckC zWoA_9b=iYf?-yHSam()0B6FGRw$*1%JI%?296IL+%x>%5IM=$7a!jG>eWIenMG2`W z(wk+fMA%>!xEjD>@Ed{Sd5hXLKVFdl00dmsLJhuH#N z?1ReXYB`_M8q@6_5jyUdM%y@aE}CY_XzfxlOrxvg3|7537cP}#Ydj?(xz~;jI>g*Ukd*9C+9yJq z4mn(U=O<~JRoYeK5{W*PKO7mcd?WExKlyN9Cj_3l0VY%6!}8lh}0%GO45TKnGCc>ZmMb2(rFN3+zn{HxU`|7IOj)E z8D@*%Zdn^scYFrX(1A-rKRP@uXB7SY3w?eh#n^h;FJiVQ$Ea9a8rk5%u`wJZiy6=; z6$>R%jE;j@ANMQn9=-i3IkonDn13H7V8~v8RmvPn?Dg~+B89zEeI3z0Ut1-?Sl;xx z*hX^msQ&dUoq=maJ428#On(%>2uI3}(YG;^2OnLJsi|>yl2vSw?scA%CUGcoUPG%oqQL6rRG`rmAx%>2P`?#9~(+W9C__5 zr>|T}#hIgJws?seNw|0^f7`bdZrE5Nfym3g=)rM8)K zADZD2LEZ#V?`!FRx}9ICcClub**c`GI;b7(4Lv08u(FhQ_-d8^>D#PR41Rx|)audQ z7Q_5c4w|OT_eWst0U-77N9q<%y@RDoz@WcWe4%{9GPObx)B7U4;35JN_7T*E`3It##WFRd5mOcjhyCC{W#1~I1WrxO zF}IIZHwyHpaK-Th=W+)@l#{Aq%;=o4V{z~rmlMj3k+c&ZNhrzd`gQ%zbpT;a#{7lv z4G>{)`^YFy2&t0AfWR=f4ct0P3xTO6Js1^0S3)*;?aB&HwVK@QiLGeY+Wq#=+fxMh z+{;b$&6+ZoG- zp8L9EUUg{av5bRlk7%tX*8`YP;!z$Qr)K!IOkYhVP1M^80%&qjAMC+|%YbdCB zI9o{|7dt8Z`8SVcCxy@1#%yLPdN)klCG(w~O>4^*_~hfYM#@0n&k||)-)a^9i$agW zjKRT4@>(>#YqOQq=wjp&zZd;JaC!W@5FX<%l_30}5=4>(w_#Kz%`4EKwtwb-#?xRBn1RN6iVAQad;M|e*`(k= zWs|@;kp5@?G()z9rk0t#Dm|ZmL6%>_v{h4z_2?TL30GkkfOlQfEJ1X9lK^9 zX#(at^$oxc=3ryabJA-T_?~8!;o=z{dE_Zl{_TFZVaY=memRKNMu;8yqHJIo1F`9* zLtcFg7SaKx_h0$P*^KCem)eISozP(;mYjr&Sk~N66SlL+T6bHiW2PVD^R(p#pWf6w zqQh95QPE=UG_%}Z&!qH2YAMGK?bR3Ue`@8vSN@G#vPO>ipX&O+c)@jACz=Zeq>=<& z)U0Oo4EFUQd-L)=C(T9IrB0?&<2GS6+`*lf4GGnEG>`9_f~bWDfe7uVPyB`7_J1;^ z72a^hw55T3^O=VE8^&&hd_hZ%dBnb#GPlpZTzdmkzlIP=|88&j+T|YOz8&q`Tt2?{ zUY|{a-0eiF?HoR&%t<1HPZnS>AqIZ=#Pb9hQW8F6#i$k^gMKP~&HNT_%#!<&2X_gj zhne`+BQt!d9_!j?njd#$FIVRQ+jGGL{ zTD(RyxT{h?LU276yKRo%HP0AXYUAu{2{e8G*aYSFJS~1o+N5g;k=N~IugLba0iJf3 z$h~M$m{s;R2)ekAet@__Ys2A$u+G4tm-0EK(D)0sDDuy@HA zXu~cW1sBN&*r`wuoJLZdR4=PR1${0ESSaejMy*+Cmz1Zb+3 zY>(g7Tj|#65=Z(oNYk}2X=9f{5j?u`t#K#vOAmz;*$A|;TYYNI=k=0c9r~}@Q#=*d z6}URik6nvy1%S!rmYDJ9l5ivAU+*jQqq}4v$74RtDD>@Y>D$!}fuj3<>Z2_+m9|Gt zVof_1YRQu@(a%6M__yGnLfwDW!1yl+z5lP!MGyByHdVkjlQ7}Pow)+!QpN8EHcTyc zdK|i^JJN#PCk(^3$33q=2g;GE0M7PNd~OGJ5akrKxrT__hMy!!{gkjNcw=E9glaOA zBaLip!V`h6o#<-7GeSO59lzVU#@k&~F8xw*Q$W+^HkN2R)tW&1_3C%bB+Aw(wu-Ko zaqHVZ#8Uc*f9Ub6^gRD^&6hCVbZNr8+t)=3`>3>u!zIq4p*Lm7y!6y$=y)MwlcI!| zehr(>!j)Hi{OlB`#~N44w8Qfz5v5mRbWYXp+ngtTx!No0l9=KPvk}XIlL6wDArL`8=ZA-)*%PAJNl7Y_Mq0mfpXa z>!05}*~A}GxvH`|qwHO|wvqUYx&&0$Y+?p%s^ z!5P;llA+_JH4kPK4DS9FvU8zaCixZwT996TBpJ6<$T^wqz5eH&IqsS&vHBn!8J^&FgoiEOFiVfoy(dh4GAnox8{={H`kJMw_^ULrO z>}vP4ez;0N!7z=bPtvPYHtP6$p(rN1j)FKh&-J0j2lSL}fN=}br(C1fQ@CbXa#jI) z8S>%9WhL41DGNrPKj?h4u_}}j%wjx^HJKW-p`lD`=Y_ULA1pZi7rUGK{>7h`V5L$a z!W$i;U2&?u>IrJ?(+uz*lYfs^{s*|DOHZ^QOW%h9FJvT|qYO~vu3mGtpG{dj`&#SD z=aT1)UpO_g$$k`%;U|yF>qy-Mv*j_{apC)Z71VysMa`tcLC&2QJ}~O3PJHjz?iP-d zv9nXQ6U`MJPWd+s)OZSwcd>u|i-4wZVj6dy`EnRxo5t%=ZK#W#BrMV;T-%Vc-(2-x>8=*1l6Sf0INoUW8+bSj%`qg?TyTIg)S_A`VXI?;edSmZ4~Hgjyae-xN}8qnyf^tgX-FTo6;>{N3}Gc41`~7~Z4T zl32o0gwdl(ibDFuf$lCgY$Crqs&MBaKF62f*@E2oNpxtPvQ5@fZ((^@ifiI9L0Wt6 z26N^n=O&86o-@sc9|@JF1bn_$v1QTyDXq#Q@heUhwfpO?Mr>$b{z~V5jM8_pF18b; z$0-+8<}E#zY3Ba8>OKA7hsv*Wl8k1fMjjejNjr=$9UTv`h_8*)U9Bn#21e^G=-U5N z`Te3jjrBVzzt zk$AlgcC(IiE9jIk2(f7HfhE zUJKKpc)jStpGMyzw5n@U#RO1E7hSfk;O`Cl1K}j>tQ!i;;f>+(>oBP!Futz4=Ha?? zoE)dt^_rFO3Y{U{5yQKjhF71{(Rm&)<3RmzI0R(9a0(MhW-qq@D_3UPE$4rwdO;T? zaG>r$X!{rKCy5E5`iNt7MF7;H>8ghOqT;PC5lmFMvdx4{jhL&YLkjH(|0^UfexGjJ z?dR6Ra(vI4JHFJQ;l1SQ_8)XyONxr@)nmo&Nnc83)SuHO(>n4=DVWlRlgOqhxm5<3|2OXDeR33%ZJ^_?mDvTgx>*FxNsR?ORUyQ%40@hOJ0{G~Vx*R@ou{?mFrA)CmDo4_0Qm-_>r-gAD`#@3G2p(nUGw*-n8kb= zYYoZQ9gw+2HG&JxGgV0Nb{}6ZZhm2d@rfotE*#f62gQriydCHc6kA!&4_cv#EQI-z zFI$BaZ#nJyMrS_t9Ksk<2ngW^fpGR`I{S$N)>nwVU#3YNSdUqgj_K#vkWLQ!^`#F@ zrsN;5#xs9iIv3_%&HY&M?3YXQRHr_8&pvpR6Tm~ZIU09@#+}$998?SRu1wRVL1kG+ zQ*$;uK^)T$rg1M;#!C&>ogPVIfz)K`m!Wrq1>2tk+QKM8ws-_P{Q+^Zf6dO+wM_c( zxR&3Cg>TQK)_)mlka_q7qtu-@r)tpANM6c)@(s#^;X0Q&3%iw8!3zY=rfMvvq2b-Uybt1edC%z%RXc%pU^}>(|DZ#;LrER^7c9#~hNb0y7M#SGVMM46*k5fL z3do<~MaZQFe>$4F13(6;yx`8v0jf79Utj#Qg-Q3P@&tGoVz)`4 zShF$gp>@HB4Uqty##`!#@4{KJ(*?=Dd+!iTg!K;Enj z!K`%Ot%Bf!3-!F+#edIl?z*p?5;L%`*TG2S7D)f@-}qQlk*pgK`Ruewc63CYYtGqV z{*Ysb*{(pxb~s6lfI7fBO3In;VK7;0xI}WB(dThWd|Du#*MgLKFEVovC9B=6ozipv zi}-@lU8SN@n$RJFBK2f9BT##CMD7Vbhj~ft34v!>X{i+ijuvIohOktLDCK-joa_DA zgtWJ)#t;}YxpEdx5f~sy!138bn3oNwNLnraS%i`sNZ(w&&ygNC84AqL9SOfz6&w3i zD1!2ypdXF3kf-xsQ;`3C zC-J`BYu9rQzYOD)>5YtdPC)Jg=Mp*!KruqzA)8Jg8OM=!r`wbB#U|ZzNk&H+5o;oG zMD_20R~%Zx4<((i1l*97Ms^d5DyiGs^Ku$Pq%MSQ!qqui4fXcMGxYm6URxTQ$kSTi zvH6??W6G&`8WZ0~+K{^?sijH65p)e+1>cUBQma+>i|LOEzTho< zp=eZk4Y-Q&cAe-`0DRrbJD@!EM)hC8Aqa9k@?cEg)yxk(KC?` zje*QYt}J6le)aqF4WVaym>dym_{ra>LPw(ift8h2Or ztgptn5y4PY$TzSJ6t)p8q z5circQy9p0j+>TnO=|EgX>Qc5X!NGqaL1(SK(H*tgPWBzT$ySkMqprhXEkit=0z=s zmEJ?L3%V4-^G0eCJAUn9>8!tShbQCH^lgpT?ju{!3F(o2OQRj0V;VdZ1N=ri{OFip zX!BTGOm!ywM2olc`EAjf^yQY1M)bkc&z=22jFjX6x|pD}?C&{IV!mWN;Gz@n-ToSr zN3@-TRH_M-eExQrA%0(xd=gx*ejtQwHP({-b!i64Ck~O*s(t5DqcmTbrNkaXe#-B; z`9={c`npa76P!uSOzgJ4gfUcF?x$^9)RgCVbA4QX+VRRS(A#Zw;s*p0X{MxmLzFs9 z-qyGLp?iPH|3U^<6?T*PKbeN32Y()%4$~<}Htcj3nvp{Pk)rGdDclI#dB1^S&G#S9 zov-8Lay&Mwyw*mCl-)L7f>N&5lkXyX;9*#j2Iyu+-2>xq7{nlSYh(sPg8&?A4vcA6 z-$2BIp(F`hIU{9<1n{rWB^apM8)8~jI5DopszJ9BM(=GZJWDXmmOh?FDO|~TN zn7XEdKOoTCfhSUe29vs{kxd#Dms~$=Qz9?wwZ;kft$}ge^+L5NJ^(az)GrvYdA>-c z6kOsCpQa(hCS;WvKki^w=jO0cXGloAe%si5=QUv!OO&@qUuST?MX}7W2fr@a1cx?t zBZO&Raro=VmpJ@gBoC=-N~h58oQu>qQ7-@E?O)1UORR3c(Jpv#vV@((N+Y9w6#|)+ zG4&4o!G7zMnV#w-t|HpPF|&e<7EN{!gV3j0$*L5;&9i=x`tZr%Gi36bszQ+AnhUC9 zOoGTU8&2Wnn(I~}+Tr1C8%$2b(eon1UR}`|S5yyK%Z0e(P#-Yo2Vv7gurZGx7R64W zPdK6`Z#LfyCJcV^;`Iw)3KuZ_u)ll~nY6Q()X%U5ObeU>)j6=|Vc7DBpn^d6${6be z*;~N_IGnK`Nr-^Wa&C-;()=laebcm!rdU6RDPF*oV;yj$Gx{AHqy9MED#As?@yq_D z@=qtmmN$f*&u!j&{p#e;U;e;$OKHb#RF1}yKzdKU>vw3N6^Ad?;9F9$Z7n?9cf}P` zv?hFiOZfGCMp%;(15&)xL(ZbVli=Q5@FW*&D{3p@FjWKp)gy>LXL!11`Ja%kWbE3+Z=asP$o{1%?b>oX=5oHGVbk5bGiDT55 zIw7(j?T6qQlJne!hf6izt=86O8P<3$`aM|&g}1$2CwX+mI!hT=P8l<;Lcih;2DF(l z1XUVS2f@IFp@a8!iNh|3>>}-4`Rf$D;Y|KeKF}5pMr`Ya!>?w^?9s4g`maIe6evf) zG$}Ul5fH&yekoT5<86PSbH_xw>sluH*Re{yl1Dx_Es}UWMlh^W(`IzF*`OyC6lKoWo9_|Hk==p^jf?8W99Ck zbhe3PVPS@&T~%xhCmV1H)S;u3)kFM2hisz9PKO!eN(|>K+ub6E+1d!~vy(|J`y4Yp zVY9Kf>bBTA#?rVy-=pR71a}p)QPao=t6!9M1ku>!+5ja<4Z}`85j&5~t!@~4D0qwm zw*NuP@YT8W*@l=ud%h>25k3`);8P9MI+|^BDoWAq@tv+E5Q zTyfshq81{j(-9X)3ZIh$^spC*FxLIL62_ zvj2gat$01nK91D)s+B8A@370C8}}9 z)J|Sy3x!)H%q#hio|fh@3>chv26v72S6!}$bok{*Z1Hmm%=2ilBWp0s4gJy&`i%`N zvIVv5N6Q9o(`+wbmP!v?%tPIg_Rz5ugSuh)Zs=W-?JQsO;{f#WuW!b*f5j)2c{^NL zh&>sFHY3^0q7Dw+LXFLX0~cU#%fqARg@?;(|NX=b!fPZD7FM<9hB)_4f&FzJylnDq zo7JEOm!*`SUwPNdp6TJnA-BIAxPMzL|8Evxb}6_IL#*SqfoT%GtTpU+o#>jv?VCLPszO@CCM#u7ZYiR-#tuUTk8l9_k>e`Lay%h@&Ryp>T-I;QP*4?9hqB>)Y&|L6>%sp zrV(H`AC7j*j<@z}ck#Q2eEW9B=GhV>fVTLOEuLZ^4~Li9}^R+IFJyg=Lha=2bkqKbKUkKeSHU*}bs~ zOQzh()sUL4gC4R%uRE5TvyW_I!lX+}$;+D5_~jlJKcAjvL4o3aFOtzzi(aL!xnEM2 zd&bLqBs%e(Q^pG(@$nvstF+jhJEx{|2aI$~MM`uZhX8Ndi~pH!>kgK4kR5I zFDR2Q0!s%lRylsn0}F z?SJ&8fdg{SKj)Z;PvF>KfK8_&*}!xGmO;&X2KTCahB&Bp4WspWOhA06D0A~=%}rnS z$k1wie!>-~|3B26^uJ)0Kr|qSHUTdYjX`iNb7+C&mFZ@>O=+$7M1^r|NtcTZLtL)x zO>O>!6RIPd*9iI3J+G1WsEGaDkU*>KhYk%Q_@VJp_~`dbeKp%>wjbM`O=vevNC-X? z3Ll*h1ZdEamjquOzj*k>s6c!@@sLz@8&S{X|=hRKLAccqb)a8(lpOm9)QlWg`}?*%G?gpW@tzt?gfXT?APBpU`?-*B-iqf!eEfviZZ)a7$$YelI$|azP zJ_N=_?6E-DP@pE{=lHBt=mGAZ;8mgNfw=#rB4#WCHeCb5Uk5UV zSo~e-vB>6z3nW`;$SOtggWpZS!gbp@TI!G$@q1Y>m$$W3i0R^^M=^5@{0I2fzo;<& zLTi^G$o+Gil-P|V(vgG;Y2D~z{T3)4DSj0>KE;OLDSD42>fHYFtoVb`&sLT$z*!c= z9w3mw#aIA5hQp&nWgD+5fQFF$ORrHkd3A#+7RC1Chg_YHziW(`B7mM=qQ_04SCuy$ z;zebdDbAQRXN%r~zO!OpL9I(~dfAYQ?CoSc9Q|zzUoucQUa0fi?#i zGOf@5{D+k+Qv8f-wKIjC<<9bC&ye6a14tku|J5_v19~L4lESd75?~Q$CSuEO(Y)%| zz&q6;2GaQnpHQFmL|Z&rqPG>W3esT|BcA01DihBZtCUOxAxmA+C;V z;q!Ja(JA_Fh}=l=K;GIPCklc?=I%Bm-11T}0n!2CF(Y+95iw0_NfwsX%$c~fz%ijA z5~sFvU3)9WBm@jINmIKtqN;B$+dY6sRfAAeq`e2Bi~8KlfOZ!8h7_=prcBLD@^=D463z9A>egqm@U zUn8h3t5~c4xrni6R4V@oyaNMi1Z1N?W*K{c73lx(umW=$iwo!yWP=9C&)nQU=#+qL z7p4PEItQd$7v|hn>B+7w1cnaO^l&fN)%pPx(e?8#$6m=^fW|fUsK6Xi1v1Oun9v9n zusQ}{cs;7|EIeEuId;5RB`|43kh7T9NpLAUW~OOf)N^F<-jKC@>|?bzD88q~#n56y zfuRE9;SxRTq-Yzvd|F< z)eLx`xsdcXyyMU3^8W-waUp@SRD+sP-mPhDLJ)1HvW}3lRMLjNhc3Q$1E+5gIO>}) zV?87V6pg7me~BhM2-H|kJ8qdQ0VF#~2k&*iqa1SrE!n-f@FrOECHK>*$GFMEWW`m$ zk2wnF;7Ou@T!G`P(+MKz8kAXyFX^~Z(V1XWUpqM2w6SrzCf|eSm=b2NP*kV9S3cjI zkIy_ng6~4y@c=&|wzk7ghw{!99RhGZ-6Q%4y5fIq?*BLb&)9>lL{d0vLAFo{3GErr zMBOC3jJn~~?Zdrw(Ly`Isw0I7*8J>YT-M`-O<*+d+YXIFtnK$N@>(m=q{gvtgA!l!F#lm_3w>2d(jV>B8{bUHU zi44ory&)}zFdot4b+$uvq08MuvCg=#H>8xN{qV7KGtw8cnzm54R35hq_ z>ToV8kirSR({Ak$lF)8PE&QZ|*^7-VJuzJtJMKsmr#^f4iW-!X(HT!ZenK_h^Oo&# zA_U|N5r7gqiO=Y8A}lt@l|&*kKX#wDaDQ(598BeCm-wUJdoa+yF_~Rw*iYb0dAvpZ zsl1$3{&X{GK0rcUIDX3SevC%7>AY!~dW;mWQvE5)+}^l(q4n7Kq7%Rh6=Bz913jnJ zxn}KOV&q{b9eq^V<3FE`neAUcD{R298W8g#M)TLBk>C1j<={wpIIO`l(LIX`)ep*d zByJGHd%tIw^BrPc8}9c`xT$oX+!P$Lkh5&dxx+8lHX5U4KK5u~9UB1wydd8#BcvoG zVK#=f%X3+yhY#{BP|oa@2C6c?X0st@K5114WJ>5^8m~pm3@j=#D1WJ9{gH)Rr{w3K zC*3P%RK9UkzBDtentXKKsd>hgy!tFZNkepNfk z;s^cnf;;iBwU@S+vx;-V0v$dFrdjv1MaGZ1+HkX@h$Z~)VU1%*l_v`NF=)ItHq!F; zYmtVepv%8sM?Q2&-pBCVZ-)xBe|un~#K^d@{J0u=T60#`?hC1YQZ&nUvV(SLCt`x~ zJ3R>fG;kQIrq2;tpJ^t(8L^m!?cUc}MGW49YtY)^_=i}(IBWG%LnXSuJc|)js$;pK zq-%#29a0!lRX7;qpHcr);1v*h|M@G!?;er_7YaGUOpQ|L@`~?DY31@6v-W@Uc{6o&lQv(kQ5Qc%UxDpT#6g-tUy>xHg}Q9wcf5tIQdY+^ z?@skn*~NQkia)%w;r*Z4J%q-ITXmmSJ&o#0UeV```ha>@-Xc$-vD1@`mxjQ>PCB2e zGAmvQ=m6XR{*ne6Ff-zU;pd$g){uxl=uQ>~xFNgEd=>qb{Qt0w$b*6OPXj>@%~!h%!Z8aBpECh}4YhTi_w^Td`{5rk$5;M3=0U;*j6Xg~j)9N;6cWw^8|G>lZ2Y{+$VM)zna_vO6RWo-K? z9+55;HD~|^kEC`Zb&cZciMzHU0h$ea_2YBR%|g zLZi}zXLa>nT7qVKFHE0yiXz=dI}xbSPm%jDe%wOt){7h5G%<*gulnS>MA7Q=4O-x$ z<(w_qkca%@^~-~;2pJDAj%;dc2Bh4HeTH~dSanH&Cm84%YK#^^Ps)iE7<^l78pyob zDYL#tc(zp8y*|3)C;F!USs*Es!_cVBhVShHB@Y-(tl8E7DkzFGyK(8@(GTqY^XmEM z?-{;fUDNc*qC_3S_v-PQ#%loC5eBFe(FyNH5=wk01Og!DGNpgg>?(wuD+UBQR)&z% zpUgfEU>^%0E{*HWcW1%ixJ;0Q#*6?C&*8BC=*mX7la{h`Yi27SG(MgQ-!I1Weu34_ zoVbon&V&03Q6UR;8@n{=c|3e`g+)1Ve$99pRRGpJWt;Zm-*sR9{`JX#NS&l`RB;FQ z#qS-=AH0PJ@)rOn-5zk#4Pl2g%IlMb)xJz<3VI?NgW1R%)+)vy6XthhNHu=9 z%)gEIc_T$~x9Ut=-#rPv&}v7*hP*Ye^ewZln?IjXH@aEbTJL$63aY9nUst{MglXSv zYEGZNbM!{x3sB87eliYxr#>N_jd)9PYpFnhS|cVQr@3O7_X(4W8~b*Q{M|el-I0TN zsKdD=Ccr<#24m`cKWkR(w(^t@>_U=NAGoE3lQ$uqB0{0?hsJ~M?KXEzUfEW`XRJoV zw~~xE$A_ssofPJoI=zb(l^nm5XG@s^ZsN2rPq441O_Y(PBvxO788KGG>VJil`#(=S?9Z4(tbKzY*eL zLLHK=fzOGz9QR^-CDz;Rv$+hd7r(XeGR18Qm6mbk@*AHj9zN`2C)M!_-V#8?8pN`x z10$w$M|Dm`aX#`p6B+_BBeSy4-FCfZN|r{vZBTKWiCbA*8~HV01{G>c9f(Nh*BOu#rqxwiO8c*a_0Fo1CBq0;mPv zr2WMxiDT~c2b`FBkZS8LW9&~YKcuE2b$4=QrF5O8$*xK({VAp%QmM73xl^(>kJ&Xh zlYaBHs*5kddRVK?a+THwFIDK@z^0?8be6%iy~C#_HQ&3!#VUW(5TAea?6BbUK>jAj zPHzG16^=y>M(}M`G=sb@ixhCvs(+~G?0eEnBT6-&^<&auLCvF;7xHrqyng51cTvc5 zzKQnwzI^|swu(2qyTAO3-ve|Ex-S5?7$CrPsGhW)C*W7|d2H>WP2yfMo?3#c*`9o#ihC%!WJ-owTi zzCMq=oj(t14LFU-eHuMhFI8TsV2wvdr^*2}9P_JcX_|z_>L?o@@@!f3gL=~bIP!8O`Cj6}+-OcXiGpUkI1;+-p|c_`Nsiw%?t6BA2(#X) z3f182QA4TMFe#ji1%N?>+o7;9TVA z#$`f!TnDXx6LezE7>Bk_Fh+EVQGJ<2;4G4c+AFryUl=#ToXp-`l78zGL1$w!jE5_{ ztwZaMzXcGAs)hHBS?W0jM1viE6cP2;-Fwr4VG~#-CKYyrT8)5eG4gm8=ZH6PcpBWR zE4Brhs|kc=BR=^dZ-lq_v&5u5sdd>V`>kaNzKS@7cy2tezdDB=)2A_~oc{7Naaf;i za^=d-an9;EZRGZ`mxyBHrKz)kLOp}$0qPb>Uh#;M5@Zy73c)wMLH3cp+><_(Uj@)- zA1-HnGW^WnqB;0-kd(|K9gs2mu+3nm;s(&i~1v@nc zb1VFg#85P^M6!XSa7|@#S4?|v)67Cd>$jV!9B)%bg^Nb#V0Z)cxG0SWH-n=H)vyfr z@c6~CpYw7<>s2Tlp$BD}9_*gLHHCto({=k9fomnoQf?9w(E>x!gC64!!;1ITbzeR* z&`r8O_^9MOa?JIs^EaT3(*sibeXK^@;KL zT;QS2LpA94%6DPBRbE_D88Q6hhe*gVYm3|ypzit1Pe(@w(S+yNzkB!ew^_+;ek}5y zsF7|qtrIz%JU#_O`(2|qk11VftImS`TvX&&P<}Gz-(8qqQ@TKMNFI>PXKf?|^y{FQvb%bNb3 z0I%xGH{RkcNk-s*4>-I@7Czf{eC;Qo4B_fdxe2o zeyx{xuaw3lO*Z&8gJSQ&V=dlimJJF&+qQeVMppm&Ee@9++<1|Z+uQ1!ziE~++pkEu zaPkiUvy7Dsf6yte0E22D&6d)nL+($i5TzB2{CkUvW#SI08va_q>LbW>pAE1y=fk%j z{R71MuY>{Uw;&YG6vNZ7QiX(ujpW^jl_K;eK{c3?=4Y}{qwH69Pn!G(KB1` z7^T6|T7L21Z^HY`0Md^vgwt@aiibx2UU5Z9-cK(+K|={ER%{~kO^e!q97|Aw-#V}@ zwIFQKIE|a+X2?7h&VrY44wuo%5_cI>ariUW5i>tgwGRPRBp(dKotrw+K==&?;xHoI+gU&)2-l-r|h=^`+H@#zMu9i#an#frhqOPn*t|Jvl?+qTp+ums$X~9ky zI8}%gb|S_=TqnF;FhyAA#i@G z@sD5PUm#N?(Dfm@sH)Ex`*S^nY7H@)OLFsZxKfL(8Vt$XK6iFu^yqP=W;H<-{=NWT z{W>^Ey-%!{!OkG9q)B2qkuYmFKtye>CZ*ZuP5RxxQ+3%x)02evQ&Q1yS zdY~uWhA~I{#&v*uh%Sq#=Aes$3-rM&eP>^nGjU>Xb`K-Y#C!;0J$9~+i?|KevAf@W z;vjxC>G`#fe!qVRB&vLO|AVfOVZG%kqpa3XXx;m-Upp%oq#IFV(g#B5o^#P7FDW{o zrgSpo$IAs+pUJsAX9e3znLNstaL z*WNkKb1D8hPO>ek>RW`v)?0T{i1OhOruBS6>P^8S!Gg~tkx?0|14fQ}nZ(q~;)&

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL zW48yH@5%Y8piM!&Bz~}iY$gw zP6xdmBiYZWfRCRHGR`+%OniwkA)&P@2Ia@QEUq?h%3S2S++R?9 zJ3LcD>`dsg#5{J~hQ@Sn1~TThX0{uS=mvWE-;$i)Wwa$`;I^j}7CUJEqTN5V5k~@* z@#Ax-b~H%@*;>)75XqO_|2Q@){$_*qJ|g3NQ}USR8^D$dQk_;wb-`3%TB;Q}2K)+w z^OU0JZ<>kXV%K&Z%Lny;;3Rq zFw(i3;Rk+gchoz@i{)9SC7Zx}@%oh?!YEk#djYvJf@Kr@?c5ioC;>++!riB-zIp)d zvkZ_UM%BtT&*2GekMhI@61!C~B*cpM0iZCi3Oaj#8>X&8jTv`f@t|U{$MO0-zdR~m zFZkO*pQ^C=^CpZ-T%r<_gq+44sA|5rMpUW)VyadhsFQ29Gz~mF+I=W8tdNnZ`WR>< z)l;rzCcQuP{&oZQWl!qdi2<^zP}^L5=}YDE75gp#dymkLy`F}x!J`n;1fh0QuOM+% zVQVGhsw7`Q@*}Hlg?&>vfajY|*MYv`F`zrtm+u@WB|=~=J$o&t`08t3z&-nIMrN+x zV3Wa__NC$Y`)lO|^U) z?RIyU_aPD&A19h}i{Je4xRj%j&O>Jjo`5Y!cLW8{n3>2rOAV*-QJxPSDt6CzT(6in znnCS%eN(4rHWv zDAx5(5rftg+5oLVuwfIHMj97*HFtaGsjKn%FN0=@=QB3_@9R6~WS8&m0|Ga06ip21 z1DOr{MGf-hb^^P+(2s^%iSmsi6PC@&5jy%GoDUw)Dd75UAZ#OAhguC2{CkoOd|h^) zP`9KTXF$$qb*cDX&f&~c6*>-YjDPn~PLYXEYDhc;V6CGSW~3{rXj#YcO$6ITP0JO- zRk00xAA1a4lh~d%UQ+M?E^Ba**?dqt3QSZLBF|BCh0QM1VoF>%mUi(-JdFIny~ z5e}E620GV2qK+030+uFS8`g8$N%2h&NGT%eOpaz6R56z>g^K!94P0ZplR~l7Xsn|u zd<;nXpo?5%)U8LT5aUWqwUh*gi;R!m!{Jwc{&+BwZ#?h2T20V00S7CRHe5-A5^j=% z#2wq;7k=nTnqRmyiTP~N)YN|4wS`AvAANYqlUawaAolCWgtzl1f|`uIBXFKyY+dek zq#%c(hrQ0u>MolN>3V{0FV&pE8W-~_ZdjLQrKUO5LuLDPFdL>ga;NTN6`(?ag5CW) z4)G6jZ2$h62H+fpe06HWs4-YWn3D#+?7uq&sQh|}4u3bI@oM?BlF!;?rlu4O2Qq!K zLLg{x9SI(+!$nzgmQ4bei+wp=l-`!oLGrT>4OMX?N&|G9X>`tQ)GI*AeW~Iwv>$u5 z2j<(t&1^A&2DQ|8TEMg$5yeruYP@;%Eo{>SL;bSk@GpQ9+qPDpH#!%KiaU6dd~M3_ zvg(L_Ikmrsr7^<^_&`b0g+NssSW*EA>y7C|I20aL`wdQ zm5mL2t$kfi1S!WN=}Spv@d2OzhMN@BC}B!K;uEM${_ua3tp2M6_J7Q4#_woD@DgLt z2m&E3oZS!EW@H+t-edK-nXYy~L};UZDm?lt!ieti(_`Dq5}Axqn3sk8HwEv=Mb#KYZyGc81PKN#&xv}(=UIK7=(PD^t-lWgD zgglL4Bl*rHJ>RI4n=KR{H|g^}HGYwUHM}&R_1@qnkM@~ug*_SaBU-bdI@mKF6zy`t z!gFsuGvx8{htCqtx+^I`jwkLMRy=cpQ+d2DI);_|kPrGNp0rvS?ND%8Jx^)7kY}tf z*A>;%#6h&}{Q)PGMJJQX_Yl zsy|Y4d+SJwl@O36y93$K&vVYSK>q^E>6v{2XJ_DJ(%Bg}ipE?8hG!$o0`zS3Qu#0D zle>JD8bqP;uCTf+!AV(({EYHUvuxgoLNTRpPRTxwdvf4|N$@wwv=qM=SE^^B0F=03 zqDUt!={y7ld#o4eH!@T4G2hu=FiCVQqqNg;XWXsgUx?h0xruGia#$Jg1?`0B~$2P{O0`h{NIcgD>IX6j0-Le_`p4}a-C5u!bR zRhGx(DNwo>_ooDrRLS~*kH9DXn4%fqj5sskn$?&2wr*eWL+f~F)|O;e%URE!@9(c7 zHsh42m#9eqf`uKX4X1OFeP8aJfRBH0o)lkTn=*-~{_6Q&4a6yPMwA(TlTt!t-akN; z>g82EbLNd5GF=O>oT|y`+tw%zrD%6;eNz*7uxOo`m8-Aijg?&MUa}P#GQU6gIU|CU zxqamTy};>#}#_ndIAGr3{$Yuqn z?lWOQu$C`2r5gP|_jTlGhWpYlNhX6ohR-2cF5GfkKftt#5Q=l3R321W&4^JF3<#N;%(nJjJrs?{S$KNS?Ejuwre>*+p>RZIv;v9 zQyFa?t%c8vqTgdqZr~7zNEGF`&mp-WD!SzhGwl2#)AZ=`^v80gn-cwE(!GD?bnC)*LtI$&uJ;Ey(9e^$ySDbfnXR?(_92J(fgS-)}f1Kh3Ae`R=h;M)ba=@Ru)dz5l+{8Vw}{bcEebyz3zHh zNI%;ebSnT``xq6_GR5?9F82p>l*Nq7TVZ zjwXrbthw71`MCx9o8R%4mI`H?ynJV|a@+59aeyUZdfqlSN<(VX3YP}ox z_Waw7;cf-5k$CW6jO=Fqlj@%lWQ?2|OXb+H=Bd6rW;mU)3Wna&uOPKiN1z-p!$*@1 z3%@M6vA4sf&p?*oDS#Xq3iKfE85NVesM*=3Hp_49cWmI<3Hw~!0q-r%wPSl)kkqOtA%?&GtmC;$4?JuzQjRl`#rI_l3c z-!THqU_hXc z%+Kyp69Qtzri{`%cH$W*9}ay*rGFe3kVpgD-8hgQB=EY8is>qVjQQE`6`wOp%kPLj zzJCGTsOA!S{ugv}*)Qn;x~bAQ3ZR>N{|4Rc$=5sG0BlSYWYH-7bZ9fzeE@0Eu12M*981iALbu40{_4Az44G&KA=xk zl{8dT)|J*qXQVUDvEPur)FL7F)mA73a*xza(a|D>YZs`%2$8(?fRC>tG#puAyvO2%7ab}=&&?d-f#2xNrKL{{kps# z>QXsSrzLSXW^vnO9d!foT(=J!$@tr?x09qrV+LFKa6A~k;M|RF;2s@cY7i4ClHPvY z>N8fo+{2~G-;o-_*|Tddf;Im}DrHEUv59xrSh?lhFbLm8yRI$LMz*Be<$kb!mp$>Y z^asc2ib42j@=9mz#^Z9h{T_U>sq#dO=Ar|p6ZZ2sa55-DeD@!tsFOa|WOsx;`E@zA z$CCq84G<-z%}MhGzX$lcl&>1=SD4_rQ{04`DRXd$>GGKRPEj`KR$L^G81*xqOM{#} z;Muhiw3y~R)U--kr5to;l1Y!TT9XK;ZtBP}!Y77Tm!?LT_nfrmLP;5a&>4=dQqubC zK{4Egeh5xHI(H;L)*g3^);Gl(1Zn40sK~e9;(lyZ5uhl_U)Vpr`xI&V*{bT%CgiZ- z&d!8Fy9wnzS;Z|ql9bzJQoG^W)9p4SH%;nlnJ9f_oo9F_&5xpBlNE0c--}z_vEbF< zpn@p#W#27^cccZ)$x;!Sued%lVgr}zT--in3ta}szh7W@L(|B5r1|F!m&{}yp=6%7 zY92yIjSXav356Wnfb-MFV0axUE5(+}@(c-4f#4*lx+a>Rsg94oqg|;`%kkcCQJ!z7U1|wtp=mOJ747?5ReL>N|+B#+XzIi3i(REF|XGC1$ z2i6`omf3_Xmwo{xV$?+QBwJ(YiM33{0`srcvrwW8ePIuX=j%^nCEKi=t@1j<&PmC} zL@U^#CN3$hYRJBDSJKICzO{VMSI_@rN#~dLAFFwJ$7Mw6=;85T-u{;28YkEuvZz)L zI|rySmT){yV;S>~fVk7g3`8x9C;@hGUnV_$e;Up@S!c z%kwoo65mjV1~B1^>r%w0ebe3k#!e6J_iic|=VQ8QWmznRtgRD&2tKuZqakxS8)6UK z%!>WcYiNScxjTcLwQ4zUs|O2W(Bh6R7ts5Q9Q>+amcU&ER|03ikF$i3RZBl&g}mar zX>teRSV%?eoi}X9q$&=gN`IM2(#rca! z__XIa%iEO+pB>O*q|d5^8B(U^y2ILBshPL?^DW@v!@6HZdG$}jX%LOX!%LKL>-Pv+ z6ji-&_l`>ww%ZlFW)1#ZEF*jnp*3;tV_6uJlq=s@!Z3@R>Le=_d;pMn%r!QjCwvX)aP@1Fq^<3rsgolTY#c zV0sJs71P^JJJZDEnsFg$t2c55_h5f>i9%UZa*F(m0sXNW9gU*A_|Frdj?j1OB6A6L zY_cg&Ha0wRuFpmL9)V#J0LYhthCrtc5gfeShnx}xv+D73FxOFT1#_L7Zx^#{b`Fsd z`~QTDh#n#%F*E;$jO-`%glvCE(CFWHZaDz)W_^=lqv~M8*Qilj&E}EENcFKJL>oWi zeOs_sPZw-WN5d!ttZ zr;m@u?w{E8yR_5nTnCCI8!Y_`mpTh&UZAG|>dRnTCDjSGgQa zY?TztBAu}5C3^-djLfF5JI>d)7|Bw;Ibi^t0`$4~ju`_g%h8#E#Wz&5bo0)yY13ur z&QJfvFc1hOZrcft@4xE0CnRv|#fuIKtGOn{nBIbAq7_n^Xz?@h@RAk%oK{Vs3GmB> zxhlXo77D}tp`t`*TtB| z{NnXW_2|7l8<+fY>LckvoKO#C4#o4_H||uHys?SDXU%cS*O6~GY_J@sX0n0pTw2?a zs}yVE^3GR{vj#42cpvq|zJ$?AIFdAwo>Sew3;v(6Cu!FY3v^+B@*%oOmM0|;d~GL0 zdo8iyu1*^|d!G7_P$5Ec*~?MwpIuMR)U*pbDhU+u=H%bk5|7Bvw8q*6{fHVzOU79^2TvA4L*rY_&-L$$Ja|xOdDD0z;jAZ@kIlwdi$p-nk>{2c zL!6^QV4%q~<5dQLn5M{LvRl)6eGd0O_9ZE^eS4q4vYExnIi=i&A-wC~Ylw-J zH`*Joyk0qp0fPibG?`C7lqga_eLxsp!}1KlUzXUxw(R!uhxS0@|9J5yA}E4A2A(xt znJdzrt$MsEYCfwp+%{K=E+!T)7ClCl=lNDOd3q?$sy@aoZG15>u^Khyv^lCLb_XG- z3X*j=`E3#pE$Uj|(~lBfsru#RM_`j7ihVIV<6Ow6;PQ^y641a&Sr)&ptJ@Ogq4gjD)VoMk;mKlyjp0gWY~YUJ^%h|!6~iP z{+I($2ZP!M^Oky#a-FQIL1-y*$W}|XBi3i%NAnF69jEa5=>8Ce4cT=tw7yMI zT|wR=euy!*)%OGqn{nj}J?C_V^b{XahGSx5;deRs?IT;eLnZ`3Qi!Jy;E_So!wXz; zU4uR%wXfcmR&-g_eDt`~hvc&j*K2O`cWSO8Sv`mg(t{bzlU4hN@G5s+R?Kr$#6byesBWAiQYh z%EfhD;rll+UpKxvy^wp8_leVYA6yXrq_sLkBZiERD>scR{JOByF{LZe$e>%G(nsIu80v@t@$6}U*1|o?} zPv|X#6II@QYt?>DBRiwqkYxicg>7v!voIId*c(rBNFmM}22gq2RN_~13~3PPh<%;v zXd}?g-*A*CICY0@K$2le3&r4%n$|+M7Ly;Qu535bE)Fey@tX|30F#-6TQkEGX|Q^F z_y;TA-$}g_>Gq&z?X?8v+~5-7zagoIoz>w()zgzFJTIp6>Vvb_%~jpXwC}d@kr)gX z;9+GV4@eYRN!&zRhMDNrobjkMbhcY7h(GNRnLt2hV|beVltGw~Chs5C?o;h#YakP? z2;DQm_H8TMR&K+nOjnhB0#WKs;7&K79tEcjogQC|5Ss?IK+LaNfHg&i4>hFrcP&7J z1YIo-%P8>FnMGH@c2Pc*6bc&HMD)kA6Frz-6E^oQIsuia6``J*U|x2W-nJ|4pN#ji zd{ENoctyj3N9k}f!`Sf;EHMsX3GtZcn{Ef{Ut}9@{I0L@M_ileYvqeientL&g=hY& zzn;g6BiIQ;t(y!JUN+4>rd$~@K6g|(yiEN@u003Im&2|9C7;2(%(@`u3PJ^Z8&*`E z5@M$RuE{bL%F}vqqUt$L3Jb7J-aWf;oQ#%g{Ne5e9Urux?;;~(mf+a8w1cZyg%L2{FX{OwK zBo$z|%r}@VZ&Zd#7?;YYzo5MaC2N{7)4F?_YO4LD)lY=C6R&mQfU^XT<;kRNb^P#ZI27zA;X-djnSPeVH-^iJr@;ExK8FQ|Om^!l*H!LvMh znT@v@y!nvDQfQ3Oh-j@xv0yG25+NPOBPs;0RrGh?J=_fED{~sm>&uV&Qt#CdJDPJY zno934)mg#Tb^KmVbd)dKV|WZY2(1vyTe8iKW5#t!SL{yXp5`oVrfBZ<$fRn=MQ-GP zo)b+_f&ZQM}w{4DoNvEZurqU(I)|}6_ zp7pOO$ea=U@e}jCIBIl0YF-k33HJ;Y0w-v7^NNMm3TMN|Y+rmwcIPjzpj_V)dB#iw z7+-lF<#y>hTvbLE^h-nY;-*q>lcVR&l{NBJo7|qS#!VKY(_#eY;d$&HQE+_QF=DHv z#FdDLbB{Z&M!f;@e^m}CN-MLA-gDmkfcE5*{pnoVI{wD$2hRCPNe*T@&{$cSR|Kj> zV5`l*4fR;>8G&WpP|xsu{`7%?`RCy#Dv|GjTnk3Nu^B{{;D$4ix7U#DMETed?z+*J zH08*n$Npl-cB2i-!>rrRn1g}waXT>0X_EVlK8+B5+3E0n#eIM34&{&9i=|KGaz0DU z<~o^67b;XxS)ECb$y<^$xhEXh1(zWqh}P# zKPQy9q^;HMj?~@!vYxB9k`$*PDmq(mweh|w`%fRfjb*mmX8l0Rs>rZ)Sg#zk~_N1U%2x;jGq7c`(0Qc>vsejd2nK z@8}uRk1!$~TL~Pd>6!O$n-*(IiEdT*RLPf94ikym&VNqANA7WgE(h`vQXW+A1S9d& zGD`nqVDo~xN5o{Ae$jdO5BzGyNnF)iv$a+fl`pQdbVbqkJdrzh zZVc1epYIZIRF;a_-MzI|;sWIxQfOO}CT3hKEu*dVLUMISp1J!^4r-W>>)X#F$aEdL z_@hX?b4a6zZxd)L-Tb;Y3;bB$J823|i_W|+J{g8Nx zt`8t|hEb$Y>>IC1ph1^vO+Za~GjI1x92lg2m@m6cZvPk22g0nW5(#M|a$<$2)7jRk zy}!5%8ViWJ89$B3G#t)xr=r3xMx(ZhZE%f|>b?9kT4TE>WaBV9^Tr;SeO>ZM;`q6? zGkWsEFVud0`rg*R_U9&qGxXoPgJeK|emE>h++#Bd>SRrj5gh&Df_C9z9>f-5GG@ct zzdX`)U6UbXiR!HmP|J5UccHflVu3}nhyn~VP<#-#{;fOT(%R5ByJRo|&H{Ux_G<~s zfA!S*e|P=DQ()DhD)qus2uGXWtaCuz3;arcwcmqABE$O$-V6=^n&k)e>$F3e7}6Q%jmcE9WTv}p~rzLw46OhLHabu7^jGDWgW-DW3&G18li z6*!}q6ZJUJSYu>I!+^q5p8X=sS@LP7bF3Wt(~PMlWjPGdcm(yR)bD9ulbl}NZooj@ zdib1!B>V3V`68ZK#9CR@A9Fp4`G|5xkp<#{D7uDYUO|mBL-&X~c2O=BPT2g{4WvmSx`z1o-ppX*{?rtlCoftNZEk>@8*#p1UCSCAsMC}`(4dBoeVI6K zc1>|2G$a4zLd0Z&u7NxubEY+jE=}fYZAxPAU*C1&rFp7Kg0-tX{aX=rrwfnq4)hqz z#oB3o7?%sq7PL+Zm+DE~^I=^c%;f5Smd+`h@ud%DoiKh2BTTEP^#j#sA4#1^&%?~O zS1Sw_mLu0J9ilx;FFF3zdxQq1U}){&?P4llT)8MGq2vhCW_p7ocnMx=3Op+ z8o@Lqfslrzes*5^GCB2W`;vPC%H{=0g5%3)yY|T$hd5}cY8=2{&(NFW~;QSi# zdx^a{Z{MbJ#;1#n;pRlFN~L1?+1UGDr>cUFyo30Cw7M`Odb3GLUOR35&P(k#B?cRK zkNvu+eI>o7$5R_e>MK}lV6Ciqr5;kYijSi4=lS_rm#HI2#-4APv zdCj^$hTO^t@0#Zs*kTgINLi9(X>mJ~BQjG1=%DpSp2q3*6#aYzFez`lG_||+6Op5M z!l#5~Wnjt$#-ZC}`L(!8?xn3AEMBv8VSg=#BBwaAYsxs?d5Kp~Z?RCXNEYK$68&US z4?=OTDaQ_GkEl#WPqLz{H$&kB%}Ge>jMJIN)iDnv?iQ~4_{2Dg$21veUkd2ngWrIS zKUIa8(_2vlUG!OmH$^mPX0n)U&>a0#@+QSmid}(8WSAO;s$5KBuvTEoE)$WSH0)a_ zt*r=L8Js`s_CWm9wb+yO`a1Q;Ufjcgafl<7%%_OWBw>E13U958-s1hD#+~p;n%kb#p4DTbYM>*+Zn|dunr=nJ zwpRaFUx$zIjW+H#dC+S^Wxk)~zYMe&{cP?VvE!c*b3edHMuyLBFf|gTH4JWGQhgfW z9a4mjzSK>&A)N-?)E8*kN!nNXIn~S+174dD1<`Cf-@4*GZA)fT-??*nJ{wQ8WKJJk zzzHW(0FYQgu_Tg0^QD2Tcbq=h#}9oqCQUmQ<#`m{FLuT&skH^mRX8YF^KN5jU29y_ zDFar+_xz|3HS$4kU6N#*-LwmH%hYbNnVWKcj8ED8xG4Um&37+o3rAS@5rstQJ(o(E zwH3kI=w69!e6P=Vfpcl-4q#zuQ%?SeDy4gppp&n$1}Ww(<8>i*)I3Duum*?J$R)0Q zPx|Sh+%u37jAl7qc--R{m5uY`Ukq2^_Zmv~x5Fe+IQBhxde9&g#;N9Z-MPo`=2iyOgEs`Vt4cm z*!mZ{T*T=VxCc5J{q`fuqQ1&ezBdd<5cAzV%*romzjz4|TU#P>T_&Ny7dS3I;ETTV zZ-vSoKzhG0X%DFY;Q!Y`d}&Ae#8{{oH-xyD(HIS9Ol2JdOCtp2Lk>bgIYYUNYA7Mg zV%dulpBK##eu7PHKSv4_`u<`#`d!QC4LvpnbYg|%BY+$YYYfG3ul&B=k9eezC<6Eh zo!pp;kF!cE?|i}RPM-CHl~hR%y6Hc3{aU6L&19{UjWyFt#((Qb4#^0DBv^K-CK$UW zNM)cc&w32%-%78my?(1mC4^Pimw_QyR~!DhU9+aHd-?kPf8!$b9KWdj@arLS>c8s) zbBR_6eHwX+K5Wj!R^5aeIap6%&RD&ra;`afwJeDD*&n<2eWOn&ISelq)Sj1T_Qzb( zVtXzTk&Rj1gsJvV|0w<;Y7v;k#C=@ORo@P@+eh;Ij5Blksa^n?4nf`oxla%)-(lg# zOH(3NblCssOeeoNF1vlr@x>G`2g8yU$Dgs#On3==-EImDCPJrsh$sBBRL>X-xC?W~ z>sI!Ta$dcMuBpG$+J0AI?splbJBSkm+&br!aO8Qf63xiRg^3H{^tHig%ij#qIkMg6 zLCME1FwIP^AD=ozK4rXW8n~E(GY0Zr?xQu6Hik5WTs)NGC@`qEgiDftYBPQG~$qcXt)gho1ALO_yslOi~ z{c}me3)$V+({)VDOBAvAAp?Geor5{6g$e1f_>xk(vkXt2Gl$II(KLK&tK6RFyeWN< ztH_#K;>XlnS<)N^7UU-DFb03NyzgYr98w-GwJG1B5;JMuil4lMa{j{Dh%N*%m(Gch z=@;e0R`<*n4;6$l9Ub{% z=w4z>wN{%gX`i12m`5svc*#bh;00Bd&uzY@in1*MlKIC{^6)jttqJ_fSbRhNI)EEd zQ1sw5Kt~y4=parMp#eT_pU=`UQglv)%qU zcHC3~gn7ug7gKN|UgE8$ejDcwWvA;81Lh>w$UQh#{dUU=%{r%gBFJXO?CLD6-$?|M z=lpxKVqMeIhZzqBj9|xnxhP6Jvyb#mm~w{H%XyZjMf7krzN3B4!YfF4%LLo}{=D)> z3qHc|_f@XKo^huiv6xkN{s}xpmVU^!d(wRd+4E*pc}S^y8pWZuB~luVN|~&n-HO7! zJ6xNyU-eC_4U+-Z72+xMQvyE~yWe41pS`X&+Bs#lACEhb3u5mbPZp;%FckqCj)yEBN2#$-aQIm4-#MGWXW30uv;cxOG6PQkWoiBH)-B~nk`+71LA}4NCBb)Q?Rbb2|MNfqu=h9%4V1&v$=LIC^iR$UUa1W$d-_+{7i&T}<0i)n zxj&%1@6Nhl*ued%N$IJXl^6-e{)|g7*Yc8L+fZ zbOj@??FPCvI(^mi%>mx<#ECCiLK92!3{Bo4a;{TnMUYVqhB-z_r!&vbOzg!99H==s z5A}U=SKaOo`Q&jeaNFk+DprLW7bqaS-shnX>$V+V>xZZyKlGS;QbZBRB3c^u+;S3M z*)MQIDb+C(fEypqE$`epi(4z+!~B8iCK?)7+V>_K8EZR9f#VP#>tOn5Av9YUy^#6j zhPFeF{VM(Rav>PXcX@)8^7rH!;SSCtsJ|8yq;#&N`+%ly2lnsY1;S5~2to|}Dsn($ z1^Zjkxvf^#wK-I+h4xD&VewtOG$Jvk%W?KY@3DS4=9>e_}inTBPgc4wW z*MVXbSbym}A57p}boSf3P_cEjE~$2vq|$djigJs5p3N+u7VLC|cLN})B>Np>!gfwl z-z|(z?c84sTh@N9$EWF-#^KYD4wYz1@vS#4$K|3^zEuGUaT@S zaut775Lr9hmsmEKnS2hau`z%{;C@@XgD~0fwaOr8oX)l{(@$;v*2UR0U7Yh-Il&>c zwFBQ)*UvM?9_{H`VaHFp4`7>MsO#SVZpy3w&d=ht?wE=I1?D{akeWozqNJsxW3AjW zJD6{ZFrCUlcj3^EY;)h-Dr37ex45X`=pTM4$Tn)@`=c z`Ds&YcHXC((Nus6n>MqxfQTe&z*H;+$1^k4pZei_USh`iP&dEFDy{pKfN%UhG3)@< z3S+aqlDJl#@lK4>ZR^wJBq<$WISQQkzaSo=J+ONqZtx;RD$&j6;>5Hl){^ovO}2^q zveBwm36G)Ux}nhBp9ald0Z%@7p;*>E?D$uIb3-b5Ln=rua?rO) z4k%cg$K3b0Ea_n>B@-Y2{zRh2z+;xTvF8~aZRQ12S(Lx_c zH@u{PzZ4MO9Q#~Hm~WzACF@()l!bjt`#Bdc!$w||-r_X{BW%y)r*|>Ec8f+Z=H|y; z7gFDi=ot&r#mI6VF2huI=7w60Z?XJg(;h@a?g>M0`F6!I-pxU9i7Fmd2j`TLEMuj~< zACcFMY}PW?Qp(MtZ&h#FBx3+@+=X`iCq1#YA`oPW3@VDOol7>+IbF2EjGXbSaxfbD zI1hJsbQyd0QlN%Q*iq5vgS|?bpq+9C+PeIX%kT}39}0wzAG385T%vs?2NL!Vp}1S* zj%<1}x^ysk8qWH>sCRP%RlMspj`MW5@mblGX-@^Y_ux`M)i+GvS6AU#DEUVB8lWXHe6u0|g4*%wAgj z;YOok-Zl-bf>l~z`N6Sh!=a_m+V_*3;~U?-$eqv+*R7UHK}GMltaUGLo+S>DVbJ_< zMjsM01y(FF=>2A+K?R_~2!>TFB^~-)=p5Yq2e|x2qN8O8)1}DPKctb}Df?+Y&Pn$U zG4CZkq$8^Sv4GMQ8s=${&bD&K2%gF52dMwcgg0wtG7$4&NN@G&koI9CqX(yH!`hGi7@9TUXN)ry z)nGM_v<^mP?c~$KYiZc|KfxtRd<{7`;1O?k2o1g#I5Ezp_ROu!@>e!G3cAp6A8>l4 zzZhtxZ#~xKmOY2Aa+v&`JWObD!c~P{+kCA)2S5VrPu!!kw$_uWLKf1UCe5R%iFW%b zC8pj%^b;>W@9GGqgM9nO@Rvg|WIB8(+o`&Dif9amF`C#dm1=l00k7 zJgZw3F#XK@HGBqGKcag9$DAp8d-km0vB#c`Kg%37%;9GtZRxAp&|*K;R68~-q*ui8 zW^x3+tL0+F8$J%h)VqJTp^~5tRoAR3IZ$T~yPC@StW@nK$S_g=mx0cIW(xdw_!-V| zSl~jZzOX|eMpW;qkJp^pjT=}V_ieFLp7L?%Kj`byJMzNIo#7el5o}jV9U@Y`*~+kT z_Eto%nVi&s6c||58>fDodCv81aro5y$Xn-A_6ZXrPS>&Few}8LeYSKz_b=xujdJ-d z=xn2LyS>2z%cO|~fe=GO_p^CN7>5U5F2idf7oj$oqf~o9QFxo%P|aJ#XL(9$AgA=Z zA{z|LSSZ!Bgd=E8zDYQKFlItk_&K5M^v#s>`L%9Jw7l4K2(5-`R`hsp9YUd>B9K5C zg%O~iZlhH%bs9LF3C&oZ^cE5_=@AlZqUO`$q0g8&kpo!akk&?$_=EJ;%O>mQFR%7C z`_ALSi9PHwYvQVF2H)Us4j%tWC z(J+m;GXw>ZQ+i=_`QEwePR1Qb!+b}K!^)_gHy@m(3^?(Tg%Ux51b&i-V=Yp4=><2AI8W^h;2rLc{*7D-t={)_d&*Z$E($9r)$RA z!x6X0yQ5c0Q*-nJeVZ@@XBzb$VSX^Gz>buV@yRPupu8$fjXN@VN%gVn<*i!|>t3jE z;i+tz1}DTR$VXPgL~Ns?B4a#n7s@{iKSl5^L#>4#$Vro2KuxL-VaGbmsT~hm z{$hAGIl9>ZEjym)!98@B_yn^lnfpm~v)k<`ae>M4#HBgQn2p{2Ns0luX>PhZ2gy9~ zN}TousJ34fOL^=98?N~B;!CE%yK=AhT29C${V`eWOl5`X67+s3ag$RjjKe=@S(w>a z$dtcz3GT~#?&OjO`PgW}E{T@b~y!nVv$g%K6vl zb5UosKRlb|x2}fN_GO=buP0PGGtg(8k<_V_1tNCLT>w%2hRseN1?;8f*ty$dc=JDg z!p?>Q_R?{qhZ`sPm^b0^z-qWwBp-ZWIh;d>@48@Dyk-cj+^%_e9arS~;M-!&k*ZTG zCk?)}53MMB;nsU760H<<1Y2c!X)x^Fj@eMP1~LAHl9$Bt)i4k4H!R;Ug;Qf&9G6TQ zXUdX|TssxZdZ4kpTh8C9k7Qenf`?|HOvc(*CH@ADnF~VD4$n;keBSHdm#rTc zXA}A(w>l9TJ;3tTHj`&AYq1@6=CE8(OwP z+K)rX8qlfi&*3vrj;vPNix*IsDDFOCZwwQRp_ZoaXC6Sh(GOvhf4cr)q*9x8;BVvU zW60RQ+1DpnS!p|RW?@4z7gW#HRZA9sU$k$@5jRZwb|fJV3kT^XnF>B-fD7S`*r{R7 z5`Ch}?aoqak5Pd_<9hA%os|rj`c5&TJi{U^(?7iyJywm2u2FIblTBo5+?T#4(?pd_ z!NWTR(*QZk`LK1`=FN4>Le<~JIUSFXPEr&-m~DSInP${~AjEfB)M248;ifjrRgAV|}6DQV&3;p}(QUbjrh=subTY zw|<1;r-QPOvTo`cc)&kBeIXTh?UW3sXzrFD*Om{jlK1=h{gw-cm%5^}wag%@NRC925*-;--Bs=)z{Q48|i~>%AhT8qvv*#ja9Wb06Q?zM{2yzU`M9Xr# zR#EcNmd>X;E*0A zdg}9h{9W~_@b=yz7xK+huh6OWouunz2bV1S1G7YKbg{~uy|D}9e zcMKPdR4+8^{CJWaGNKDVi{8Uc;nZG2k7d6n!h%Y?!U8(DYwDUZ8DvbvnMPWQaB*B`<&Usd` zV*JE=%d)5t#TqFuY*-Zt5`lgn!K~)U{wP3W6lkACl~@q4GIIFzT=WoZNc6$D0z{~& zpYaFZF~3O(?t1z`RrghFH7y)vOF`k`Q)Lkan_R1LvLyr4=F+CuA+kJi_X2qW)wgtq zoQRgw5%I+M>B0QzFHglJU;|%oRUKUju1*W3_ukUyT@l{)B>9m;^HB9rV1U5A&fX;7 zr(xIfCGUoRvEiv71`p-e&+=WeaS$hHB9r}r1%D`?*Byu8M&ZWVrrgJvOe4ae;T+%t45pnfLi17fF0XI?b!HX~!lw93o39#U`G8%2J-G_=r4 zWx37W1TVjbb^h3Dmx*K*PqZ*5hlwbyOXyOgu4}UQj z?BxPJG}dO@`CW88hf5&Kn=JWh0x3VZ9FMq#5{S>&00LLVYwG1cUjqAZS<8x&lHkj~ zYWc^kx=eQ&Sf7H1Do9{_gm#6a<+gT6vB~9>5TQdz?cYJs|9SoQS%8&?MyPsusxU<* zza>B89aUy#=s0%tEUK!``QW*KHgwWdreN&|oXbmR2GWcn3oJIN^ls+QMZzjkw|6Lk z5_b6L-;PAHL)@zo9f6llKpNpWQm=`^)1E=}TVDEp>`e(~1^F3c=Pf^ZKNyJ$`Vl5C z{$AOyMYYBK)($rHlj^9&#Al3t{GQ2r4>U$~77V3%A&_7?e)<5X)2gZ`yUdB(OrOk) z9^Cw-VfmH@=CF=9MtVQjU3y0)y?f}Y>DV&6*6}8SzcV7vrn!Rmhx z;ql=hD+b}2eNb5cl{(|<64CSN!71Bk-yjFkhJKa%CZ5Z<=T6;%K?vifd2(}<%Yaz! zQ|WN{zPnBrMTIt0WXo)$jra zOrB85{rKNYU2n8qdX+1DHuq>hvw4zcqJD?V`xfm9vFEEf$Xsf7;_P|$1{XGMlj|*F z9w|M$VR1##+o409W{TWOpz3;KgzSeB&}7!yqj{#!2dFaVX?Mo44vDw!jsSZB=$KXO zxB#{i^8jMQ%5LIs=lRjdyW*rMcK1(2&2o9^uqPgt{HJ;T=NSmqd zi%;iODo)uLTiz0jhgWFYaf*`k4OZD1a~%)q4P=SEYfLj9>9k0~Xp_trrH%~KPPAsx zZF(#L$N|72bSQ7_Jug+N&yv=w1NJ1yQU>-XEmz7ih2F`lP^nWEf4@dqDImoPa=?m6 z2B?~A-`ONV;=sbhm9o+xPfEAY;lO`K6hfOkx4`OKiD?$2RnmQD0gw@S!S$@zR!#|( z8$=?enw7&)sRlyj%D;xnxTn4hN2H_h=FmY2)OrM{idd1Jue~*8E9>%|@yLyim85j&YaA1w! zD+u8=Lb#Hclzd`brx`9%Fn?H0Zq4@ncwsWGF9Fvx=q0w;XcdUco;@TA>edc!5-Qqh zuukf^>CY-GLfPmApF^TxiL*Pq=ka;pDiccEAtVBLf|dV3RsZw+za1m~ISb*1Nqjf` zRO2){^8Tt3s4YjR5;JWlwr|>n$^(onBP%r!y4~Zw@xY*0*C07=p)wC!++-mzD^|ZR zRbu{#;1wF^`eW||;Z8p56DI8PUg(5ar_>$<%mB(KZ6_0E z+(mTr7pe8XqDJ3(X0s{OBD{$k=^&K?J)TsGH=cDdD*OJ|aXZgH_y?*sT+m;jqo$Fj zyuz8}e1d-?np;6oI&{WKbW*4215Zs0-)kI>JMt5U&l^QK7dU#d)Mo9-ENsNnl=mh< zWFtM-_Q02xBA@$2N4u9e-eBqadf=xe=U9#${cX`5RTfcG%|bFZ8h&;XjV`E59Hz1v zp;*Z;#vj!rLSpkxAw)aT0_mlS9@kB;#u=#E(xEKw8GtKp1Qe8(S2H!0@Wd`MHy8Yo z_~*wRULPjlFjU6vcmH()MXBY0N2^OX)Gnp6;>)q94wfLbi(5dK&yurJL&VhTNgq7TVY&y>-kIyZ6!}qlFYfs6IVMND zT$9MMWt|FMy>|asFe{f2&UZ&vjw3ultmvU7Zz!Ec7=fkeGt$xBT0^2?%&pK4(m7?V z&NSX6>ti;wbgj<`w2PQGsHq%iiG-JP(=EiKo-4NNWv4Ej`}2?6bEfC7p(9>@I}L-} z(rNQKC^*;pr1?qqdrNqg!4#@PDQ)T-cQ=5Q-{OdK)?HymtHBy+rLW2#b`=!34qW11j({Q>J$&G}iKGjJ2q#PR9#s$sV z$vAC`Tzl)gnFO@YBe~7csfcQu*r`Zvb4$9CSblOhB?^G7_}C>dRo9_utU-&V^Vv|d zTL-<60)D1LSXv64S9q^dD@DOU#wLHE?m9&I4KuY3Q(jNs^k2m-=ERS;|Hbft_-K-r z+DtubK&@(MqmJg_gs!b9YH0hb_HBr6WJF914oWB3nXVi5s2ByWF&rCO;Qx^T00Jh` zP!rN;*SzpoD{7`=9?0^#{56$iUrJh4)gFd7uyw&hdR4-k2svCIQp z9h^SCEvs-pW|sGM!wWNZgc9#Sk%&`fBjc8xPd{!%DY>__#*gVyMR7@>ysw6A+{vf+ z0)j6d*E{-?;kY5N$eS+zReolrbL1ZS;a+|7&!Fmmp8ua^`SCah2w5N!C|3M(O$hNL zz}?OI_yoUZxt#y*em~QA5&a;HcSWrefg@y+BFJAT3|`Yz35=m>M_RMM@{aEyZB$61 z&FT7g)9v>8Q(gBIp^qJ+$*lw#z!c)Gy@^*1k*t(DgM1{;T<)uXjeFLmy`t}z70I5F z3}^dAWO8ET=ubbu+JK5CjK8#{J_u8Q1USM;o2T^-lH}wjkTV%h_|eQBFum+4a5XzE22$u@Ep)4)%Z4m~~Q<==R#tVsp(ancB#@UTUR z2=VjT`SXs?G;}H!Qo2d%ijrw`dO9nke|k?&xW?@!)aRj6mYO?cT;%8Ff*+*MZetmD zI{7Ip=IgrE>7;z}fi$*lmY{SM!PKlLE6*yptDxh4tJhaxFB7F$LH=Nd^Kyq1^l9)l zcu8E0z1+m=PyZc5Yv;ufFspcD>xTw+L{V8%vinUBQog&dw`74wo^6EQNA%rm-P5Lm zR5rmUTeU~0a)Dtdre9Q`l@gV87y=h3FCsy(Ysfr2A~I9G4+5*7JIigCQ4OlSwa%u9 zk)7>RdOJ7xSbJV~+_02&JM$*J&bVu{*mMZR7b&bTW6vq`Zlu61cu>}qOU?7c7g0k{ zUv}y5PbN2h$Aef0Apu%!91#RNS>AHFXV8N)tWZ_1^UzMNxcv7svYg%^AbX z!6(@G{;k~w)D6&OPcc#fZu@qd+)h7Nof&$YioNcH=*Ed;@ycDS&Y^ z{Lkb6)fpV&e2}ewBsTD*;_5sMkE5T8O+moexfWkHV}jgCKcbDCMlBKJUPoyG+c$QiFhSY2hW)37&QYX8dm&%YRWYCpeX;QS5T~Kpx6jqMsz! zWm1*Nmf1Juv{Kz^sdkLaW41%;o@!1vjiy~)>$IcF-+beuiIB%BN@N340HM(iDbQzG zt;e{wr%jF54?~6AxgE7}UU&Ar!*(VqllEG{fO4n9CEGYJ=?WodJ}}uC(rsHcrR6V= zn&8w~In|78Y*csi-KCdipTYHiKwa!Kra3owqe;x1Z($tq63eYOIgK0e?0UU&!C zo7hmGkRbG_MPgv``A(hYO6k#{&U4Y|nB@g&`1l{zb&fOX=Xu(yY^fRvlAG0TPGIwC z_U7P(O$!0Z&NCy%b>rgzrRs(o#_6-&{o7mQxoC|{>G-nlEXhvkN##DLwe>5Yis|JK zm`QYGE+k69!?b=s1)sx5P(J9`|l`c{-^i(KlKbykBa|@dMIB!aUd}Z z$GefZ38%sLj~aH|l=OwO!uMqc?_Z*LV1Ac7DgL`)KdM2jH0`AVWkM2|Y(L<%bDn$7xvz8XANSt#+-I|2`@?)@?6p5@t^Ho_wYJlV(|OPZ z9Sv;_5Dg6t=x^W)bczL8sQWoNfIxbBpxYo2h!I3jO9P?@u4sU+LreQl1qG8vvhQ{^bBVi z82)rdCT1o^#&e7e4Ch$Ront-^GzKPCHkR|Of3E+0$e*|Wc^B|~o{@p^&mI4{cKQv( z&UmJp9z;uX19XO+hL)Y?v;zbNW=apN#Gl3ZZ;j>*Egk(?U`pqhfg5Tr0MnR~CKz}fM8{6gaa~I7>_vlT3^&|4@4imVW)!$z(aL2wgcFp0?h(Rt?h^N99$ulF z!XmeB%gEl7lUGoD@K9YtQ%hUN$k@cx?5Vkht)0Dt;|nKePcLsDUqAnV&^KY>5s^{R zNy+ctr=+HRNYBa5%P%PWTvS|HRb5kCSKrXs*51+C)&0GvcX;I2=-Bwg

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL zW48yH@5%Y8piM!&Bz~}iY$gw zP6xdmBiYZWfRCRHGR`+%OniwkA)&P@2Ia@QEUq?h%3S2S++R?9 zJ3LcD>`dsg#5{J~hQ@Sn1~TThX0{uS=mvWE-;$i)Wwa$`;I^j}7CUJEqTN5V5k~@* z@#Ax-b~H%@*;>)75XqO_|2Q@){$_*qJ|g3NQ}USR8^D$dQk_;wb-`3%TB;Q}2K)+w z^OU0JZ<>kXV%K&Z%Lny;;3Rq zFw(i3;Rk+gchoz@i{)9SC7Zx}@%oh?!YEk#djYvJf@Kr@?c5ioC;>++!riB-zIp)d zvkZ_UM%BtT&*2GekMhI@61!C~B*cpM0iZCi3Oaj#8>X&8jTv`f@t|U{$MO0-zdR~m zFZkO*pQ^C=^CpZ-T%r<_gq+44sA|5rMpUW)VyadhsFQ29Gz~mF+I=W8tdNnZ`WR>< z)l;rzCcQuP{&oZQWl!qdi2<^zP}^L5=}YDE75gp#dymkLy`F}x!J`n;1fh0QuOM+% zVQVGhsw7`Q@*}Hlg?&>vfajY|*MYv`F`zrtm+u@WB|=~=J$o&t`08t3z&-nIMrN+x zV3Wa__NC$Y`)lO|^U) z?RIyU_aPD&A19h}i{Je4xRj%j&O>Jjo`5Y!cLW8{n3>2rOAV*-QJxPSDt6CzT(6in znnCS%eN(4rHWv zDAx5(5rftg+5oLVuwfIHMj97*HFtaGsjKn%FN0=@=QB3_@9R6~WS8&m0|Ga06ip21 z1DOr{MGf-hb^^P+(2s^%iSmsi6PC@&5jy%GoDUw)Dd75UAZ#OAhguC2{CkoOd|h^) zP`9KTXF$$qb*cDX&f&~c6*>-YjDPn~PLYXEYDhc;V6CGSW~3{rXj#YcO$6ITP0JO- zRk00xAA1a4lh~d%UQ+M?E^Ba**?dqt3QSZLBF|BCh0QM1VoF>%mUi(-JdFIny~ z5e}E620GV2qK+030+uFS8`g8$N%2h&NGT%eOpaz6R56z>g^K!94P0ZplR~l7Xsn|u zd<;nXpo?5%)U8LT5aUWqwUh*gi;R!m!{Jwc{&+BwZ#?h2T20V00S7CRHe5-A5^j=% z#2wq;7k=nTnqRmyiTP~N)YN|4wS`AvAANYqlUawaAolCWgtzl1f|`uIBXFKyY+dek zq#%c(hrQ0u>MolN>3V{0FV&pE8W-~_ZdjLQrKUO5LuLDPFdL>ga;NTN6`(?ag5CW) z4)G6jZ2$h62H+fpe06HWs4-YWn3D#+?7uq&sQh|}4u3bI@oM?BlF!;?rlu4O2Qq!K zLLg{x9SI(+!$nzgmQ4bei+wp=l-`!oLGrT>4OMX?N&|G9X>`tQ)GI*AeW~Iwv>$u5 z2j<(t&1^A&2DQ|8TEMg$5yeruYP@;%Eo{>SL;bSk@GpQ9+qPDpH#!%KiaU6dd~M3_ zvg(L_Ikmrsr7^<^_&`b0g+NssSW*EA>y7C|I20aL`wdQ zm5mL2t$kfi1S!WN=}Spv@d2OzhMN@BC}B!K;uEM${_ua3tp2M6_J7Q4#_woD@DgLt z2m&E3oZS!EW@H+t-edK-nXYy~L};UZDm?lt!ieti(_`Dq5}Axqn3sk8HwEv=Mb#KYZyGc81PKN#&xv}(=UIK7=(PD^t-lWgD zgglL4Bl*rHJ>RI4n=KR{H|g^}HGYwUHM}&R_1@qnkM@~ug*_SaBU-bdI@mKF6zy`t z!gFsuGvx8{htCqtx+^I`jwkLMRy=cpQ+d2DI);_|kPrGNp0rvS?ND%8Jx^)7kY}tf z*A>;%#6h&}{Q)PGMJJQX_Yl zsy|Y4d+SJwl@O36y93$K&vVYSK>q^E>6v{2XJ_DJ(%Bg}ipE?8hG!$o0`zS3Qu#0D zle>JD8bqP;uCTf+!AV(({EYHUvuxgoLNTRpPRTxwdvf4|N$@wwv=qM=SE^^B0F=03 zqDUt!={y7ld#o4eH!@T4G2hu=FiCVQqqNg;XWXsgUx?h0xruGia#$Jg1?`0B~$2P{O0`h{NIcgD>IX6j0-Le_`p4}a-C5u!bR zRhGx(DNwo>_ooDrRLS~*kH9DXn4%fqj5sskn$?&2wr*eWL+f~F)|O;e%URE!@9(c7 zHsh42m#9eqf`uKX4X1OFeP8aJfRBH0o)lkTn=*-~{_6Q&4a6yPMwA(TlTt!t-akN; z>g82EbLNd5GF=O>oT|y`+tw%zrD%6;eNz*7uxOo`m8-Aijg?&MUa}P#GQU6gIU|CU zxqamTy};>#}#_ndIAGr3{$Yuqn z?lWOQu$C`2r5gP|_jTlGhWpYlNhX6ohR-2cF5GfkKftt#5Q=l3R321W&4^JF3<#N;%(nJjJrs?{S$KNS?Ejuwre>*+p>RZIv;v9 zQyFa?t%c8vqTgdqZr~7zNEGF`&mp-WD!SzhGwl2#)AZ=`^v80gn-cwE(!GD?bnC)*LtI$&uJ;Ey(9e^$ySDbfnXR?(_92J(fgS-)}f1Kh3Ae`R=h;M)ba=@Ru)dz5l+{8Vw}{bcEebyz3zHh zNI%;ebSnT``xq6_GR5?9F82p>l*Nq7TVZ zjwXrbthw71`MCx9o8R%4mI`H?ynJV|a@+59aeyUZdfqlSN<(VX3YP}ox z_Waw7;cf-5k$CW6jO=Fqlj@%lWQ?2|OXb+H=Bd6rW;mU)3Wna&uOPKiN1z-p!$*@1 z3%@M6vA4sf&p?*oDS#Xq3iKfE85NVesM*=3Hp_49cWmI<3Hw~!0q-r%wPSl)kkqOtA%?&GtmC;$4?JuzQjRl`#rI_l3c z-!THqU_hXc z%+Kyp69Qtzri{`%cH$W*9}ay*rGFe3kVpgD-8hgQB=EY8is>qVjQQE`6`wOp%kPLj zzJCGTsOA!S{ugv}*)Qn;x~bAQ3ZR>N{|4Rc$=5sG0BlSYWYH-7bZ9fzeE@0Eu12M*981iALbu40{_4Az44G&KA=xk zl{8dT)|J*qXQVUDvEPur)FL7F)mA73a*xza(a|D>YZs`%2$8(?fRC>tG#puAyvO2%7ab}=&&?d-f#2xNrKL{{kps# z>QXsSrzLSXW^vnO9d!foT(=J!$@tr?x09qrV+LFKa6A~k;M|RF;2s@cY7i4ClHPvY z>N8fo+{2~G-;o-_*|Tddf;Im}DrHEUv59xrSh?lhFbLm8yRI$LMz*Be<$kb!mp$>Y z^asc2ib42j@=9mz#^Z9h{T_U>sq#dO=Ar|p6ZZ2sa55-DeD@!tsFOa|WOsx;`E@zA z$CCq84G<-z%}MhGzX$lcl&>1=SD4_rQ{04`DRXd$>GGKRPEj`KR$L^G81*xqOM{#} z;Muhiw3y~R)U--kr5to;l1Y!TT9XK;ZtBP}!Y77Tm!?LT_nfrmLP;5a&>4=dQqubC zK{4Egeh5xHI(H;L)*g3^);Gl(1Zn40sK~e9;(lyZ5uhl_U)Vpr`xI&V*{bT%CgiZ- z&d!8Fy9wnzS;Z|ql9bzJQoG^W)9p4SH%;nlnJ9f_oo9F_&5xpBlNE0c--}z_vEbF< zpn@p#W#27^cccZ)$x;!Sued%lVgr}zT--in3ta}szh7W@L(|B5r1|F!m&{}yp=6%7 zY92yIjSXav356Wnfb-MFV0axUE5(+}@(c-4f#4*lx+a>Rsg94oqg|;`%kkcCQJ!z7U1|wtp=mOJ747?5ReL>N|+B#+XzIi3i(REF|XGC1$ z2i6`omf3_Xmwo{xV$?+QBwJ(YiM33{0`srcvrwW8ePIuX=j%^nCEKi=t@1j<&PmC} zL@U^#CN3$hYRJBDSJKICzO{VMSI_@rN#~dLAFFwJ$7Mw6=;85T-u{;28YkEuvZz)L zI|rySmT){yV;S>~fVk7g3`8x9C;@hGUnV_$e;Up@S!c z%kwoo65mjV1~B1^>r%w0ebe3k#!e6J_iic|=VQ8QWmznRtgRD&2tKuZqakxS8)6UK z%!>WcYiNScxjTcLwQ4zUs|O2W(Bh6R7ts5Q9Q>+amcU&ER|03ikF$i3RZBl&g}mar zX>teRSV%?eoi}X9q$&=gN`IM2(#rca! z__XIa%iEO+pB>O*q|d5^8B(U^y2ILBshPL?^DW@v!@6HZdG$}jX%LOX!%LKL>-Pv+ z6ji-&_l`>ww%ZlFW)1#ZEF*jnp*3;tV_6uJlq=s@!Z3@R>Le=_d;pMn%r!QjCwvX)aP@1Fq^<3rsgolTY#c zV0sJs71P^JJJZDEnsFg$t2c55_h5f>i9%UZa*F(m0sXNW9gU*A_|Frdj?j1OB6A6L zY_cg&Ha0wRuFpmL9)V#J0LYhthCrtc5gfeShnx}xv+D73FxOFT1#_L7Zx^#{b`Fsd z`~QTDh#n#%F*E;$jO-`%glvCE(CFWHZaDz)W_^=lqv~M8*Qilj&E}EENcFKJL>oWi zeOs_sPZw-WN5d!ttZ zr;m@u?w{E8yR_5nTnCCI8!Y_`mpTh&UZAG|>dRnTCDjSGgQa zY?TztBAu}5C3^-djLfF5JI>d)7|Bw;Ibi^t0`$4~ju`_g%h8#E#Wz&5bo0)yY13ur z&QJfvFc1hOZrcft@4xE0CnRv|#fuIKtGOn{nBIbAq7_n^Xz?@h@RAk%oK{Vs3GmB> zxhlXo77D}tp`t`*TtB| z{NnXW_2|7l8<+fY>LckvoKO#C4#o4_H||uHys?SDXU%cS*O6~GY_J@sX0n0pTw2?a zs}yVE^3GR{vj#42cpvq|zJ$?AIFdAwo>Sew3;v(6Cu!FY3v^+B@*%oOmM0|;d~GL0 zdo8iyu1*^|d!G7_P$5Ec*~?MwpIuMR)U*pbDhU+u=H%bk5|7Bvw8q*6{fHVzOU79^2TvA4L*rY_&-L$$Ja|xOdDD0z;jAZ@kIlwdi$p-nk>{2c zL!6^QV4%q~<5dQLn5M{LvRl)6eGd0O_9ZE^eS4q4vYExnIi=i&A-wC~Ylw-J zH`*Joyk0qp0fPibG?`C7lqga_eLxsp!}1KlUzXUxw(R!uhxS0@|9J5yA}E4A2A(xt znJdzrt$MsEYCfwp+%{K=E+!T)7ClCl=lNDOd3q?$sy@aoZG15>u^Khyv^lCLb_XG- z3X*j=`E3#pE$Uj|(~lBfsru#RM_`j7ihVIV<6Ow6;PQ^y641a&Sr)&ptJ@Ogq4gjD)VoMk;mKlyjp0gWY~YUJ^%h|!6~iP z{+I($2ZP!M^Oky#a-FQIL1-y*$W}|XBi3i%NAnF69jEa5=>8Ce4cT=tw7yMI zT|wR=euy!*)%OGqn{nj}J?C_V^b{XahGSx5;deRs?IT;eLnZ`3Qi!Jy;E_So!wXz; zU4uR%wXfcmR&-g_eDt`~hvc&j*K2O`cWSO8Sv`mg(t{bzlU4hN@G5s+R?Kr$#6byesBWAiQYh z%EfhD;rll+UpKxvy^wp8_leVYA6yXrq_sLkBZiERD>scR{JOByF{LZe$e>%G(nsIu80v@t@$6}U*1|o?} zPv|X#6II@QYt?>DBRiwqkYxicg>7v!voIId*c(rBNFmM}22gq2RN_~13~3PPh<%;v zXd}?g-*A*CICY0@K$2le3&r4%n$|+M7Ly;Qu535bE)Fey@tX|30F#-6TQkEGX|Q^F z_y;TA-$}g_>Gq&z?X?8v+~5-7zagoIoz>w()zgzFJTIp6>Vvb_%~jpXwC}d@kr)gX z;9+GV4@eYRN!&zRhMDNrobjkMbhcY7h(GNRnLt2hV|beVltGw~Chs5C?o;h#YakP? z2;DQm_H8TMR&K+nOjnhB0#WKs;7&K79tEcjogQC|5Ss?IK+LaNfHg&i4>hFrcP&7J z1YIo-%P8>FnMGH@c2Pc*6bc&HMD)kA6Frz-6E^oQIsuia6``J*U|x2W-nJ|4pN#ji zd{ENoctyj3N9k}f!`Sf;EHMsX3GtZcn{Ef{Ut}9@{I0L@M_ileYvqeientL&g=hY& zzn;g6BiIQ;t(y!JUN+4>rd$~@K6g|(yiEN@u003Im&2|9C7;2(%(@`u3PJ^Z8&*`E z5@M$RuE{bL%F}vqqUt$L3Jb7J-aWf;oQ#%g{Ne5e9Urux?;;~(mf+a8w1cZyg%L2{FX{OwK zBo$z|%r}@VZ&Zd#7?;YYzo5MaC2N{7)4F?_YO4LD)lY=C6R&mQfU^XT<;kRNb^P#ZI27zA;X-djnSPeVH-^iJr@;ExK8FQ|Om^!l*H!LvMh znT@v@y!nvDQfQ3Oh-j@xv0yG25+NPOBPs;0RrGh?J=_fED{~sm>&uV&Qt#CdJDPJY zno934)mg#Tb^KmVbd)dKV|WZY2(1vyTe8iKW5#t!SL{yXp5`oVrfBZ<$fRn=MQ-GP zo)b+_f&ZQM}w{4DoNvEZurqU(I)|}6_ zp7pOO$ea=U@e}jCIBIl0YF-k33HJ;Y0w-v7^NNMm3TMN|Y+rmwcIPjzpj_V)dB#iw z7+-lF<#y>hTvbLE^h-nY;-*q>lcVR&l{NBJo7|qS#!VKY(_#eY;d$&HQE+_QF=DHv z#FdDLbB{Z&M!f;@e^m}CN-MLA-gDmkfcE5*{pnoVI{wD$2hRCPNe*T@&{$cSR|Kj> zV5`l*4fR;>8G&WpP|xsu{`7%?`RCy#Dv|GjTnk3Nu^B{{;D$4ix7U#DMETed?z+*J zH08*n$Npl-cB2i-!>rrRn1g}waXT>0X_EVlK8+B5+3E0n#eIM34&{&9i=|KGaz0DU z<~o^67b;XxS)ECb$y<^$xhEXh1(zWqh}P# zKPQy9q^;HMj?~@!vYxB9k`$*PDmq(mweh|w`%fRfjb*mmX8l0Rs>rZ)Sg#zk~_N1U%2x;jGq7c`(0Qc>vsejd2nK z@8}uRk1!$~TL~Pd>6!O$n-*(IiEdT*RLPf94ikym&VNqANA7WgE(h`vQXW+A1S9d& zGD`nqVDo~xN5o{Ae$jdO5BzGyNnF)iv$a+fl`pQdbVbqkJdrzh zZVc1epYIZIRF;a_-MzI|;sWIxQfOO}CT3hKEu*dVLUMISp1J!^4r-W>>)X#F$aEdL z_@hX?b4a6zZxd)L-Tb;Y3;bB$J823|i_W|+J{g8Nx zt`8t|hEb$Y>>IC1ph1^vO+Za~GjI1x92lg2m@m6cZvPk22g0nW5(#M|a$<$2)7jRk zy}!5%8ViWJ89$B3G#t)xr=r3xMx(ZhZE%f|>b?9kT4TE>WaBV9^Tr;SeO>ZM;`q6? zGkWsEFVud0`rg*R_U9&qGxXoPgJeK|emE>h++#Bd>SRrj5gh&Df_C9z9>f-5GG@ct zzdX`)U6UbXiR!HmP|J5UccHflVu3}nhyn~VP<#-#{;fOT(%R5ByJRo|&H{Ux_G<~s zfA!S*e|P=DQ()DhD)qus2uGXWtaCuz3;arcwcmqABE$O$-V6=^n&k)e>$F3e7}6Q%jmcE9WTv}p~rzLw46OhLHabu7^jGDWgW-DW3&G18li z6*!}q6ZJUJSYu>I!+^q5p8X=sS@LP7bF3Wt(~PMlWjPGdcm(yR)bD9ulbl}NZooj@ zdib1!B>V3V`68ZK#9CR@A9Fp4`G|5xkp<#{D7uDYUO|mBL-&X~c2O=BPT2g{4WvmSx`z1o-ppX*{?rtlCoftNZEk>@8*#p1UCSCAsMC}`(4dBoeVI6K zc1>|2G$a4zLd0Z&u7NxubEY+jE=}fYZAxPAU*C1&rFp7Kg0-tX{aX=rrwfnq4)hqz z#oB3o7?%sq7PL+Zm+DE~^I=^c%;f5Smd+`h@ud%DoiKh2BTTEP^#j#sA4#1^&%?~O zS1Sw_mLu0J9ilx;FFF3zdxQq1U}){&?P4llT)8MGq2vhCW_p7ocnMx=3Op+ z8o@Lqfslrzes*5^GCB2W`;vPC%H{=0g5%3)yY|T$hd5}cY8=2{&(NFW~;QSi# zdx^a{Z{MbJ#;1#n;pRlFN~L1?+1UGDr>cUFyo30Cw7M`Odb3GLUOR35&P(k#B?cRK zkNvu+eI>o7$5R_e>MK}lV6Ciqr5;kYijSi4=lS_rm#HI2#-4APv zdCj^$hTO^t@0#Zs*kTgINLi9(X>mJ~BQjG1=%DpSp2q3*6#aYzFez`lG_||+6Op5M z!l#5~Wnjt$#-ZC}`L(!8?xn3AEMBv8VSg=#BBwaAYsxs?d5Kp~Z?RCXNEYK$68&US z4?=OTDaQ_GkEl#WPqLz{H$&kB%}Ge>jMJIN)iDnv?iQ~4_{2Dg$21veUkd2ngWrIS zKUIa8(_2vlUG!OmH$^mPX0n)U&>a0#@+QSmid}(8WSAO;s$5KBuvTEoE)$WSH0)a_ zt*r=L8Js`s_CWm9wb+yO`a1Q;Ufjcgafl<7%%_OWBw>E13U958-s1hD#+~p;n%kb#p4DTbYM>*+Zn|dunr=nJ zwpRaFUx$zIjW+H#dC+S^Wxk)~zYMe&{cP?VvE!c*b3edHMuyLBFf|gTH4JWGQhgfW z9a4mjzSK>&A)N-?)E8*kN!nNXIn~S+174dD1<`Cf-@4*GZA)fT-??*nJ{wQ8WKJJk zzzHW(0FYQgu_Tg0^QD2Tcbq=h#}9oqCQUmQ<#`m{FLuT&skH^mRX8YF^KN5jU29y_ zDFar+_xz|3HS$4kU6N#*-LwmH%hYbNnVWKcj8ED8xG4Um&37+o3rAS@5rstQJ(o(E zwH3kI=w69!e6P=Vfpcl-4q#zuQ%?SeDy4gppp&n$1}Ww(<8>i*)I3Duum*?J$R)0Q zPx|Sh+%u37jAl7qc--R{m5uY`Ukq2^_Zmv~x5Fe+IQBhxde9&g#;N9Z-MPo`=2iyOgEs`Vt4cm z*!mZ{T*T=VxCc5J{q`fuqQ1&ezBdd<5cAzV%*romzjz4|TU#P>T_&Ny7dS3I;ETTV zZ-vSoKzhG0X%DFY;Q!Y`d}&Ae#8{{oH-xyD(HIS9Ol2JdOCtp2Lk>bgIYYUNYA7Mg zV%dulpBK##eu7PHKSv4_`u<`#`d!QC4LvpnbYg|%BY+$YYYfG3ul&B=k9eezC<6Eh zo!pp;kF!cE?|i}RPM-CHl~hR%y6Hc3{aU6L&19{UjWyFt#((Qb4#^0DBv^K-CK$UW zNM)cc&w32%-%78my?(1mC4^Pimw_QyR~!DhU9+aHd-?kPf8!$b9KWdj@arLS>c8s) zbBR_6eHwX+K5Wj!R^5aeIap6%&RD&ra;`afwJeDD*&n<2eWOn&ISelq)Sj1T_Qzb( zVtXzTk&Rj1gsJvV|0w<;Y7v;k#C=@ORo@P@+eh;Ij5Blksa^n?4nf`oxla%)-(lg# zOH(3NblCssOeeoNF1vlr@x>G`2g8yU$Dgs#On3==-EImDCPJrsh$sBBRL>X-xC?W~ z>sI!Ta$dcMuBpG$+J0AI?splbJBSkm+&br!aO8Qf63xiRg^3H{^tHig%ij#qIkMg6 zLCME1FwIP^AD=ozK4rXW8n~E(GY0Zr?xQu6Hik5WTs)NGC@`qEgiDftYBPQG~$qcXt)gho1ALO_yslOi~ z{c}me3)$V+({)VDOBAvAAp?Geor5{6g$e1f_>xk(vkXt2Gl$II(KLK&tK6RFyeWN< ztH_#K;>XlnS<)N^7UU-DFb03NyzgYr98w-GwJG1B5;JMuil4lMa{j{Dh%N*%m(Gch z=@;e0R`<*n4;6$l9Ub{% z=w4z>wN{%gX`i12m`5svc*#bh;00Bd&uzY@in1*MlKIC{^6)jttqJ_fSbRhNI)EEd zQ1sw5Kt~y4=parMp#eT_pU=`UQglv)%qU zcHC3~gn7ug7gKN|UgE8$ejDcwWvA;81Lh>w$UQh#{dUU=%{r%gBFJXO?CLD6-$?|M z=lpxKVqMeIhZzqBj9|xnxhP6Jvyb#mm~w{H%XyZjMf7krzN3B4!YfF4%LLo}{=D)> z3qHc|_f@XKo^huiv6xkN{s}xpmVU^!d(wRd+4E*pc}S^y8pWZuB~luVN|~&n-HO7! zJ6xNyU-eC_4U+-Z72+xMQvyE~yWe41pS`X&+Bs#lACEhb3u5mbPZp;%FckqCj)yEBN2#$-aQIm4-#MGWXW30uv;cxOG6PQkWoiBH)-B~nk`+71LA}4NCBb)Q?Rbb2|MNfqu=h9%4V1&v$=LIC^iR$UUa1W$d-_+{7i&T}<0i)n zxj&%1@6Nhl*ued%N$IJXl^6-e{)|g7*Yc8L+fZ zbOj@??FPCvI(^mi%>mx<#ECCiLK92!3{Bo4a;{TnMUYVqhB-z_r!&vbOzg!99H==s z5A}U=SKaOo`Q&jeaNFk+DprLW7bqaS-shnX>$V+V>xZZyKlGS;QbZBRB3c^u+;S3M z*)MQIDb+C(fEypqE$`epi(4z+!~B8iCK?)7+V>_K8EZR9f#VP#>tOn5Av9YUy^#6j zhPFeF{VM(Rav>PXcX@)8^7rH!;SSCtsJ|8yq;#&N`+%ly2lnsY1;S5~2to|}Dsn($ z1^Zjkxvf^#wK-I+h4xD&VewtOG$Jvk%W?KY@3DS4=9>e_}inTBPgc4wW z*MVXbSbym}A57p}boSf3P_cEjE~$2vq|$djigJs5p3N+u7VLC|cLN})B>Np>!gfwl z-z|(z?c84sTh@N9$EWF-#^KYD4wYz1@vS#4$K|3^zEuGUaT@S zaut775Lr9hmsmEKnS2hau`z%{;C@@XgD~0fwaOr8oX)l{(@$;v*2UR0U7Yh-Il&>c zwFBQ)*UvM?9_{H`VaHFp4`7>MsO#SVZpy3w&d=ht?wE=I1?D{akeWozqNJsxW3AjW zJD6{ZFrCUlcj3^EY;)h-Dr37ex45X`=pTM4$Tn)@`=c z`Ds&YcHXC((Nus6n>MqxfQTe&z*H;+$1^k4pZei_USh`iP&dEFDy{pKfN%UhG3)@< z3S+aqlDJl#@lK4>ZR^wJBq<$WISQQkzaSo=J+ONqZtx;RD$&j6;>5Hl){^ovO}2^q zveBwm36G)Ux}nhBp9ald0Z%@7p;*>E?D$uIb3-b5Ln=rua?rO) z4k%cg$K3b0Ea_n>B@-Y2{zRh2z+;xTvF8~aZRQ12S(Lx_c zH@u{PzZ4MO9Q#~Hm~WzACF@()l!bjt`#Bdc!$w||-r_X{BW%y)r*|>Ec8f+Z=H|y; z7gFDi=ot&r#mI6VF2huI=7w60Z?XJg(;h@a?g>M0`F6!I-pxU9i7Fmd2j`TLEMuj~< zACcFMY}PW?Qp(MtZ&h#FBx3+@+=X`iCq1#YA`oPW3@VDOol7>+IbF2EjGXbSaxfbD zI1hJsbQyd0QlN%Q*iq5vgS|?bpq+9C+PeIX%kT}39}0wzAG385T%vs?2NL!Vp}1S* zj%<1}x^ysk8qWH>sCRP%RlMspj`MW5@mblGX-@^Y_ux`M)i+GvS6AU#DEUVB8lWXHe6u0|g4*%wAgj z;YOok-Zl-bf>l~z`N6Sh!=a_m+V_*3;~U?-$eqv+*R7UHK}GMltaUGLo+S>DVbJ_< zMjsM01y(FF=>2A+K?R_~2!>TFB^~-)=p5Yq2e|x2qN8O8)1}DPKctb}Df?+Y&Pn$U zG4CZkq$8^Sv4GMQ8s=${&bD&K2%gF52dMwcgg0wtG7$4&NN@G&koI9CqX(yH!`hGi7@9TUXN)ry z)nGM_v<^mP?c~$KYiZc|KfxtRd<{7`;1O?k2o1g#I5Ezp_ROu!@>e!G3cAp6A8>l4 zzZhtxZ#~xKmOY2Aa+v&`JWObD!c~P{+kCA)2S5VrPu!!kw$_uWLKf1UCe5R%iFW%b zC8pj%^b;>W@9GGqgM9nO@Rvg|WIB8(+o`&Dif9amF`C#dm1=l00k7 zJgZw3F#XK@HGBqGKcag9$DAp8d-km0vB#c`Kg%37%;9GtZRxAp&|*K;R68~-q*ui8 zW^x3+tL0+F8$J%h)VqJTp^~5tRoAR3IZ$T~yPC@StW@nK$S_g=mx0cIW(xdw_!-V| zSl~jZzOX|eMpW;qkJp^pjT=}V_ieFLp7L?%Kj`byJMzNIo#7el5o}jV9U@Y`*~+kT z_Eto%nVi&s6c||58>fDodCv81aro5y$Xn-A_6ZXrPS>&Few}8LeYSKz_b=xujdJ-d z=xn2LyS>2z%cO|~fe=GO_p^CN7>5U5F2idf7oj$oqf~o9QFxo%P|aJ#XL(9$AgA=Z zA{z|LSSZ!Bgd=E8zDYQKFlItk_&K5M^v#s>`L%9Jw7l4K2(5-`R`hsp9YUd>B9K5C zg%O~iZlhH%bs9LF3C&oZ^cE5_=@AlZqUO`$q0g8&kpo!akk&?$_=EJ;%O>mQFR%7C z`_ALSi9PHwYvQVF2H)Us4j%tWC z(J+m;GXw>ZQ+i=_`QEwePR1Qb!+b}K!^)_gHy@m(3^?(Tg%Ux51b&i-V=Yp4=><2AI8W^h;2rLc{*7D-t={)_d&*Z$E($9r)$RA z!x6X0yQ5c0Q*-nJeVZ@@XBzb$VSX^Gz>buV@yRPupu8$fjXN@VN%gVn<*i!|>t3jE z;i+tz1}DTR$VXPgL~Ns?B4a#n7s@{iKSl5^L#>4#$Vro2KuxL-VaGbmsT~hm z{$hAGIl9>ZEjym)!98@B_yn^lnfpm~v)k<`ae>M4#HBgQn2p{2Ns0luX>PhZ2gy9~ zN}TousJ34fOL^=98?N~B;!CE%yK=AhT29C${V`eWOl5`X67+s3ag$RjjKe=@S(w>a z$dtcz3GT~#?&OjO`PgW}E{T@b~y!nVv$g%K6vl zb5UosKRlb|x2}fN_GO=buP0PGGtg(8k<_V_1tNCLT>w%2hRseN1?;8f*ty$dc=JDg z!p?>Q_R?{qhZ`sPm^b0^z-qWwBp-ZWIh;d>@48@Dyk-cj+^%_e9arS~;M-!&k*ZTG zCk?)}53MMB;nsU760H<<1Y2c!X)x^Fj@eMP1~LAHl9$Bt)i4k4H!R;Ug;Qf&9G6TQ zXUdX|TssxZdZ4kpTh8C9k7Qenf`?|HOvc(*CH@ADnF~VD4$n;keBSHdm#rTc zXA}A(w>l9TJ;3tTHj`&AYq1@6=CE8(OwP z+K)rX8qlfi&*3vrj;vPNix*IsDDFOCZwwQRp_ZoaXC6Sh(GOvhf4cr)q*9x8;BVvU zW60RQ+1DpnS!p|RW?@4z7gW#HRZA9sU$k$@5jRZwb|fJV3kT^XnF>B-fD7S`*r{R7 z5`Ch}?aoqak5Pd_<9hA%os|rj`c5&TJi{U^(?7iyJywm2u2FIblTBo5+?T#4(?pd_ z!NWTR(*QZk`LK1`=FN4>Le<~JIUSFXPEr&-m~DSInP${~AjEfB)M248;ifjrRgAV|}6DQV&3;p}(QUbjrh=subTY zw|<1;r-QPOvTo`cc)&kBeIXTh?UW3sXzrFD*Om{jlK1=h{gw-cm%5^}wag%@NRC925*-;--Bs=)z{Q48|i~>%AhT8qvv*#ja9Wb06Q?zM{2yzU`M9Xr# zR#EcNmd>X;E*0A zdg}9h{9W~_@b=yz7xK+huh6OWouunz2bV1S1G7YKbg{~uy|D}9e zcMKPdR4+8^{CJWaGNKDVi{8Uc;nZG2k7d6n!h%Y?!U8(DYwDUZ8DvbvnMPWQaB*B`<&Usd` zV*JE=%d)5t#TqFuY*-Zt5`lgn!K~)U{wP3W6lkACl~@q4GIIFzT=WoZNc6$D0z{~& zpYaFZF~3O(?t1z`RrghFH7y)vOF`k`Q)Lkan_R1LvLyr4=F+CuA+kJi_X2qW)wgtq zoQRgw5%I+M>B0QzFHglJU;|%oRUKUju1*W3_ukUyT@l{)B>9m;^HB9rV1U5A&fX;7 zr(xIfCGUoRvEiv71`p-e&+=WeaS$hHB9r}r1%D`?*Byu8M&ZWVrrgJvOe4ae;T+%t45pnfLi17fF0XI?b!HX~!lw93o39#U`G8%2J-G_=r4 zWx37W1TVjbb^h3Dmx*K*PqZ*5hlwbyOXyOgu4}UQj z?BxPJG}dO@`CW88hf5&Kn=JWh0x3VZ9FMq#5{S>&00LLVYwG1cUjqAZS<8x&lHkj~ zYWc^kx=eQ&Sf7H1Do9{_gm#6a<+gT6vB~9>5TQdz?cYJs|9SoQS%8&?MyPsusxU<* zza>B89aUy#=s0%tEUK!``QW*KHgwWdreN&|oXbmR2GWcn3oJIN^ls+QMZzjkw|6Lk z5_b6L-;PAHL)@zo9f6llKpNpWQm=`^)1E=}TVDEp>`e(~1^F3c=Pf^ZKNyJ$`Vl5C z{$AOyMYYBK)($rHlj^9&#Al3t{GQ2r4>U$~77V3%A&_7?e)<5X)2gZ`yUdB(OrOk) z9^Cw-VfmH@=CF=9MtVQjU3y0)y?f}Y>DV&6*6}8SzcV7vrn!Rmhx z;ql=hD+b}2eNb5cl{(|<64CSN!71Bk-yjFkhJKa%CZ5Z<=T6;%K?vifd2(}<%Yaz! zQ|WN{zPnBrMTIt0WXo)$jra zOrB85{rKNYU2n8qdX+1DHuq>hvw4zcqJD?V`xfm9vFEEf$Xsf7;_P|$1{XGMlj|*F z9w|M$VR1##+o409W{TWOpz3;KgzSeB&}7!yqj{#!2dFaVX?Mo44vDw!jsSZB=$KXO zxB#{i^8jMQ%5LIs=lRjdyW*rMcK1(2&2o9^uqPgt{HJ;T=NSmqd zi%;iODo)uLTiz0jhgWFYaf*`k4OZD1a~%)q4P=SEYfLj9>9k0~Xp_trrH%~KPPAsx zZF(#L$N|72bSQ7_Jug+N&yv=w1NJ1yQU>-XEmz7ih2F`lP^nWEf4@dqDImoPa=?m6 z2B?~A-`ONV;=sbhm9o+xPfEAY;lO`K6hfOkx4`OKiD?$2RnmQD0gw@S!S$@zR!#|( z8$=?enw7&)sRlyj%D;xnxTn4hN2H_h=FmY2)OrM{idd1Jue~*8E9>%|@yLyim85j&YaA1w! zD+u8=Lb#Hclzd`brx`9%Fn?H0Zq4@ncwsWGF9Fvx=q0w;XcdUco;@TA>edc!5-Qqh zuukf^>CY-GLfPmApF^TxiL*Pq=ka;pDiccEAtVBLf|dV3RsZw+za1m~ISb*1Nqjf` zRO2){^8Tt3s4YjR5;JWlwr|>n$^(onBP%r!y4~Zw@xY*0*C07=p)wC!++-mzD^|ZR zRbu{#;1wF^`eW||;Z8p56DI8PUg(5ar_>$<%mB(KZ6_0E z+(mTr7pe8XqDJ3(X0s{OBD{$k=^&K?J)TsGH=cDdD*OJ|aXZgH_y?*sT+m;jqo$Fj zyuz8}e1d-?np;6oI&{WKbW*4215Zs0-)kI>JMt5U&l^QK7dU#d)Mo9-ENsNnl=mh< zWFtM-_Q02xBA@$2N4u9e-eBqadf=xe=U9#${cX`5RTfcG%|bFZ8h&;XjV`E59Hz1v zp;*Z;#vj!rLSpkxAw)aT0_mlS9@kB;#u=#E(xEKw8GtKp1Qe8(S2H!0@Wd`MHy8Yo z_~*wRULPjlFjU6vcmH()MXBY0N2^OX)Gnp6;>)q94wfLbi(5dK&yurJL&VhTNgq7TVY&y>-kIyZ6!}qlFYfs6IVMND zT$9MMWt|FMy>|asFe{f2&UZ&vjw3ultmvU7Zz!Ec7=fkeGt$xBT0^2?%&pK4(m7?V z&NSX6>ti;wbgj<`w2PQGsHq%iiG-JP(=EiKo-4NNWv4Ej`}2?6bEfC7p(9>@I}L-} z(rNQKC^*;pr1?qqdrNqg!4#@PDQ)T-cQ=5Q-{OdK)?HymtHBy+rLW2#b`=!34qW11j({Q>J$&G}iKGjJ2q#PR9#s$sV z$vAC`Tzl)gnFO@YBe~7csfcQu*r`Zvb4$9CSblOhB?^G7_}C>dRo9_utU-&V^Vv|d zTL-<60)D1LSXv64S9q^dD@DOU#wLHE?m9&I4KuY3Q(jNs^k2m-=ERS;|Hbft_-K-r z+DtubK&@(MqmJg_gs!b9YH0hb_HBr6WJF914oWB3nXVi5s2ByWF&rCO;Qx^T00Jh` zP!rN;*SzpoD{7`=9?0^#{56$iUrJh4)gFd7uyw&hdR4-k2svCIQp z9h^SCEvs-pW|sGM!wWNZgc9#Sk%&`fBjc8xPd{!%DY>__#*gVyMR7@>ysw6A+{vf+ z0)j6d*E{-?;kY5N$eS+zReolrbL1ZS;a+|7&!Fmmp8ua^`SCah2w5N!C|3M(O$hNL zz}?OI_yoUZxt#y*em~QA5&a;HcSWrefg@y+BFJAT3|`Yz35=m>M_RMM@{aEyZB$61 z&FT7g)9v>8Q(gBIp^qJ+$*lw#z!c)Gy@^*1k*t(DgM1{;T<)uXjeFLmy`t}z70I5F z3}^dAWO8ET=ubbu+JK5CjK8#{J_u8Q1USM;o2T^-lH}wjkTV%h_|eQBFum+4a5XzE22$u@Ep)4)%Z4m~~Q<==R#tVsp(ancB#@UTUR z2=VjT`SXs?G;}H!Qo2d%ijrw`dO9nke|k?&xW?@!)aRj6mYO?cT;%8Ff*+*MZetmD zI{7Ip=IgrE>7;z}fi$*lmY{SM!PKlLE6*yptDxh4tJhaxFB7F$LH=Nd^Kyq1^l9)l zcu8E0z1+m=PyZc5Yv;ufFspcD>xTw+L{V8%vinUBQog&dw`74wo^6EQNA%rm-P5Lm zR5rmUTeU~0a)Dtdre9Q`l@gV87y=h3FCsy(Ysfr2A~I9G4+5*7JIigCQ4OlSwa%u9 zk)7>RdOJ7xSbJV~+_02&JM$*J&bVu{*mMZR7b&bTW6vq`Zlu61cu>}qOU?7c7g0k{ zUv}y5PbN2h$Aef0Apu%!91#RNS>AHFXV8N)tWZ_1^UzMNxcv7svYg%^AbX z!6(@G{;k~w)D6&OPcc#fZu@qd+)h7Nof&$YioNcH=*Ed;@ycDS&Y^ z{Lkb6)fpV&e2}ewBsTD*;_5sMkE5T8O+moexfWkHV}jgCKcbDCMlBKJUPoyG+c$QiFhSY2hW)37&QYX8dm&%YRWYCpeX;QS5T~Kpx6jqMsz! zWm1*Nmf1Juv{Kz^sdkLaW41%;o@!1vjiy~)>$IcF-+beuiIB%BN@N340HM(iDbQzG zt;e{wr%jF54?~6AxgE7}UU&Ar!*(VqllEG{fO4n9CEGYJ=?WodJ}}uC(rsHcrR6V= zn&8w~In|78Y*csi-KCdipTYHiKwa!Kra3owqe;x1Z($tq63eYOIgK0e?0UU&!C zo7hmGkRbG_MPgv``A(hYO6k#{&U4Y|nB@g&`1l{zb&fOX=Xu(yY^fRvlAG0TPGIwC z_U7P(O$!0Z&NCy%b>rgzrRs(o#_6-&{o7mQxoC|{>G-nlEXhvkN##DLwe>5Yis|JK zm`QYGE+k69!?b=s1)sx5P(J9`|l`c{-^i(KlKbykBa|@dMIB!aUd}Z z$GefZ38%sLj~aH|l=OwO!uMqc?_Z*LV1Ac7DgL`)KdM2jH0`AVWkM2|Y(L<%bDn$7xvz8XANSt#+-I|2`@?)@?6p5@t^Ho_wYJlV(|OPZ z9Sv;_5Dg6t=x^W)bczL8sQWoNfIxbBpxYo2h!I3jO9P?@u4sU+LreQl1qG8vvhQ{^bBVi z82)rdCT1o^#&e7e4Ch$Ront-^GzKPCHkR|Of3E+0$e*|Wc^B|~o{@p^&mI4{cKQv( z&UmJp9z;uX19XO+hL)Y?v;zbNW=apN#Gl3ZZ;j>*Egk(?U`pqhfg5Tr0MnR~CKz}fM8{6gaa~I7>_vlT3^&|4@4imVW)!$z(aL2wgcFp0?h(Rt?h^N99$ulF z!XmeB%gEl7lUGoD@K9YtQ%hUN$k@cx?5Vkht)0Dt;|nKePcLsDUqAnV&^KY>5s^{R zNy+ctr=+HRNYBa5%P%PWTvS|HRb5kCSKrXs*51+C)&0GvcX;I2=-Bwg

&cacOyF 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

DJ@AMLA)Ex)w{-fIgL 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 Date: Tue, 21 Mar 2023 16:40:54 +0000 Subject: [PATCH 12/42] Use the beta channel phpcodesniffer - needed to enforce PSR12, see: https://docs.codeclimate.com/docs/phpcodesniffer#standard --- .codeclimate.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.codeclimate.yml b/.codeclimate.yml index c50476375..c2a5e1312 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -2,6 +2,9 @@ version: "2" plugins: phpcodesniffer: enabled: true + # Need the beta channel to enforce PSR12, + # see https://docs.codeclimate.com/docs/phpcodesniffer#standard. + channel: "beta" config: standard: "phpcs.xml" phpmd: From a8970e191592b75c07cee32da997afdf4ea89866 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Mon, 14 Feb 2022 16:41:12 +0000 Subject: [PATCH 13/42] Improved messages and use common code. --- htdocs/web_portal/GOCDB_monitor/check.php | 41 ++++------------ .../GOCDB_monitor/ops_monitor_check.php | 47 ++++--------------- htdocs/web_portal/GOCDB_monitor/tests.php | 44 ++++++++++++++++- 3 files changed, 60 insertions(+), 72 deletions(-) diff --git a/htdocs/web_portal/GOCDB_monitor/check.php b/htdocs/web_portal/GOCDB_monitor/check.php index 45dcd8465..c89df5f53 100644 --- a/htdocs/web_portal/GOCDB_monitor/check.php +++ b/htdocs/web_portal/GOCDB_monitor/check.php @@ -1,42 +1,17 @@ setLocalInfoOverride($_SERVER['SERVER_NAME']); +$errorCount = run_tests($message); -$res[1] = test_db_connection(); -$res[2] = test_url( - \Factory::getConfigService()->GetPiUrl(). - get_testPiMethod() - ); -$res[3] = test_url( - \Factory::getConfigService()->GetPortalURL() - ); - - -$counts=array( "ok" => 0, - "warn" => 0, - "error" => 0 - ); - -foreach ($res as $r){ - $counts[$r["status"]]++; +if ($errorCount != 0) { + echo("One or more errors have been detected while checking GOCDB services - " . + $message . + ". See https://goc.egi.eu/portal/GOCDB_monitor/ to find out more\n"); + exit(2); // return Nagios error code for CRITICAL } -if ($counts["error"] != 0) { - $url = \Factory::getConfigService()->GetPortalURL() . "/GOCDB_monitor/"; +echo("All GOCDB tests are looking good\n"); - echo("An error has been detected while checking GOCDB services. ". - "Please check $url to find out more\n"); - exit(2); // return Nagios error code for CRITICAL -} -else if ($counts["warn"] != 0) { - echo("At least one of GOCDB tests shows a warning. It is safe to ignore it anyway\n"); - exit(0); // we don't want notifications if there is just a warning -} -else { - echo("All GOCDB tests are looking good\n"); - exit(0); -} +exit(0); ?> diff --git a/htdocs/web_portal/GOCDB_monitor/ops_monitor_check.php b/htdocs/web_portal/GOCDB_monitor/ops_monitor_check.php index c9353bd6e..cf2e4124a 100644 --- a/htdocs/web_portal/GOCDB_monitor/ops_monitor_check.php +++ b/htdocs/web_portal/GOCDB_monitor/ops_monitor_check.php @@ -1,49 +1,22 @@ GetPiUrl().get_testPiMethod()); - -$res[3] = test_url(Factory::getConfigService()->GetPortalURL()); - -$counts=array( - "ok" => 0, - "warn" => 0, - "error" => 0 -); - -foreach ($res as $r){ - $counts[$r["status"]]++; -} -/* -If there is an error, counts["error"] is incremented, e.g. -Array -( - [ok] => 0 - [warn] => 0 - [error] => 1 -) - */ - - /* If someone wants to test the failure, they can fake one using * the fake_failure parameter */ -if(isset($_REQUEST['fake_failure'])) { - header("HTTP/1.0 500"); - echo("GOCDB Web Portal is unable to connect to the GOCDB back end database\n"); - die(); +if (isset($_REQUEST['fake_failure'])) { + $message = 'Fake failure'; + $errorCount = 1; +} else { + $errorCount = run_tests($message); } -if ($counts["error"] != 0) { +if ($errorCount != 0) { header("HTTP/1.0 500"); - echo("GOCDB Web Portal is unable to connect to the GOCDB back end database\n"); - die(); -} -else { - echo("All GOCDB tests are looking good\n"); + echo($message."\n"); die(); } +echo("All GOCDB tests are looking good\n"); +die(); + ?> diff --git a/htdocs/web_portal/GOCDB_monitor/tests.php b/htdocs/web_portal/GOCDB_monitor/tests.php index 033e90b5f..d46f0c9b7 100644 --- a/htdocs/web_portal/GOCDB_monitor/tests.php +++ b/htdocs/web_portal/GOCDB_monitor/tests.php @@ -40,6 +40,7 @@ // Test the connection to the database using Doctrine function test_db_connection(){ + $retval = []; try { $entityManager = Factory::getNewEntityManager(); $entityManager->getConnection()->connect(); @@ -55,6 +56,7 @@ function test_db_connection(){ } function test_url($url) { + $retval = []; try{ get_https2($url); $retval["status"] = "ok"; @@ -96,8 +98,8 @@ function get_https2($url){ CURLOPT_CAPATH => '/etc/grid-security/certificates/' ); if( defined('SERVER_SSLCERT') && defined('SERVER_SSLKEY') ){ - $curloptions[CURLOPT_SSLCERT] = SERVER_SSLCERT; - $curloptions[CURLOPT_SSLKEY] = SERVER_SSLKEY; + $curloptions[CURLOPT_SSLCERT] = constant("SERVER_SSLCERT"); + $curloptions[CURLOPT_SSLKEY] = constant("SERVER_SSLKEY"); } $handle = curl_init(); @@ -126,5 +128,43 @@ function get_https2($url){ function get_testPiMethod () { return "/public/?method=get_site_list"; } +/** + * Run the standard 3 GOCDB monitoring tests + * + * @param string &$message Returned error messages or '' + * @return int Count of failed tests + */ +function run_tests (&$message) { + + $errorCount = 0; + $messages = []; + + $res = test_db_connection(); + + if ($res["status"] != "ok") { + $errorCount++; + $messages[] = "Database connection test failed: " . $res["message"]; + } + + $res= test_url(Factory::getConfigService()->GetPiUrl(). + get_testPiMethod() + ); + + if ($res["status"] != "ok") { + $errorCount++; + $messages[] = "PI interface test failed: " . $res["message"]; + } + + $res = test_url(Factory::getConfigService()->GetPortalURL()); + + if ($res["status"] != "ok") { + $errorCount++; + $messages[] = "Server base URL test failed: " . $res["message"]; + } + + $message = join(" | ", $messages); + + return $errorCount; +} ?> From af73012ff412f697a997eee89ab39596f1c627b5 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Thu, 9 Mar 2023 09:27:43 +0000 Subject: [PATCH 14/42] Apply code standards --- htdocs/web_portal/GOCDB_monitor/check.php | 7 +- .../GOCDB_monitor/ops_monitor_check.php | 11 ++- htdocs/web_portal/GOCDB_monitor/tests.php | 76 +++++++++++-------- 3 files changed, 57 insertions(+), 37 deletions(-) diff --git a/htdocs/web_portal/GOCDB_monitor/check.php b/htdocs/web_portal/GOCDB_monitor/check.php index c89df5f53..638b4af1f 100644 --- a/htdocs/web_portal/GOCDB_monitor/check.php +++ b/htdocs/web_portal/GOCDB_monitor/check.php @@ -1,4 +1,9 @@ diff --git a/htdocs/web_portal/GOCDB_monitor/ops_monitor_check.php b/htdocs/web_portal/GOCDB_monitor/ops_monitor_check.php index cf2e4124a..3c7c38b86 100644 --- a/htdocs/web_portal/GOCDB_monitor/ops_monitor_check.php +++ b/htdocs/web_portal/GOCDB_monitor/ops_monitor_check.php @@ -1,4 +1,11 @@ diff --git a/htdocs/web_portal/GOCDB_monitor/tests.php b/htdocs/web_portal/GOCDB_monitor/tests.php index d46f0c9b7..ffb2c3aec 100644 --- a/htdocs/web_portal/GOCDB_monitor/tests.php +++ b/htdocs/web_portal/GOCDB_monitor/tests.php @@ -1,4 +1,9 @@ setLocalInfoOverride($_SERVER['SERVER_NAME']); $test_statuses = array( - "GOCDB5 DB connection" => "unknown", - "GOCDBPI_v5 availability" => "unknown", - "GOCDB5 central portal availability" => "unknown" + "GOCDB5 DB connection" => "unknown", + "GOCDBPI_v5 availability" => "unknown", + "GOCDB5 central portal availability" => "unknown" ); $test_desc = array( - "GOCDB5 DB connection" => "Connect to GOCDB5 (RAL/master instance) from this machine using EntityManager->getConnection()->connect()", - "GOCDBPI_v5 availability" => "Retrieve https://goc.egi.eu/gocdbpi/?method=get_site_list&sitename=RAL-LCG2 using PHP CURL", - "GOCDB5 central portal availability" => "N/A", + "GOCDB5 DB connection" => + "Connect to GOCDB5 (RAL/master instance) from this machine using EntityManager->getConnection()->connect()", + "GOCDBPI_v5 availability" => + "Retrieve https://goc.egi.eu/gocdbpi/?method=get_site_list&sitename=RAL-LCG2 using PHP CURL", + "GOCDB5 central portal availability" => "N/A", ); $test_doc = array( - "GOCDB5 DB connection" => "documentation/recipe", - "GOCDBPI_v5 availability" => "documentation/recipe", - "GOCDB5 central portal availability" => "documentation/recipe" + "GOCDB5 DB connection" => + "documentation/recipe", + "GOCDBPI_v5 availability" => + "documentation/recipe", + "GOCDB5 central portal availability" => + "documentation/recipe" ); - $test_messages = array( - "GOCDB5 DB connection" => "no information", - "GOCDBPI_v5 availability" => "no information", - "GOCDB5 central portal availability" => "no information" + "GOCDB5 DB connection" => "no information", + "GOCDBPI_v5 availability" => "no information", + "GOCDB5 central portal availability" => "no information" ); $disp = array( @@ -39,7 +51,8 @@ ); // Test the connection to the database using Doctrine -function test_db_connection(){ +function test_db_connection() +{ $retval = []; try { $entityManager = Factory::getNewEntityManager(); @@ -55,13 +68,14 @@ function test_db_connection(){ return $retval; } -function test_url($url) { +function test_url($url) +{ $retval = []; - try{ + try { get_https2($url); $retval["status"] = "ok"; $retval["message"] = "everything is well"; - } catch (Exception $exception){ + } catch (Exception $exception) { $message = $exception->getMessage(); $retval["status"] = "error"; $retval["message"] = "$message"; @@ -69,8 +83,8 @@ function test_url($url) { return $retval; } -function get_https2($url){ - +function get_https2($url) +{ $curloptions = array ( // In addition to transfer failures, check inside the HTTP response for an error // response code (HTTP > 400) @@ -97,9 +111,9 @@ function get_https2($url){ CURLOPT_RETURNTRANSFER => true, CURLOPT_CAPATH => '/etc/grid-security/certificates/' ); - if( defined('SERVER_SSLCERT') && defined('SERVER_SSLKEY') ){ - $curloptions[CURLOPT_SSLCERT] = constant("SERVER_SSLCERT"); - $curloptions[CURLOPT_SSLKEY] = constant("SERVER_SSLKEY"); + if (defined('SERVER_SSLCERT') && defined('SERVER_SSLKEY')) { + $curloptions[CURLOPT_SSLCERT] = constant("SERVER_SSLCERT"); + $curloptions[CURLOPT_SSLKEY] = constant("SERVER_SSLKEY"); } $handle = curl_init(); @@ -114,18 +128,19 @@ function get_https2($url){ // See man page for curl --fail option throw new Exception("http response code: $httpResponse"); } - throw new Exception("curl error:".curl_error($handle)); + throw new Exception("curl error:" . curl_error($handle)); } curl_close($handle); if ($return == false) { - throw new Exception("no result returned. curl says: ".curl_getinfo($handle)); + throw new Exception("no result returned. curl says: " . curl_getinfo($handle)); } return $return; } -function get_testPiMethod () { +function get_testPiMethod() +{ return "/public/?method=get_site_list"; } /** @@ -134,9 +149,8 @@ function get_testPiMethod () { * @param string &$message Returned error messages or '' * @return int Count of failed tests */ -function run_tests (&$message) { - - +function run_tests(&$message) +{ $errorCount = 0; $messages = []; @@ -147,9 +161,8 @@ function run_tests (&$message) { $messages[] = "Database connection test failed: " . $res["message"]; } - $res= test_url(Factory::getConfigService()->GetPiUrl(). - get_testPiMethod() - ); + $res = test_url(Factory::getConfigService()->GetPiUrl() . + get_testPiMethod()); if ($res["status"] != "ok") { $errorCount++; @@ -167,4 +180,3 @@ function run_tests (&$message) { return $errorCount; } -?> From 30d694e41fdaebfd3e8479af8f18b69ddf32e7a6 Mon Sep 17 00:00:00 2001 From: gregcorbett Date: Thu, 23 Mar 2023 14:51:36 +0000 Subject: [PATCH 15/42] Remove trailing whitespace --- htdocs/web_portal/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/web_portal/index.php b/htdocs/web_portal/index.php index 2e21d49f6..6947b333c 100644 --- a/htdocs/web_portal/index.php +++ b/htdocs/web_portal/index.php @@ -76,7 +76,7 @@ function rejectIfNotAuthenticated($message = null){ //rejectIfNotAuthenticated(); // Initialise the configuration service with the host url of the incoming request. -// Allows the overriding of configuration values. Do not use 'new' to create a new +// Allows the overriding of configuration values. Do not use 'new' to create a new // instance after this. \Factory::getConfigService()->setLocalInfoOverride($_SERVER['SERVER_NAME']); From cd63b52d2b424913455f36a43929f853848a530e Mon Sep 17 00:00:00 2001 From: Ian Date: Tue, 14 Jan 2020 17:41:34 +0000 Subject: [PATCH 16/42] Allow production service type monitoring exception Add monitoring-exception-allowed flag to service type table, associated GUI changes and cleanups. Add instance count column to service type overview table. --- config/gocdb_schema.xml | 28 +- htdocs/PI/write/PIWriteRequest.php | 2 +- .../controllers/admin/add_service_type.php | 1 + .../controllers/admin/edit_service_type.php | 4 +- .../controllers/admin/view_service_type.php | 1 + htdocs/web_portal/controllers/utils.php | 5 + .../views/admin/add_service_type.php | 7 +- .../views/admin/added_service_type.php | 7 +- .../views/admin/edit_service_type.php | 10 +- .../views/admin/edited_service_type.php | 12 +- .../views/admin/view_service_type.php | 5 +- .../views/admin/view_service_types.php | 5 + .../views/fragments/serviceTypeInfo.php | 23 + lib/Doctrine/entities/ServiceType.php | 25 + lib/Gocdb_Services/ServiceService.php | 59 ++- lib/Gocdb_Services/ServiceType.php | 4 + tests/DoctrineTestSuite1.php | 9 +- tests/doctrine/ServiceTypeTest.php | 134 ++++++ tests/doctrine/TestUtil.php | 4 +- .../lib/Gocdb_Services/ServiceServiceTest.php | 450 +++++++++++++----- .../Gocdb_Services/ServiceTypeServiceTest.php | 234 +++++++++ tests/writeAPI/abstractClass.php | 2 +- 22 files changed, 853 insertions(+), 178 deletions(-) create mode 100644 htdocs/web_portal/views/fragments/serviceTypeInfo.php create mode 100644 tests/doctrine/ServiceTypeTest.php create mode 100644 tests/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php diff --git a/config/gocdb_schema.xml b/config/gocdb_schema.xml index 414320453..8320bd4c1 100644 --- a/config/gocdb_schema.xml +++ b/config/gocdb_schema.xml @@ -415,18 +415,22 @@ - service_type - - NAME - 255 - /^([[:alpha:]]|[[:digit:]]|[\._-])*$/ - - - DESCRIPTION - 255 - - /^[^`'\";<>]+$/ - + service_type + + NAME + 255 + /^([[:alpha:]]|[[:digit:]]|[\._-])*$/ + + + DESCRIPTION + 255 + + /^[^`'\";<>]+$/ + + + ALLOWMONITORINGEXCEPTION + boolean + diff --git a/htdocs/PI/write/PIWriteRequest.php b/htdocs/PI/write/PIWriteRequest.php index 0c2c140cd..84a33ab38 100644 --- a/htdocs/PI/write/PIWriteRequest.php +++ b/htdocs/PI/write/PIWriteRequest.php @@ -975,7 +975,7 @@ private function updateServicePropPut (\Service $service, $servicePropName, $ser //Validate production/monitored flag combination try { - $this->serviceService->validateProductionMonitoredCombination($service->getServiceType()->getName(), $production, $monitored); + $this->serviceService->validateProductionMonitoredCombination($service->getServiceType(), $production, $monitored); } catch(\Exception $e){ $this->exceptionWithResponseCode(403, $e->getMessage()); } diff --git a/htdocs/web_portal/controllers/admin/add_service_type.php b/htdocs/web_portal/controllers/admin/add_service_type.php index 66dcd51df..4714937ba 100644 --- a/htdocs/web_portal/controllers/admin/add_service_type.php +++ b/htdocs/web_portal/controllers/admin/add_service_type.php @@ -73,6 +73,7 @@ function submit() { $serviceType = \Factory::getServiceTypeService()->addServiceType($newValues, $user); $params = array('Name' => $serviceType->getName(), 'Description'=> $serviceType->getDescription(), + 'AllowMonitoringException' => $serviceType->getAllowMonitoringException(), 'ID'=> $serviceType->getId()); show_view("admin/added_service_type.php", $params, "Successfuly added new service type"); } catch (Exception $e) { diff --git a/htdocs/web_portal/controllers/admin/edit_service_type.php b/htdocs/web_portal/controllers/admin/edit_service_type.php index 6c65a15c6..660f536c9 100644 --- a/htdocs/web_portal/controllers/admin/edit_service_type.php +++ b/htdocs/web_portal/controllers/admin/edit_service_type.php @@ -56,7 +56,8 @@ function draw() { $serviceType = \Factory::getServiceTypeService()->getServiceType($_REQUEST['id']); $params = array('Name' => $serviceType->getName(),'ID' => $serviceType->getId(), - 'Description' => $serviceType->getDescription()); + 'Description' => $serviceType->getDescription(), + 'AllowMonitoringException' => $serviceType->getAllowMonitoringException()); show_view("admin/edit_service_type.php", $params, "Edit " . $serviceType->getName()); } @@ -85,6 +86,7 @@ function submit() { $alteredServiceType =$serv->editServiceType($unalteredServiceType, $newValues, $user); $params = array('Name' => $alteredServiceType->getName(), 'Description'=> $alteredServiceType->getDescription(), + 'AllowMonitoringException' => $alteredServiceType->getAllowMonitoringException(), 'ID'=> $alteredServiceType->getId()); show_view("admin/edited_service_type.php", $params); } catch (Exception $e) { diff --git a/htdocs/web_portal/controllers/admin/view_service_type.php b/htdocs/web_portal/controllers/admin/view_service_type.php index 0acca32f7..9b27292c6 100644 --- a/htdocs/web_portal/controllers/admin/view_service_type.php +++ b/htdocs/web_portal/controllers/admin/view_service_type.php @@ -37,6 +37,7 @@ function view_service_type(){ $params['Name'] = $serviceType -> getName(); $params['Description'] = $serviceType -> getDescription(); $params['ID']= $serviceType ->getId(); + $params['AllowMonitoringException'] = $serviceType->getAllowMonitoringException(); $params['Services'] = $serv ->getServices($params['ID']); $params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user); diff --git a/htdocs/web_portal/controllers/utils.php b/htdocs/web_portal/controllers/utils.php index 3a6d87ed1..aff5b46a2 100644 --- a/htdocs/web_portal/controllers/utils.php +++ b/htdocs/web_portal/controllers/utils.php @@ -676,6 +676,11 @@ function getScopeDataFromWeb() { function getSTDataFromWeb() { $serviceTypeData ['Name'] = trim($_REQUEST ['Name']); $serviceTypeData ['Description'] = trim($_REQUEST ['Description']); + if(isset($_REQUEST['AllowMonitoringException'])) { + $serviceTypeData ['AllowMonitoringException'] = ($_REQUEST ['AllowMonitoringException'] == "checked"); + } else { + $serviceTypeData ['AllowMonitoringException'] = FALSE; + } if (array_key_exists('ID', $_REQUEST)){ $serviceTypeData ['ID'] = $_REQUEST ['ID']; } diff --git a/htdocs/web_portal/views/admin/add_service_type.php b/htdocs/web_portal/views/admin/add_service_type.php index 173259ca0..b29e71f03 100644 --- a/htdocs/web_portal/views/admin/add_service_type.php +++ b/htdocs/web_portal/views/admin/add_service_type.php @@ -6,7 +6,12 @@ Description - + + + +
diff --git a/htdocs/web_portal/views/admin/added_service_type.php b/htdocs/web_portal/views/admin/added_service_type.php index e38caf4b3..9bd28d790 100644 --- a/htdocs/web_portal/views/admin/added_service_type.php +++ b/htdocs/web_portal/views/admin/added_service_type.php @@ -1,10 +1,9 @@

Success


+

New service type created -

+ + - has been successfully added as a new service - type with the following description: "". -
-
Click here to view the service type. diff --git a/htdocs/web_portal/views/admin/edit_service_type.php b/htdocs/web_portal/views/admin/edit_service_type.php index 709c4c29f..4afea802f 100644 --- a/htdocs/web_portal/views/admin/edit_service_type.php +++ b/htdocs/web_portal/views/admin/edit_service_type.php @@ -7,7 +7,15 @@ Description -
+ + + /> + + +
diff --git a/htdocs/web_portal/views/admin/edited_service_type.php b/htdocs/web_portal/views/admin/edited_service_type.php index 30733251c..a7c4af998 100644 --- a/htdocs/web_portal/views/admin/edited_service_type.php +++ b/htdocs/web_portal/views/admin/edited_service_type.php @@ -1,13 +1,11 @@

Success


-

- has been successfully edited as follows: -

-

- Name: -
- Description: +

+ Service Type properties have been successfully edited to -

+ + +

Click here to edit the service type again. diff --git a/htdocs/web_portal/views/admin/view_service_type.php b/htdocs/web_portal/views/admin/view_service_type.php index 12b4f2c0f..61ebf80ca 100644 --- a/htdocs/web_portal/views/admin/view_service_type.php +++ b/htdocs/web_portal/views/admin/view_service_type.php @@ -1,6 +1,7 @@

Service Type:

- + +
+
diff --git a/htdocs/web_portal/views/admin/view_service_types.php b/htdocs/web_portal/views/admin/view_service_types.php index c7100d962..a3caef7f1 100644 --- a/htdocs/web_portal/views/admin/view_service_types.php +++ b/htdocs/web_portal/views/admin/view_service_types.php @@ -30,6 +30,7 @@ + + + diff --git a/htdocs/web_portal/views/fragments/serviceTypeInfo.php b/htdocs/web_portal/views/fragments/serviceTypeInfo.php new file mode 100644 index 000000000..dad7e47f4 --- /dev/null +++ b/htdocs/web_portal/views/fragments/serviceTypeInfo.php @@ -0,0 +1,23 @@ +
NameServices Description
+ getServices())); ?> + getDescription()); ?>
+ + + + + + + + + + + + +
Name:
Description:
Monitoring: + +
+
diff --git a/lib/Doctrine/entities/ServiceType.php b/lib/Doctrine/entities/ServiceType.php index 2e3d231c1..451512782 100644 --- a/lib/Doctrine/entities/ServiceType.php +++ b/lib/Doctrine/entities/ServiceType.php @@ -38,8 +38,16 @@ class ServiceType { /** @OneToMany(targetEntity="Service", mappedBy="serviceType") */ protected $services = null; + /** + * An instance of a Service of this ServiceType may + * unmonitored while in production. + * @Column(type="boolean", options={"default":FALSE}) + */ + protected $allowMonitoringException; + public function __construct() { $this->services = new ArrayCollection(); + $this->allowMonitoringException = FALSE; } /** @@ -100,6 +108,23 @@ public function addService($service) { $service->setServiceType($this); } + /** + * Add an exception where an instance of this ServiceType is allowed + * to be unmonitored when in production with a specific Scope. + * Return value is the existing boolean state + */ + public function setAllowMonitoringException($state) { + $oldState = $this->getAllowMonitoringException(); + $this->allowMonitoringException = $state; + return $oldState; + } + /** + * Check if a monitoring exception is allowed within the given scope. + */ + public function getAllowMonitoringException() { + return $this->allowMonitoringException; + } + /** * Gets the name of this service type. * @return string diff --git a/lib/Gocdb_Services/ServiceService.php b/lib/Gocdb_Services/ServiceService.php index 52f1029cf..936f71848 100644 --- a/lib/Gocdb_Services/ServiceService.php +++ b/lib/Gocdb_Services/ServiceService.php @@ -470,19 +470,23 @@ public function getServiceTypes() { * is invalid. The \Exception's message will contain a human readable error * message. */ - public function validateProductionMonitoredCombination($serviceTypeName, $production, $monitored) { + public function validateProductionMonitoredCombination($serviceType, $production, $monitored) { // Service types that are exceptions to the // 'production => monitored' rule. $ruleExceptions = array('VOMS', 'emi.ARGUS', 'org.squid-cache.Squid'); + $serviceTypeName = $serviceType->getName(); // Check that the service type is not an exception to the // 'production => monitored'. - if (!in_array ($serviceTypeName, $ruleExceptions)) { - if ($production && !$monitored) { + if ($production && !$monitored) { + // Legacy hard-coded rules (as of Jan-20) should be removed + if (!in_array ($serviceTypeName, $ruleExceptions) and + !$serviceType->getAllowMonitoringException()) { throw new \Exception( - "For the '".$serviceTypeName."' service type, if the ". - "Production flag is set to True, the Monitored flag must ". - "also be True."); + "For the '".$serviceTypeName."' service type, if a ". + "service is in Production it must be Monitored. ". + "Contact GOCDB administrators if required to discuss ". + "changing this requirement."); } } } @@ -535,12 +539,6 @@ public function editService(\Service $se, $newValues, \User $user = null) { $this->validate ( $newValues ['SE'], 'service' ); $this->uniqueCheck ( $newValues ['SE'] ['HOSTNAME'], $st, $se->getParentSite () ); - // validate production/monitored combination - $this->validateProductionMonitoredCombination( - $this->getServiceType($newValues['serviceType']), - $this->ptlTexToBool($newValues['PRODUCTION_LEVEL']), - $this->ptlTexToBool($newValues['IS_MONITORED']) - ); // EDIT SCOPE TAGS: // collate selected scopeIds (reserved and non-reserved) @@ -578,9 +576,20 @@ public function editService(\Service $se, $newValues, \User $user = null) { } // check there are the required number of optional scopes specified - $this->checkNumberOfScopes ( $this->scopeService->getScopesFilterByParams ( array ( - 'excludeReserved' => true - ), $selectedScopesToApply ) ); + + $this->checkNumberOfScopes( + $this->scopeService->getScopesFilterByParams( + array('excludeReserved' => true), + $selectedScopesToApply + ) + ); + + // validate production/monitored combination + $this->validateProductionMonitoredCombination( + $st, + $this->ptlTexToBool($newValues['PRODUCTION_LEVEL']), + $this->ptlTexToBool($newValues['IS_MONITORED']) + ); $updatedServiceValues =array(); $updatedServiceValues['hostname'] = $newValues ['SE'] ['HOSTNAME']; @@ -595,7 +604,6 @@ public function editService(\Service $se, $newValues, \User $user = null) { $updatedServiceValues['monitored'] = $this->ptlTexToBool($newValues['IS_MONITORED']); $updatedServiceValues['beta'] = $this->ptlTexToBool($newValues['BETA']); $updatedServiceValues['production'] = $this->ptlTexToBool($newValues['PRODUCTION_LEVEL']); - $updatedServiceValues['notify']; if (!isset($newValues['NOTIFY'])){ $updatedServiceValues['notify'] = false; @@ -653,18 +661,17 @@ public function editServiceApi(\Service $service, $hostname, $description, $url, 'notify'=>$notify, ); - $this->validateProductionMonitoredCombination($service->getServiceType()->getName(), $production, $monitored); + $this->validateProductionMonitoredCombination($service->getServiceType(), $production, $monitored); $this->editServiceLogic($service, $scopes, $sType, $updatedServiceValues); } - /** * The logic of editing a service, without the authorisation or validation. * Private function as there should always be authorisation anad validation * steps within the service before calling this function. * - * @param Service $service service to be updated + * @param \Service $service service to be updated * @param array $scopes scopes of service being updated * @param $sType service type of service * @param array $updatedServiceValues values being updated for $service. Should contain: @@ -804,13 +811,6 @@ public function addService($values, \User $user = null) { $this->validate ( $values ['SE'], 'service' ); $this->uniqueCheck ( $values ['SE'] ['HOSTNAME'], $st, $site ); - // validate production/monitored combination - $this->validateProductionMonitoredCombination( - $this->getServiceType($values['serviceType']), - $this->ptlTexToBool($values['PRODUCTION_LEVEL']), - $this->ptlTexToBool($values['IS_MONITORED']) - ); - // ADD SCOPE TAGS: // collate selected reserved and non-reserved scopeIds. // Note, Reserved scopes can be inherited from the parent Site. @@ -847,6 +847,13 @@ public function addService($values, \User $user = null) { // check there are the required number of OPTIONAL scopes specified $this->checkNumberOfScopes ( $values ['Scope_ids'] ); + // validate production/monitored combination + $this->validateProductionMonitoredCombination( + $st, + $this->ptlTexToBool($values['PRODUCTION_LEVEL']), + $this->ptlTexToBool($values['IS_MONITORED']) + ); + $this->em->getConnection ()->beginTransaction (); try { $se = new \Service (); diff --git a/lib/Gocdb_Services/ServiceType.php b/lib/Gocdb_Services/ServiceType.php index 48d56a48e..c70241ce0 100644 --- a/lib/Gocdb_Services/ServiceType.php +++ b/lib/Gocdb_Services/ServiceType.php @@ -143,6 +143,8 @@ public function addServiceType($values, \user $user = null){ $serviceType->setName($values['Name']); //set description $serviceType->setDescription($values['Description']); + //set flag for monitoring exception allowed + $serviceType->setAllowMonitoringException($values['AllowMonitoringException']); $this->em->persist($serviceType); $this->em->flush(); @@ -186,6 +188,8 @@ public function editServiceType(\ServiceType $serviceType, $newValues, \User $us $serviceType->setName($newValues['Name']); //set description $serviceType->setDescription($newValues['Description']); + //flag for monitoring exception allowed + $serviceType->setAllowMonitoringException($newValues['AllowMonitoringException']); $this->em->merge($serviceType); $this->em->flush(); diff --git a/tests/DoctrineTestSuite1.php b/tests/DoctrineTestSuite1.php index b112a27fb..d0c0f8a1c 100644 --- a/tests/DoctrineTestSuite1.php +++ b/tests/DoctrineTestSuite1.php @@ -19,9 +19,12 @@ require_once __DIR__ . '/doctrine/ExtensionsTest.php'; require_once __DIR__ . '/doctrine/Scoped_IPIQuery_Test1.php'; require_once __DIR__ . '/doctrine/DowntimeServiceEndpointTest1.php'; +require_once __DIR__ . '/doctrine/ServiceTypeTest.php'; require_once __DIR__ . '/unit/lib/Gocdb_Services/RoleActionAuthorisationServiceTest.php'; require_once __DIR__ . '/unit/lib/Gocdb_Services/RoleActionMappingServiceTest.php'; require_once __DIR__ . '/unit/lib/Gocdb_Services/ScopeServiceTest.php'; +require_once __DIR__ . '/unit/lib/Gocdb_Services/ServiceServiceTest.php'; +require_once __DIR__ . '/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php'; require_once __DIR__ . '/unit/lib/Gocdb_Services/UserServiceTest.php'; require_once __DIR__ . '/unit/lib/Gocdb_Services/SiteServiceTest.php'; require_once __DIR__ . '/unit/lib/Gocdb_Services/RoleServiceTest2.php'; @@ -31,8 +34,6 @@ require_once __DIR__ . '/writeAPI/endpointMethods.php'; require_once __DIR__ . '/resourcesTests/ManageAPICredentialsTest.php'; -require_once __DIR__ . '/unit/lib/Gocdb_Services/ServiceServiceTest.php'; - use PHPUnit_Framework_TestSuite; /** @@ -63,6 +64,9 @@ public static function suite() $suite->addTestSuite('RoleActionAuthorisationServiceTest'); $suite->addTestSuite('RoleActionMappingServiceTest'); $suite->addTestSuite('ScopeServiceTest'); + $suite->addTestSuite('ServiceServiceTest'); + $suite->addTestSuite('ServiceTypeTest'); + $suite->addTestSuite('ServiceTypeServiceTest'); $suite->addTestSuite('UserServiceTest'); $suite->addTestSuite('org\gocdb\tests\SiteServiceTest'); $suite->addTestSuite('RoleServiceTest2'); @@ -72,7 +76,6 @@ public static function suite() $suite->addTestSuite('WriteAPIendpointMethodsTests'); $suite->addTestSuite('org\gocdb\tests\ManageAPICredentialsTest'); - $suite->addTestSuite('ServiceServiceTest'); return $suite; } diff --git a/tests/doctrine/ServiceTypeTest.php b/tests/doctrine/ServiceTypeTest.php new file mode 100644 index 000000000..8ec733b20 --- /dev/null +++ b/tests/doctrine/ServiceTypeTest.php @@ -0,0 +1,134 @@ +createFlatXMLDataSet(dirname(__FILE__) . '/truncateDataTables.xml'); + } + + /** + * Overridden. + */ + protected function getSetUpOperation() { + // CLEAN_INSERT is default + //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); + //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); + //return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + // + // Issue a DELETE from which is more portable than a + // TRUNCATE table
(some DBs require high privileges for truncate statements + // and also do not allow truncates across tables with FK contstraints e.g. Oracle) + return PHPUnit_Extensions_Database_Operation_Factory::DELETE_ALL(); + } + + /** + * Overridden. + */ + protected function getTearDownOperation() { + // NONE is default + return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + } + + /** + * Sets up the fixture, e.g create a new entityManager for each test run + * This method is called before each test method is executed. + */ + protected function setUp() { + parent::setUp(); + $this->em = $this->createEntityManager(); + } + + /** + * @todo Still need to setup connection to different databases. + * @return EntityManager + */ + private function createEntityManager() { + require dirname(__FILE__) . '/bootstrap_doctrine.php'; + return $entityManager; + } + + /** + * Called after setUp() and before each test. Used for common assertions + * across all tests. + */ + protected function assertPreConditions() { + $con = $this->getConnection(); + $fixture = dirname(__FILE__) . '/truncateDataTables.xml'; + $tables = simplexml_load_file($fixture); + + foreach ($tables as $tableName) { + //print $tableName->getName() . "\n"; + $sql = "SELECT * FROM " . $tableName->getName(); + $result = $con->createQueryTable('results_table', $sql); + //echo 'row count: '.$result->getRowCount() ; + if ($result->getRowCount() != 0) + throw new RuntimeException("Invalid fixture. Table has rows: " . $tableName->getName()); + } + } + + /** + * Any function with test at the start of the name will execute with PHPUnit + */ + public function testServiceType() { + print __METHOD__ . "\n"; + + /** + * Check some logic related to monitoring exceptions in ServiceType entity + */ + + $type1 = TestUtil::createSampleServiceType( + 'this is a test serviceType', + 'type1'); + + // Default assumed to disallow monitoring exception + $this->assertEquals($type1->getAllowMonitoringException(), 0); + // Set to true and check return is the current state + $this->assertEquals($type1->setAllowMonitoringException(1),0); + // Check that it's changed + $this->assertEquals($type1->getAllowMonitoringException(), 1); + + } +} + + +?> diff --git a/tests/doctrine/TestUtil.php b/tests/doctrine/TestUtil.php index eedafeeba..7effe2afd 100644 --- a/tests/doctrine/TestUtil.php +++ b/tests/doctrine/TestUtil.php @@ -56,10 +56,10 @@ public static function createSampleService($label){ return $serv; } - public static function createSampleServiceType($name){ + public static function createSampleServiceType($description, $name){ $stype = new ServiceType(); $stype->setName($name); - $stype->setDescription('sample service type'); + $stype->setDescription($description); return $stype; } diff --git a/tests/unit/lib/Gocdb_Services/ServiceServiceTest.php b/tests/unit/lib/Gocdb_Services/ServiceServiceTest.php index 788a769d1..6bb2da66e 100644 --- a/tests/unit/lib/Gocdb_Services/ServiceServiceTest.php +++ b/tests/unit/lib/Gocdb_Services/ServiceServiceTest.php @@ -1,154 +1,367 @@ createFlatXMLDataSet(__DIR__ . '/../../../doctrine/truncateDataTables.xml'); - // Use below to return an empty data set if we don't want to truncate and seed - //return new PHPUnit_Extensions_Database_DataSet_DefaultDataSet(); - } + /** + * Overridden. Returns the test database connection. + * @return PHPUnit_Extensions_Database_DB_IDatabaseConnection + */ + protected function getConnection() { + require_once __DIR__ . '/../../../doctrine/bootstrap_pdo.php'; + return getConnectionToTestDB(); + } - /** - * Overridden. - */ - protected function getSetUpOperation() { - // CLEAN_INSERT is default - //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); - //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); - //return PHPUnit_Extensions_Database_Operation_Factory::NONE(); - // - // Issue a DELETE from
which is more portable than a - // TRUNCATE table
(some DBs require high privileges for truncate statements - // and also do not allow truncates across tables with FK contstraints e.g. Oracle) - return PHPUnit_Extensions_Database_Operation_Factory::DELETE_ALL(); - } + /** + * Overridden. Returns the test dataset. + * Defines how the initial state of the database should look before each test is executed. + * @return PHPUnit_Extensions_Database_DataSet_IDataSet + */ + protected function getDataSet() { + return $this->createFlatXMLDataSet(__DIR__ . '/../../../doctrine/truncateDataTables.xml'); + } - /** - * Overridden. - */ - protected function getTearDownOperation() { - // NONE is default - return PHPUnit_Extensions_Database_Operation_Factory::NONE(); - } + /** + * Overridden. + */ + protected function getSetUpOperation() { + // CLEAN_INSERT is default + //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); + //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); + //return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + // + // Issue a DELETE from
which is more portable than a + // TRUNCATE table
(some DBs require high privileges for truncate statements + // and also do not allow truncates across tables with FK contstraints e.g. Oracle) + return PHPUnit_Extensions_Database_Operation_Factory::DELETE_ALL(); + } - /** - * Sets up the fixture, e.g create a new entityManager for each test run - * This method is called before each test method is executed. - */ - protected function setUp() { - parent::setUp(); - $this->eMan = $this->createEntityManager(); - } - /** - * Run after each test function to prevent pile-up of database connections. - */ - protected function tearDown() - { - parent::tearDown(); - if (!is_null($this->eMan)) { - $this->eMan->getConnection()->close(); - } - } - /** - * @todo Still need to setup connection to different databases. - * @return EntityManager - */ - private function createEntityManager(){ - // Initialise to avoid unused variable warnings - $entityManager = NULL; - require __DIR__ . '/../../../doctrine/bootstrap_doctrine.php'; - return $entityManager; - } + /** + * Overridden. + */ + protected function getTearDownOperation() { + // NONE is default + return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + } - /** - * Called after setUp() and before each test. Used for common assertions - * across all tests. - */ - protected function assertPreConditions() { - $con = $this->getConnection(); - $fixture = __DIR__ . '/../../../doctrine/truncateDataTables.xml'; - $tables = simplexml_load_file($fixture); - - foreach($tables as $tableName) { - $sql = "SELECT * FROM ".$tableName->getName(); - $result = $con->createQueryTable('results_table', $sql); - if($result->getRowCount() != 0){ - throw new RuntimeException("Invalid fixture. Table has rows: ".$tableName->getName()); - } + /** + * Sets up the fixture, e.g create a new entityManager for each test run + * This method is called before each test method is executed. + */ + protected function setUp() { + parent::setUp(); + $this->em = $this->createEntityManager(); + /** + * It would be nce to put the database setup here but it creates a rats nest of + * problems with cleaning the database between tests. + * ref: https://github.com/sebastianbergmann/dbunit/issues/37 + */ } - } + /** + * Run after each test function to prevent pile-up of database connections. + */ + protected function tearDown() + { + parent::tearDown(); + if (!is_null($this->em)) { + $this->em->getConnection()->close(); + } + } + /** + * @todo Still need to setup connection to different databases. + * @return EntityManager + */ + private function createEntityManager() { + // Initialise to avoid unused variable warnings + $entityManager = NULL; + require __DIR__ . '/../../../doctrine/bootstrap_doctrine.php'; + return $entityManager; + } + + /** + * Called after setUp() and before each test. Used for common assertions + * across all tests. + */ + protected function assertPreConditions() { + /** + * Checks that all tables are empty before we start a test. + */ + $con = $this->getConnection(); + $fixture = __DIR__ . '/../../../doctrine/truncateDataTables.xml'; + $tables = simplexml_load_file($fixture); + + foreach ($tables as $tableName) { + $sql = "SELECT * FROM " . $tableName->getName(); + $result = $con->createQueryTable('results_table', $sql); + if ($result->getRowCount() != 0) + throw new RuntimeException("Invalid fixture. Table has rows: " . $tableName->getName()); + } + + } + private function createTestData() { + + //$project1 = new \Project("project1"); + //$this->em->persist($project1); + //$ngi1 = TestUtil::createSampleNGI("ngi1"); + //$this->em->persist($ngi1); + + $pk = new \PrimaryKey(); + $this->em->persist($pk); + + $this->em->flush(); + + $site1 = TestUtil::createSampleSite("site1"); + $this->em->persist($site1); + $site1->setPrimaryKey($pk->getId()); + + $service1 = TestUtil::createSampleService("service1"); + $this->em->persist($service1); + + $type1 = TestUtil::createSampleServiceType("sample service type","servicetype1"); + $this->em->persist($type1); + + $user1 = TestUtil::createSampleUser("forename1","surname1","/cn=dummy1"); + $this->em->persist($user1); + $user1->setAdmin(TRUE); + + $scope1 = TestUtil::createSampleScope("sample scope1", "scope1"); + $this->em->persist($scope1); + + //$service1->setParentSiteDoJoin($site1); + //$ngi1->addSiteDoJoin($site1); + //$project1->addNgi($ngi1); - public function createValidationEntities(){ + $this->em->flush(); + + // This seems to be the minimal newvalues array to allow the + // editService to execute + $serviceValues = array( + "hostingSite" => $site1->getId(), + "serviceType" => $type1->getId(), + "PRODUCTION_LEVEL" => "Y", + "IS_MONITORED" => "Y", + "BETA" => FALSE, + "Scope_ids" => array($scope1), + "ReservedScope_ids"=> array(), + "SE" => array( + "HOSTNAME" => "gocdb.somedomain.biz", + "URL" => "https://gocdb.somedomain.biz", + "DESCRIPTION" => "some text to describe something", + "HOST_DN" => "/C=UK/O=HR/CN=me.me.me", + "HOST_IP" => "0.0.0.0", + "HOST_IP_V6" => "0000:0000:0000:0000:0000:0000:0000:0000", + "HOST_OS" => "BSD", + "HOST_ARCH" => "x86_64", + "EMAIL" => "pooh.bear@gocdb.org" + ) + ); + + $ss = new org\gocdb\services\ServiceService(); + $ss->setEntityManager($this->em); + + $roleActionMappingService = + new org\gocdb\services\RoleActionMappingService(); + $roleActionAuthService + = new org\gocdb\services\RoleActionAuthorisationService($roleActionMappingService); + $roleActionAuthService->setEntityManager($this->em); + + $ss->setRoleActionAuthorisationService($roleActionAuthService); + + $scopeService = new \org\gocdb\services\Scope(); + $scopeService->setEntityManager($this->em); + + $ss->setScopeService($scopeService); + + return array ($ss, $serviceValues, $user1, $type1); + } + + /** + * Check that basic add service works + */ + public function testAddService() { + + print __METHOD__ . "\n"; + + list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + + // Check we get a service back. + $this->assertInstanceOf('\Service', + $s = $ss->addService($serviceValues, $user)); + + $this->assertTrue($s->getProduction()); + $this->assertTrue($s->getMonitored()); + } + /** + * Check the default rule that production services must be monitored. + * @depends testAddService + */ + public function testMonitoringFlag1() { + + print __METHOD__ . "\n"; + + list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + + // Force Monitoring and Production in conflict: should fail. + $serviceValues["PRODUCTION_LEVEL"] = "Y"; + $serviceValues["IS_MONITORED"] = "N"; + + $this->setExpectedException('Exception'); + $this->assertInstanceOf('\Service', + $ss->addService($serviceValues, $user)); + } + /** + * Check that exceptions to the default rule that production services + * must be monitored are handled correctly + * @depends testMonitoringFlag1 + */ + public function testMonitoringFlag2() { + + print __METHOD__ . "\n"; + + list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + + // Force Monitoring and Production in conflict: should fail but ... + $serviceValues["PRODUCTION_LEVEL"] = "Y"; + $serviceValues["IS_MONITORED"] = "N"; + + // ... set the exception so it doesn't. + $type->setAllowMonitoringException(1); + + $this->assertInstanceOf('\Service', + $s = $ss->addService($serviceValues, $user)); + + $this->assertTrue($s->getProduction()); + $this->assertFalse($s->getMonitored()); + } + /** + * Check that exceptions to the default rule that production services + * must be monitored are handled correctly + * @depends testAddService + */ + public function testEditService() { + + print __METHOD__ . "\n"; + + list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + + // Get a service + $s = $ss->addService($serviceValues, $user); + + // Make some rather arbitrary changes not in conflict + $serviceValues["PRODUCTION_LEVEL"] = "N"; + $serviceValues["IS_MONITORED"] = "N"; + + $this->assertInstanceOf('\Service', + $newS = $ss->editService($s, $serviceValues, $user)); + + $this->assertFalse($newS->getProduction()); + $this->assertFalse($newS->getMonitored()); + } + /** + * Check that exceptions to the default rule that production services + * must be monitored are handled correctly + * @depends testEditService + */ + public function testMonitoringFlag3() { + + print __METHOD__ . "\n"; + + list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + + // Get a service + $s = $ss->addService($serviceValues, $user); + + // Force Monitoring and Production in conflict: should fail. + $serviceValues["PRODUCTION_LEVEL"] = "Y"; + $serviceValues["IS_MONITORED"] = "N"; + + $this->setExpectedException('Exception'); + $this->assertInstanceOf('\Service', + $newS = $ss->editService($s, $serviceValues, $user)); + } + /** + * Check that exceptions to the default rule that production services + * must be monitored are handled correctly + * @depends testMonitoringFlag3 + */ + public function testMonitoringFlag4() { + + print __METHOD__ . "\n"; + + list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + + // Get a service + $s = $ss->addService($serviceValues, $user); + + // Force Monitoring and Production in conflict: should fail but ... + $serviceValues["PRODUCTION_LEVEL"] = "Y"; + $serviceValues["IS_MONITORED"] = "N"; + + // ... set the exception so it doesn't. + $type->setAllowMonitoringException(1); + + $this->assertInstanceOf('\Service', + $newS = $ss->editService($s, $serviceValues, $user)); + + $this->assertTrue($newS->getProduction()); + $this->assertFalse($newS->getMonitored()); + } + public function createValidationEntities(){ $util = new TestUtil(); $site = $util->createSampleSite("TestSite"); - $this->eMan->persist($site); + $this->em->persist($site); $service = $util->createSampleService("TestService1"); - $this->eMan->persist($service); + $this->em->persist($service); $service->setParentSiteDoJoin($site); $user = $util->createSampleUser("Test", "Testing"); $identifier= TestUtil::createSampleUserIdentifier("X.509", "/c=test"); $user->addUserIdentifierDoJoin($identifier); - $this->eMan->persist($identifier); - $this->eMan->persist($user); + $this->em->persist($identifier); + $this->em->persist($user); $user->setAdmin(TRUE); $roleAMS = new org\gocdb\services\RoleActionMappingService(); $roleAAS = new org\gocdb\services\RoleActionAuthorisationService($roleAMS); - $roleAAS->setEntityManager($this->eMan); + $roleAAS->setEntityManager($this->em); - $this->eMan->flush(); + $this->em->flush(); $serviceService = new org\gocdb\services\ServiceService(); - $serviceService->setEntityManager($this->eMan); + $serviceService->setEntityManager($this->em); $serviceService->setRoleActionAuthorisationService($roleAAS); return array($service, $user, $serviceService); @@ -215,3 +428,4 @@ public function testValidatePropertyValueFails(){ } } +?> diff --git a/tests/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php b/tests/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php new file mode 100644 index 000000000..d06f09c85 --- /dev/null +++ b/tests/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php @@ -0,0 +1,234 @@ +createFlatXMLDataSet(__DIR__ . '/../../../doctrine/truncateDataTables.xml'); + } + + /** + * Overridden. + */ + protected function getSetUpOperation() { + // CLEAN_INSERT is default + //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); + //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); + //return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + // + // Issue a DELETE from
which is more portable than a + // TRUNCATE table
(some DBs require high privileges for truncate statements + // and also do not allow truncates across tables with FK contstraints e.g. Oracle) + return PHPUnit_Extensions_Database_Operation_Factory::DELETE_ALL(); + } + + /** + * Overridden. + */ + protected function getTearDownOperation() { + // NONE is default + return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + } + + /** + * Sets up the fixture, e.g create a new entityManager for each test run + * This method is called before each test method is executed. + */ + protected function setUp() { + parent::setUp(); + $this->em = $this->createEntityManager(); + /** + * It would be nce to put the database setup here but it creates a rats nest of + * problems with cleaning the database between tests. + * ref: https://github.com/sebastianbergmann/dbunit/issues/37 + */ + } + + /** + * @todo Still need to setup connection to different databases. + * @return EntityManager + */ + private function createEntityManager() { + require __DIR__ . '/../../../doctrine/bootstrap_doctrine.php'; + return $entityManager; + } + + /** + * Called after setUp() and before each test. Used for common assertions + * across all tests. + */ + protected function assertPreConditions() { + /** + * Checks that all tables are empty before we start a test. + */ + $con = $this->getConnection(); + $fixture = __DIR__ . '/../../../doctrine/truncateDataTables.xml'; + $tables = simplexml_load_file($fixture); + + foreach ($tables as $tableName) { + //print $tableName->getName() . "\n"; + $sql = "SELECT * FROM " . $tableName->getName(); + $result = $con->createQueryTable('results_table', $sql); + //echo 'row count: '.$result->getRowCount() ; + if ($result->getRowCount() != 0) + throw new RuntimeException("Invalid fixture. Table has rows: " . $tableName->getName()); + } + + } + private function createTestData() { + + //$project1 = new \Project("project1"); + //$this->em->persist($project1); + //$ngi1 = TestUtil::createSampleNGI("ngi1"); + //$this->em->persist($ngi1); + + $pk = new \PrimaryKey(); + $this->em->persist($pk); + + $this->em->flush(); + + $user1 = TestUtil::createSampleUser("forename1","surname1","/cn=dummy1"); + $this->em->persist($user1); + $user1->setAdmin(TRUE); + + $this->em->flush(); + + $values = array ( + "Name" => "serviceType1", + "Description" => "description of service type 1", + "AllowMonitoringException" => FALSE ); + + return array ($values, $user1); + } + + /** + * Check that basic add service works and monitoring is not allowed + * for production services. + */ + public function testAddServiceType1() { + + print __METHOD__ . "\n"; + + list ($values, $user) = $this->createTestData(); + + $this->assertInstanceOf('org\gocdb\services\ServiceType', + $s = new org\gocdb\services\ServiceType()); + + $s->setEntityManager($this->em); + + // Check we get a service type back. + $this->assertInstanceOf('\ServiceType', + $st = $s->addServiceType($values, $user)); + + $this->assertFalse($st->getAllowMonitoringException()); + } + /** + * Check that duplicates fail + * @depends testAddServiceType1 + */ + public function testAddServiceType2() { + + print __METHOD__ . "\n"; + + list ($values, $user) = $this->createTestData(); + + $s = new org\gocdb\services\ServiceType(); + + $s->setEntityManager($this->em); + $s->addServiceType($values, $user); + + // Finally - trying to add the same again should fail + $this->setExpectedException('Exception'); + $st = $s->addServiceType($values, $user); + } + /** + * Check that admin privileges are needed + * @depends testAddServiceType1 + */ + public function testAddServiceType3() { + + print __METHOD__ . "\n"; + + list ($values, $user) = $this->createTestData(); + + $user->setAdmin(FALSE); + + $s = new org\gocdb\services\ServiceType(); + + $s->setEntityManager($this->em); + + $this->setExpectedException('Exception'); + $s->addServiceType($values, $user); + } + /** + * Check that admin privileges are needed + * @depends testAddServiceType1 + */ + public function testEditServiceType1() { + + print __METHOD__ . "\n"; + + list ($values, $user) = $this->createTestData(); + + $s = new org\gocdb\services\ServiceType(); + + $s->setEntityManager($this->em); + + $st = $s->addServiceType($values, $user); + + // Change the name and check the edit succeeds + $newName = $values['Name'] . '0'; + $values['Name'] = $newName; + + $s->editServiceType($st, $values, $user); + + $this->assertEquals($newName, $st->getName()); + } +} + +?> diff --git a/tests/writeAPI/abstractClass.php b/tests/writeAPI/abstractClass.php index 93a66480f..d8aef7003 100644 --- a/tests/writeAPI/abstractClass.php +++ b/tests/writeAPI/abstractClass.php @@ -266,7 +266,7 @@ protected function createSampleService($append = "") { #create a sample site and create a new sample service and join it to that site $sampleService = TestUtil::createSampleService("Sample service" . $append); - $sampleST = TestUtil::createSampleServiceType("sample.service.type" . $append); + $sampleST = TestUtil::createSampleServiceType("Service type Description", "sample.service.type" . $append); $sampleService->setServiceType($sampleST); $sampleSite = $this->createSampleSite($append); $sampleSite->addServiceDoJoin($sampleService); From f2a4b80a1a9489b275d5864c1cae6aa9fe13e18f Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Mon, 20 Mar 2023 15:28:19 +0000 Subject: [PATCH 17/42] Code standards --- htdocs/PI/write/PIWriteRequest.php | 2 +- .../controllers/admin/add_service_type.php | 29 +- .../controllers/admin/edit_service_type.php | 33 +- .../controllers/admin/view_service_type.php | 27 +- htdocs/web_portal/controllers/utils.php | 573 ++--- .../views/admin/add_service_type.php | 3 +- .../views/admin/added_service_type.php | 4 +- .../views/admin/edit_service_type.php | 8 +- .../views/admin/edited_service_type.php | 4 +- .../views/admin/view_service_type.php | 63 +- .../views/admin/view_service_types.php | 27 +- lib/Doctrine/entities/ServiceType.php | 46 +- lib/Gocdb_Services/ServiceService.php | 1834 ++++++++++------- lib/Gocdb_Services/ServiceType.php | 4 +- tests/DoctrineTestSuite1.php | 6 +- tests/doctrine/ServiceTypeTest.php | 60 +- .../lib/Gocdb_Services/ServiceServiceTest.php | 302 +-- .../Gocdb_Services/ServiceTypeServiceTest.php | 128 +- 18 files changed, 1818 insertions(+), 1335 deletions(-) diff --git a/htdocs/PI/write/PIWriteRequest.php b/htdocs/PI/write/PIWriteRequest.php index 84a33ab38..d3149635b 100644 --- a/htdocs/PI/write/PIWriteRequest.php +++ b/htdocs/PI/write/PIWriteRequest.php @@ -1351,7 +1351,7 @@ private function updateEndpointPropPost (\EndpointLocation $endpoint, $endpointP #POST not valid for Endpoint booleans as they are set when the entity created and so are already defined $this->exceptionWithResponseCode(405,$this->genericExceptionMessages["cantPostABool"]); - } elseif ($this->serviceService->EndpointPropSet($endpoint, $endpointPropName)) { + } elseif ($this->serviceService->endpointPropSet($endpoint, $endpointPropName)) { #POST method must fail if the value is already set $this->exceptionWithResponseCode(409,$this->genericExceptionMessages["propAlreadySet"]); diff --git a/htdocs/web_portal/controllers/admin/add_service_type.php b/htdocs/web_portal/controllers/admin/add_service_type.php index 4714937ba..748336393 100644 --- a/htdocs/web_portal/controllers/admin/add_service_type.php +++ b/htdocs/web_portal/controllers/admin/add_service_type.php @@ -1,4 +1,5 @@ getUserByPrinciple($dn); try { - //function will through error if user does not have the correct permissions + //function will throw error if user does not have the correct permissions + /** + * @var \ServiceType $serviceType + */ $serviceType = \Factory::getServiceTypeService()->addServiceType($newValues, $user); $params = array('Name' => $serviceType->getName(), - 'Description'=> $serviceType->getDescription(), + 'Description' => $serviceType->getDescription(), 'AllowMonitoringException' => $serviceType->getAllowMonitoringException(), - 'ID'=> $serviceType->getId()); + 'ID' => $serviceType->getId()); show_view("admin/added_service_type.php", $params, "Successfuly added new service type"); } catch (Exception $e) { show_view('error.php', $e->getMessage()); die(); } } - -?> \ No newline at end of file diff --git a/htdocs/web_portal/controllers/admin/edit_service_type.php b/htdocs/web_portal/controllers/admin/edit_service_type.php index 660f536c9..46c8e6806 100644 --- a/htdocs/web_portal/controllers/admin/edit_service_type.php +++ b/htdocs/web_portal/controllers/admin/edit_service_type.php @@ -1,4 +1,5 @@ getServiceType($_REQUEST['id']); $params = array('Name' => $serviceType->getName(),'ID' => $serviceType->getId(), @@ -67,7 +73,8 @@ function draw() { * services layer's service type functions. * @return null */ -function submit() { +function submit() +{ require_once __DIR__ . '/../../../../htdocs/web_portal/components/Get_User_Principle.php'; //Get the posted service type data @@ -79,20 +86,24 @@ function submit() { //get the service type service and the service type being edited $serv = \Factory::getServiceTypeService(); + /** + * @var \ServiceType $unalteredServiceType + */ $unalteredServiceType = $serv->getServiceType($newValues['ID']); try { //function will throw error if user does not have the correct permissions - $alteredServiceType =$serv->editServiceType($unalteredServiceType, $newValues, $user); + /** + * @var \User $user + */ + $alteredServiceType = $serv->editServiceType($unalteredServiceType, $newValues, $user); $params = array('Name' => $alteredServiceType->getName(), - 'Description'=> $alteredServiceType->getDescription(), + 'Description' => $alteredServiceType->getDescription(), 'AllowMonitoringException' => $alteredServiceType->getAllowMonitoringException(), - 'ID'=> $alteredServiceType->getId()); + 'ID' => $alteredServiceType->getId()); show_view("admin/edited_service_type.php", $params); } catch (Exception $e) { show_view('error.php', $e->getMessage()); die(); } } - -?> \ No newline at end of file diff --git a/htdocs/web_portal/controllers/admin/view_service_type.php b/htdocs/web_portal/controllers/admin/view_service_type.php index 9b27292c6..f94895324 100644 --- a/htdocs/web_portal/controllers/admin/view_service_type.php +++ b/htdocs/web_portal/controllers/admin/view_service_type.php @@ -1,4 +1,5 @@ getUserByPrinciple($dn); - $serv= \Factory::getServiceTypeService(); - $serviceType =$serv ->getServiceType($_REQUEST['id']); + $serv = \Factory::getServiceTypeService(); + /** + * @var \ServiceType $serviceType + */ + $serviceType = $serv ->getServiceType($_REQUEST['id']); - $params['Name'] = $serviceType -> getName(); - $params['Description'] = $serviceType -> getDescription(); - $params['ID']= $serviceType ->getId(); + $params = []; + $params['Name'] = $serviceType->getName(); + $params['Description'] = $serviceType->getDescription(); + $params['ID'] = $serviceType->getId(); $params['AllowMonitoringException'] = $serviceType->getAllowMonitoringException(); - $params['Services'] = $serv ->getServices($params['ID']); + $params['Services'] = $serv->getServices($params['ID']); + /** + * @var \User $user + */ $params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user); show_view("admin/view_service_type.php", $params, $params['Name']); - } - diff --git a/htdocs/web_portal/controllers/utils.php b/htdocs/web_portal/controllers/utils.php index aff5b46a2..aa98bb42e 100644 --- a/htdocs/web_portal/controllers/utils.php +++ b/htdocs/web_portal/controllers/utils.php @@ -1,4 +1,5 @@ $line) { - $trimedLine = trim($line); - if(empty($trimedLine) || (!$isWaitingOtherLine && strpos($line,"#") === 0)) continue; + foreach ($lines as $i => $line) { + $trimedLine = trim($line); + if (empty($trimedLine) || (!$isWaitingOtherLine && strpos($line, "#") === 0)) { + continue; + } - if(!$isWaitingOtherLine) { - $key = substr($line,0,strpos($line,'=')); - $value = substr($line,strpos($line,'=') + 1, strlen($line)); - } - else { - $value .= $line; - } + if (!$isWaitingOtherLine) { + $key = substr($line, 0, strpos($line, '=')); + $value = substr($line, strpos($line, '=') + 1, strlen($line)); + } else { + $value .= $line; + } - /* Check if ends with single '\' */ - if(strpos($value,"\\") === strlen($value)-strlen("\\")) { - $value = substr($value, 0, strlen($value)-1)."\n"; - $isWaitingOtherLine = true; - } - else { - $isWaitingOtherLine = false; - } + /* Check if ends with single '\' */ + if (strpos($value, "\\") === strlen($value) - strlen("\\")) { + $value = substr($value, 0, strlen($value) - 1) . "\n"; + $isWaitingOtherLine = true; + } else { + $isWaitingOtherLine = false; + } - if ($key == NULL) { - $line = $i + 1; - throw new \Exception("Property name on line {$line} is null"); - } - if ($value == NULL) { - $line = $i + 1; - throw new \Exception("Property value on line {$line} is null"); - } + if ($key == null) { + $line = $i + 1; + throw new \Exception("Property name on line {$line} is null"); + } + if ($value == null) { + $line = $i + 1; + throw new \Exception("Property value on line {$line} is null"); + } - //we can't use the prop key as the key due to key duplicates [PREVIOUSLY] being allowed - //we are using an indexed array of indexed arrays TODO: use prop key as array key - $result[] = array($key, $value); + //we can't use the prop key as the key due to key duplicates [PREVIOUSLY] being allowed + //we are using an indexed array of indexed arrays TODO: use prop key as array key + $result[] = array($key, $value); - unset($lines[$i]); - } + unset($lines[$i]); + } return $result; } @@ -68,7 +70,8 @@ function parse_properties($txtProperties) { *
  • 'reserved_optional_inheritable' - Lists reserved tags that CAN be inherited * from the $parentScopedEntity (the tag may/may-not be already assigned to the target).
  • *
  • 'reserved' - The remaining Reserved tags.
  • - *
  • 'disableReserved' - Defines a boolean rather than a tag list - true to disable the 'reserved' tags or false to enable.
  • + *
  • 'disableReserved' - Defines a boolean rather than a tag list - + * true to disable the 'reserved' tags or false to enable.
  • * *

    * For each scope value, the attributes are ["PK/ID", "tagValue", "boolCheckedOrNot"]. @@ -88,26 +91,30 @@ function parse_properties($txtProperties) { * * @param \IScopedEntity $targetScopedEntity Optional, use Null if creating a new IScopedEntity * @param \IScopedEntity $parentScopedEntity Optional, the parent to inherit tags from - * @param bool $disableReservedScopes True to disable 'reserved' tags - * @param bool $inheritParentScopeChecked True to set the checked status of each scope value + * @param bool $noReservedScopes True to disable 'reserved' tags + * @param bool $inheritScopeChecked True to set the checked status of each scope value * according to whether the parent has the same scope checked (every scope will always be * false if the $parentScopedEntity is null) * @return string * @throws \LogicException */ -function getEntityScopesAsJSON2($targetScopedEntity = null, $parentScopedEntity = null, - $disableReservedScopes = true, $inheritParentScopeChecked = false){ +function getEntityScopesAsJSON2( + $targetScopedEntity = null, + $parentScopedEntity = null, + $noReservedScopes = true, + $inheritScopeChecked = false +) { $targetScopes = array(); - if($targetScopedEntity != null){ - if(!($targetScopedEntity instanceof \IScopedEntity)){ + if ($targetScopedEntity != null) { + if (!($targetScopedEntity instanceof \IScopedEntity)) { throw new \LogicException('Invalid $scopedEntityChild, does not implement IScopedEntity'); } - $targetScopes = $targetScopedEntity->getScopes()->toArray(); + $targetScopes = $targetScopedEntity->getScopes()->toArray(); } $parentScopes = array(); - if($parentScopedEntity != null) { - if(!($parentScopedEntity instanceof \IScopedEntity)){ + if ($parentScopedEntity != null) { + if (!($parentScopedEntity instanceof \IScopedEntity)) { throw new \LogicException('Invalid scopedEntityParent, does not implement IScopedEntity'); } $parentScopes = $parentScopedEntity->getScopes()->toArray(); @@ -116,38 +123,41 @@ function getEntityScopesAsJSON2($targetScopedEntity = null, $parentScopedEntity // $reservedScopeNames = \Factory::getConfigService()->getReservedScopeList(); $allScopes = \Factory::getScopeService()->getScopes(); $optionalScopeIds = array(); - $reservedOptionalScopeIds = array(); - $reservedOptionalInheritableScopeIds = array(); + // Reserved optional scope ids + $resOptScopeIds = array(); + // Reserved optional inherited scope ids + $resOptHeritScopeIds = array(); $reservedScopeIds = array(); /* @var $scope \Scope */ - foreach($allScopes as $scope){ + foreach ($allScopes as $scope) { $targetChecked = false; $parentChecked = false; // is scope already joined to target - if(in_array($scope, $targetScopes)){ + if (in_array($scope, $targetScopes)) { $targetChecked = true; } // is scope already joined to parent - if(in_array($scope, $parentScopes)){ + if (in_array($scope, $parentScopes)) { $parentChecked = true; } // Determine if this tag should be checked = t/f $isChecked = $targetChecked; - if($inheritParentScopeChecked){ + if ($inheritScopeChecked) { $isChecked = $parentChecked; } // Is scope tag in the reserved list ? - if($scope->getReserved()){ + if ($scope->getReserved()) { // A reserved scope tag: - if($parentChecked || $targetChecked){ - if($parentChecked){ + if ($parentChecked || $targetChecked) { + if ($parentChecked) { // tag CAN be inherited from parent, so put in relevant array - $reservedOptionalInheritableScopeIds[] = array($scope->getId(), $scope->getName(), $isChecked); + $resOptHeritScopeIds[] = array($scope->getId(), $scope->getName(), $isChecked); } else { - // tag CAN'T be inherited from parent, but it has already been directly assigned, so put in relevant array - $reservedOptionalScopeIds[] = array($scope->getId(), $scope->getName(), $isChecked); + // tag CAN'T be inherited from parent, but it has already been directly assigned, + // so put in relevant array + $resOptScopeIds[] = array($scope->getId(), $scope->getName(), $isChecked); } } else { // tag is not inheritable and has not been directly assigned, so its reserved/protected @@ -161,10 +171,10 @@ function getEntityScopesAsJSON2($targetScopedEntity = null, $parentScopedEntity // build the response $scopeCategories = array(); $scopeCategories['optional'] = $optionalScopeIds; - $scopeCategories['reserved_optional'] = $reservedOptionalScopeIds; - $scopeCategories['reserved_optional_inheritable'] = $reservedOptionalInheritableScopeIds; + $scopeCategories['reserved_optional'] = $resOptScopeIds; + $scopeCategories['reserved_optional_inheritable'] = $resOptHeritScopeIds; $scopeCategories['reserved'] = $reservedScopeIds; - $scopeCategories['disableReserved'] = $disableReservedScopes ? true : false; + $scopeCategories['disableReserved'] = $noReservedScopes ? true : false; return json_encode($scopeCategories); } @@ -175,8 +185,9 @@ function getEntityScopesAsJSON2($targetScopedEntity = null, $parentScopedEntity * * @throws \Exception */ -function checkPortalIsNotReadOnlyOrUserIsAdmin(\User $user = null) { - if (portalIsReadOnlyAndUserIsNotAdmin($user)){ +function checkPortalIsNotReadOnlyOrUserIsAdmin(\User $user = null) +{ + if (portalIsReadOnlyAndUserIsNotAdmin($user)) { throw new \Exception("The portal is currently in read only mode, changes can not be made."); } } @@ -190,20 +201,21 @@ function checkPortalIsNotReadOnlyOrUserIsAdmin(\User $user = null) { * current user * @return boolean */ -function portalIsReadOnlyAndUserIsNotAdmin(\user $user = null) { +function portalIsReadOnlyAndUserIsNotAdmin(\user $user = null) +{ require_once __DIR__ . '/../../../lib/Gocdb_Services/Factory.php'; // this block is required to deal with unregistered users (where $user is null) $userIsAdmin = false; - if (! is_null($user)){ - if ($user->isAdmin()){ // sub query required becauser ->isAdmin can't be called on null + if (! is_null($user)) { + if ($user->isAdmin()) { // sub query required becauser ->isAdmin can't be called on null $userIsAdmin = true; } } - if (\Factory::getConfigService()->IsPortalReadOnly() and ! $userIsAdmin){ + if (\Factory::getConfigService()->IsPortalReadOnly() and ! $userIsAdmin) { return true; - }else{ + } else { return false; } } @@ -214,25 +226,36 @@ function portalIsReadOnlyAndUserIsNotAdmin(\user $user = null) { * @return null * */ -function checkUserIsAdmin() { +function checkUserIsAdmin() +{ require_once __DIR__ . '/../../web_portal/components/Get_User_Principle.php'; $dn = Get_User_Principle(); + /** + * @var \User $user + */ $user = \Factory::getUserService()->getUserByPrinciple($dn); - if ($user == null){ + if ($user == null) { throw new Exception("Unregistered users may not carry out this operation"); } - if (! $user->isAdmin()){ + if (! $user->isAdmin()) { throw new Exception("Only GOCDB administrators can perform this action."); } } -function CheckCurrentUserCanEditProject(\Project $project) { +function CheckCurrentUserCanEditProject(\Project $project) +{ require_once __DIR__ . '/../../web_portal/components/Get_User_Principle.php'; $dn = Get_User_Principle(); $user = \Factory::getUserService()->getUserByPrinciple($dn); //$enablingRoles = \Factory::getProjectService()->authorize Action('ACTION_EDIT_OBJECT', $project, $user); //if (count($enablingRoles) == 0){ - if(\Factory::getRoleActionAuthorisationService()->authoriseAction(\Action::EDIT_OBJECT, $project, $user)->getGrantAction() == FALSE){ + if ( + \Factory::getRoleActionAuthorisationService()->authoriseAction( + \Action::EDIT_OBJECT, + $project, + $user + )->getGrantAction() == false + ) { throw new Exception("You do not have a role that enables you to edit this project"); } } @@ -245,52 +268,55 @@ function CheckCurrentUserCanEditProject(\Project $project) { * @global array $_REQUEST site data submitted by the end user * @return array an array representation of a site */ -function getSiteDataFromWeb() { +function getSiteDataFromWeb() +{ // Fields that are used to link other objects to the site $fields = array ( 'Country', 'ProductionStatus' ); - foreach($fields as $field){ - $site_data [$field] = $_REQUEST [$field]; + $siteData = []; + foreach ($fields as $field) { + $siteData[$field] = $_REQUEST [$field]; } - if(isset($_REQUEST['childServiceScopeAction'])){ - $site_data['childServiceScopeAction'] = $_REQUEST['childServiceScopeAction']; + if (isset($_REQUEST['childServiceScopeAction'])) { + $siteData['childServiceScopeAction'] = $_REQUEST['childServiceScopeAction']; } else { - $site_data['childServiceScopeAction'] = 'noModify'; + $siteData['childServiceScopeAction'] = 'noModify'; } // get non-reserved scopes if any are selected, if not set as empty array - if (isset($_REQUEST ['Scope_ids'])){ - $site_data ['Scope_ids'] = $_REQUEST ['Scope_ids']; - }else{ - $site_data ['Scope_ids'] = array (); + if (isset($_REQUEST ['Scope_ids'])) { + $siteData ['Scope_ids'] = $_REQUEST ['Scope_ids']; + } else { + $siteData ['Scope_ids'] = array (); } // get reserved scopes if any are selected, if not set as empty array - if (isset($_REQUEST ['ReservedScope_ids'])){ - $site_data ['ReservedScope_ids'] = $_REQUEST ['ReservedScope_ids']; - }else{ - $site_data ['ReservedScope_ids'] = array (); + if (isset($_REQUEST ['ReservedScope_ids'])) { + $siteData ['ReservedScope_ids'] = $_REQUEST ['ReservedScope_ids']; + } else { + $siteData ['ReservedScope_ids'] = array (); } /* - * Certification status is only set during the add_site procedure. Editing an existing site's cert status uses a separate form + * Certification status is only set during the add_site procedure. + * Editing an existing site's cert status uses a separate form */ - if (isset($_REQUEST ['Certification_Status'])){ - $site_data ['Certification_Status'] = $_REQUEST ['Certification_Status']; + if (isset($_REQUEST ['Certification_Status'])) { + $siteData ['Certification_Status'] = $_REQUEST ['Certification_Status']; } /* * ROC is only set during the add_site procedure. A site's ROC can't be edited in the web portal */ - if (isset($_REQUEST ['NGI'])){ - $site_data ['NGI'] = $_REQUEST ['NGI']; + if (isset($_REQUEST ['NGI'])) { + $siteData ['NGI'] = $_REQUEST ['NGI']; } // Fields specific to the site object and not linked to other entities - $site_object_fields = array ( + $siteObjectFields = array ( 'SHORT_NAME', 'OFFICIAL_NAME', 'HOME_URL', @@ -312,23 +338,24 @@ function getSiteDataFromWeb() { 'TIMEZONE' ); - foreach($site_object_fields as $field){ - $site_data ['Site'] [$field] = trim($_REQUEST [$field]); + foreach ($siteObjectFields as $field) { + $siteData ['Site'] [$field] = trim($_REQUEST [$field]); } //Notifcations - $site_data ['NOTIFY'] = $_REQUEST ['NOTIFY']; + $siteData ['NOTIFY'] = $_REQUEST ['NOTIFY']; /* - * If the user is updating a site the optional cobjectid parameter will be set. If it is set we return it as part of the array + * If the user is updating a site the optional cobjectid parameter will be set. + * If it is set we return it as part of the array */ - if (! empty($_REQUEST ['ID'])){ - $site_data ['ID'] = $_REQUEST ['ID']; + if (! empty($_REQUEST ['ID'])) { + $siteData ['ID'] = $_REQUEST ['ID']; } // - return $site_data; + return $siteData; } /** @@ -338,39 +365,41 @@ function getSiteDataFromWeb() { * @global array $_REQUEST site data submitted by the end user * @return array An array of service group data */ -function getSGroupDataFromWeb() { +function getSGroupDataFromWeb() +{ /* * $_REQUEST['monitored'] is set by the "Should this Virtual Site be monitored?" tick box */ - if (isset($_REQUEST ['monitored'])){ + if (isset($_REQUEST ['monitored'])) { $monitored = 'Y'; - }else{ + } else { $monitored = 'N'; } - $sg ['MONITORED'] = $monitored; + $sGroup = []; + $sGroup['MONITORED'] = $monitored; - if (isset($_REQUEST ['objectId'])){ - $sg ['ID'] = $_REQUEST ['objectId']; + if (isset($_REQUEST ['objectId'])) { + $sGroup['ID'] = $_REQUEST ['objectId']; } - $sg ['SERVICEGROUP'] ['NAME'] = trim($_REQUEST ['name']); - $sg ['SERVICEGROUP'] ['DESCRIPTION'] = trim($_REQUEST ['description']); - $sg ['SERVICEGROUP'] ['EMAIL'] = trim($_REQUEST ['email']); + $sGroup['SERVICEGROUP'] ['NAME'] = trim($_REQUEST ['name']); + $sGroup['SERVICEGROUP'] ['DESCRIPTION'] = trim($_REQUEST ['description']); + $sGroup['SERVICEGROUP'] ['EMAIL'] = trim($_REQUEST ['email']); // get scopes if any are selected, if not set as null - if (isset($_REQUEST ['Scope_ids'])){ - $sg ['Scope_ids'] = $_REQUEST ['Scope_ids']; - }else{ - $sg ['Scope_ids'] = array (); + if (isset($_REQUEST ['Scope_ids'])) { + $sGroup['Scope_ids'] = $_REQUEST ['Scope_ids']; + } else { + $sGroup['Scope_ids'] = array (); } - if (isset($_REQUEST ['ReservedScope_ids'])){ - $sg['ReservedScope_ids'] = $_REQUEST ['ReservedScope_ids']; - }else{ - $sg['ReservedScope_ids'] = array (); + if (isset($_REQUEST ['ReservedScope_ids'])) { + $sGroup['ReservedScope_ids'] = $_REQUEST ['ReservedScope_ids']; + } else { + $sGroup['ReservedScope_ids'] = array (); } - return $sg; + return $sGroup; } /** @@ -381,7 +410,8 @@ function getSGroupDataFromWeb() { * @global array $_REQUEST SE data submitted by the end user * @return array an array representation of a service */ -function getSeDataFromWeb() { +function getSeDataFromWeb() +{ $fields = array ( 'serviceType', @@ -389,61 +419,64 @@ function getSeDataFromWeb() { 'NOTIFY', 'PRODUCTION_LEVEL' ); - - foreach($fields as $field){ - $se_data [$field] = $_REQUEST [$field]; + $seData = []; + foreach ($fields as $field) { + $seData [$field] = $_REQUEST [$field]; } /* * If the user is adding a new service the optional HOSTING_SITE parameter will be set. * If it is set we return it as part of the array */ - if (! empty($_REQUEST ['hostingSite'])){ - $se_data ['hostingSite'] = $_REQUEST ['hostingSite']; - } - - // $se_data['SE']['ENDPOINT'] = $_REQUEST['HOSTNAME'] . $_REQUEST['serviceType']; - $se_data ['SE'] ['HOSTNAME'] = trim($_REQUEST ['HOSTNAME']); - $se_data ['SE'] ['HOST_IP'] = trim($_REQUEST ['HOST_IP']); - $se_data ['SE'] ['HOST_IP_V6'] = trim($_REQUEST['HOST_IP_V6']); - $se_data ['SE'] ['HOST_DN'] = trim($_REQUEST ['HOST_DN']); - $se_data ['SE'] ['DESCRIPTION'] = trim($_REQUEST ['DESCRIPTION']); - $se_data ['SE'] ['HOST_OS'] = trim($_REQUEST ['HOST_OS']); - $se_data ['SE'] ['HOST_ARCH'] = trim($_REQUEST ['HOST_ARCH']); - $se_data ['SE'] ['EMAIL'] = trim($_REQUEST ['EMAIL']); - $se_data ['SE'] ['URL'] = trim($_REQUEST ['endpointUrl']); - $se_data ['BETA'] = $_REQUEST ['HOST_BETA']; + if (! empty($_REQUEST ['hostingSite'])) { + $seData ['hostingSite'] = $_REQUEST ['hostingSite']; + } + + // $seData['SE']['ENDPOINT'] = $_REQUEST['HOSTNAME'] . $_REQUEST['serviceType']; + $seData ['SE'] ['HOSTNAME'] = trim($_REQUEST ['HOSTNAME']); + $seData ['SE'] ['HOST_IP'] = trim($_REQUEST ['HOST_IP']); + $seData ['SE'] ['HOST_IP_V6'] = trim($_REQUEST['HOST_IP_V6']); + $seData ['SE'] ['HOST_DN'] = trim($_REQUEST ['HOST_DN']); + $seData ['SE'] ['DESCRIPTION'] = trim($_REQUEST ['DESCRIPTION']); + $seData ['SE'] ['HOST_OS'] = trim($_REQUEST ['HOST_OS']); + $seData ['SE'] ['HOST_ARCH'] = trim($_REQUEST ['HOST_ARCH']); + $seData ['SE'] ['EMAIL'] = trim($_REQUEST ['EMAIL']); + $seData ['SE'] ['URL'] = trim($_REQUEST ['endpointUrl']); + $seData ['BETA'] = $_REQUEST ['HOST_BETA']; /* - * If the user is updating a service the optional cobjectid parameter will be set. If it is set we return it as part of the array + * If the user is updating a service the optional cobjectid parameter will be set. + * If it is set we return it as part of the array */ - if (! empty($_REQUEST ['ID'])){ - $se_data ['ID'] = $_REQUEST ['ID']; + if (! empty($_REQUEST ['ID'])) { + $seData ['ID'] = $_REQUEST ['ID']; } // get scopes if any are selected, if not set as null - if (isset($_REQUEST ['Scope_ids'])){ - $se_data ['Scope_ids'] = $_REQUEST ['Scope_ids']; - }else{ - $se_data ['Scope_ids'] = array (); + if (isset($_REQUEST ['Scope_ids'])) { + $seData ['Scope_ids'] = $_REQUEST ['Scope_ids']; + } else { + $seData ['Scope_ids'] = array (); } - if (isset($_REQUEST ['ReservedScope_ids'])){ - $se_data ['ReservedScope_ids'] = $_REQUEST ['ReservedScope_ids']; - }else{ - $se_data ['ReservedScope_ids'] = array (); + if (isset($_REQUEST ['ReservedScope_ids'])) { + $seData ['ReservedScope_ids'] = $_REQUEST ['ReservedScope_ids']; + } else { + $seData ['ReservedScope_ids'] = array (); } - return $se_data; + return $seData; } /** * * @return array */ -function getProjectDataFromWeb() { +function getProjectDataFromWeb() +{ + $projectValues = []; // new projects won't have an id - if (isset($_REQUEST ['ID'])){ + if (isset($_REQUEST ['ID'])) { $projectValues ['ID'] = $_REQUEST ['ID']; } @@ -453,12 +486,13 @@ function getProjectDataFromWeb() { 'Description' ); - foreach($fields as $field){ + foreach ($fields as $field) { $projectValues [$field] = trim($_REQUEST [$field]); } return $projectValues; } -function getNGIDataFromWeb() { +function getNGIDataFromWeb() +{ // Get the NGI post data into an array $fields = array ( 'EMAIL', @@ -467,13 +501,13 @@ function getNGIDataFromWeb() { 'SECURITY_EMAIL', 'GGUS_SU' ); - - foreach($fields as $field){ - $NGIValues [$field] = trim($_REQUEST [$field]); + $ngiValues = []; + foreach ($fields as $field) { + $ngiValues [$field] = trim($_REQUEST [$field]); } - if (isset($_REQUEST ['NAME'])){ - $NGIValues ['NAME'] = $_REQUEST ['NAME']; + if (isset($_REQUEST ['NAME'])) { + $ngiValues ['NAME'] = $_REQUEST ['NAME']; } // $scopes = array (); @@ -483,25 +517,25 @@ function getNGIDataFromWeb() { // get scopes if any are selected, if not set as null $optionalScopes = array(); - if (isset($_REQUEST ['Scope_ids'])){ + if (isset($_REQUEST ['Scope_ids'])) { $optionalScopes['Scope_ids'] = $_REQUEST ['Scope_ids']; - }else{ + } else { $optionalScopes['Scope_ids'] = array (); } $reservedScopes = array(); - if (isset($_REQUEST ['ReservedScope_ids'])){ + if (isset($_REQUEST ['ReservedScope_ids'])) { $reservedScopes['ReservedScope_ids'] = $_REQUEST ['ReservedScope_ids']; - }else{ + } else { $reservedScopes['ReservedScope_ids'] = array (); } $id = null; - if (isset($_REQUEST ['ID'])){ + if (isset($_REQUEST ['ID'])) { $id = $_REQUEST ['ID']; } $values = array ( - 'NGI' => $NGIValues, + 'NGI' => $ngiValues, //'SCOPES' => $scopes, 'Scope_ids' => $optionalScopes['Scope_ids'], 'ReservedScope_ids' => $reservedScopes['ReservedScope_ids'], @@ -518,123 +552,134 @@ function getNGIDataFromWeb() { * @global array $_REQUEST Downtime data submitted by the end user * @return array an array representation of a downtime */ -function getDtDataFromWeb() { - $dt ['DOWNTIME'] ['SEVERITY'] = $_REQUEST ['SEVERITY']; - $dt ['DOWNTIME'] ['DESCRIPTION'] = trim($_REQUEST ['DESCRIPTION']); - $dt ['DOWNTIME'] ['START_TIMESTAMP'] = $_REQUEST ['START_TIMESTAMP']; - $dt ['DOWNTIME'] ['END_TIMESTAMP'] = $_REQUEST ['END_TIMESTAMP']; +function getDtDataFromWeb() +{ + $downTime = []; + $downTime['DOWNTIME'] ['SEVERITY'] = $_REQUEST ['SEVERITY']; + $downTime['DOWNTIME'] ['DESCRIPTION'] = trim($_REQUEST ['DESCRIPTION']); + $downTime['DOWNTIME'] ['START_TIMESTAMP'] = $_REQUEST ['START_TIMESTAMP']; + $downTime['DOWNTIME'] ['END_TIMESTAMP'] = $_REQUEST ['END_TIMESTAMP']; - $dt ['DOWNTIME'] ['DEFINE_TZ_BY_UTC_OR_SITE'] = 'utc'; //default - if(isset($_REQUEST ['DEFINE_TZ_BY_UTC_OR_SITE'])){ - $dt ['DOWNTIME'] ['DEFINE_TZ_BY_UTC_OR_SITE'] = $_REQUEST ['DEFINE_TZ_BY_UTC_OR_SITE']; // 'utc' or 'site' + $downTime['DOWNTIME'] ['DEFINE_TZ_BY_UTC_OR_SITE'] = 'utc'; //default + if (isset($_REQUEST ['DEFINE_TZ_BY_UTC_OR_SITE'])) { + $downTime['DOWNTIME'] ['DEFINE_TZ_BY_UTC_OR_SITE'] = $_REQUEST ['DEFINE_TZ_BY_UTC_OR_SITE']; // 'utc' or 'site' } - if (! isset($_REQUEST ['IMPACTED_IDS'])){ + if (! isset($_REQUEST ['IMPACTED_IDS'])) { throw new Exception('Error - No endpoints or services selected, downtime must affect at least one endpoint'); } - $dt ['IMPACTED_IDS'] = $_REQUEST ['IMPACTED_IDS']; + $downTime['IMPACTED_IDS'] = $_REQUEST ['IMPACTED_IDS']; //Get the previous downtimes ID if we are doing an edit - if(isset($_REQUEST['DOWNTIME_ID'])){ - $dt['DOWNTIME']['EXISTINGID'] = $_REQUEST['DOWNTIME_ID']; + if (isset($_REQUEST['DOWNTIME_ID'])) { + $downTime['DOWNTIME']['EXISTINGID'] = $_REQUEST['DOWNTIME_ID']; } - return $dt; + return $downTime; } /** * Gets the site properties data passed by user * */ -function getSpDataFromWeb() { - $sp ['SITEPROPERTIES'] ['SITE'] = $_REQUEST ['SITE']; - $sp ['SITEPROPERTIES'] ['NAME'] = $_REQUEST ['KEYPAIRNAME']; - $sp ['SITEPROPERTIES'] ['VALUE'] = $_REQUEST ['KEYPAIRVALUE']; - if (isset($_REQUEST ['PROP'])){ - $sp ['SITEPROPERTIES'] ['PROP'] = $_REQUEST ['PROP']; +function getSpDataFromWeb() +{ + $siteProp = []; + $siteProp['SITEPROPERTIES'] ['SITE'] = $_REQUEST ['SITE']; + $siteProp['SITEPROPERTIES'] ['NAME'] = $_REQUEST ['KEYPAIRNAME']; + $siteProp['SITEPROPERTIES'] ['VALUE'] = $_REQUEST ['KEYPAIRVALUE']; + if (isset($_REQUEST ['PROP'])) { + $siteProp['SITEPROPERTIES'] ['PROP'] = $_REQUEST ['PROP']; } - if(isset($sp['SITEPROPERTIES']['NAME'])){ - $sp['SITEPROPERTIES']['NAME'] = $sp['SITEPROPERTIES']['NAME']; + if (isset($siteProp['SITEPROPERTIES']['NAME'])) { + $siteProp['SITEPROPERTIES']['NAME'] = $siteProp['SITEPROPERTIES']['NAME']; } - if(isset($sp['SITEPROPERTIES']['VALUE'])){ - $sp['SITEPROPERTIES']['VALUE'] = $sp['SITEPROPERTIES']['VALUE']; + if (isset($siteProp['SITEPROPERTIES']['VALUE'])) { + $siteProp['SITEPROPERTIES']['VALUE'] = $siteProp['SITEPROPERTIES']['VALUE']; } - return $sp; + return $siteProp; } /** * Gets the service properties data passed by user * */ -function getSerPropDataFromWeb() { - $sp ['SERVICEPROPERTIES'] ['SERVICE'] = $_REQUEST ['SERVICE']; - $sp ['SERVICEPROPERTIES'] ['NAME'] = $_REQUEST ['KEYPAIRNAME']; - $sp ['SERVICEPROPERTIES'] ['VALUE'] = $_REQUEST ['KEYPAIRVALUE']; - if (isset($_REQUEST ['PROP'])){ - $sp ['SERVICEPROPERTIES'] ['PROP'] = trim($_REQUEST ['PROP']); - } - if(isset($sp['SERVICEPROPERTIES']['NAME'])){ - $sp['SERVICEPROPERTIES']['NAME'] = $sp['SERVICEPROPERTIES']['NAME']; - } - if(isset($sp['SERVICEPROPERTIES']['VALUE'])){ - $sp['SERVICEPROPERTIES']['VALUE'] = $sp['SERVICEPROPERTIES']['VALUE']; - } - return $sp; +function getSerPropDataFromWeb() +{ + $serviceProp = []; + $serviceProp['SERVICEPROPERTIES'] ['SERVICE'] = $_REQUEST ['SERVICE']; + $serviceProp['SERVICEPROPERTIES'] ['NAME'] = $_REQUEST ['KEYPAIRNAME']; + $serviceProp['SERVICEPROPERTIES'] ['VALUE'] = $_REQUEST ['KEYPAIRVALUE']; + if (isset($_REQUEST ['PROP'])) { + $serviceProp['SERVICEPROPERTIES'] ['PROP'] = trim($_REQUEST ['PROP']); + } + if (isset($serviceProp['SERVICEPROPERTIES']['NAME'])) { + $serviceProp['SERVICEPROPERTIES']['NAME'] = $serviceProp['SERVICEPROPERTIES']['NAME']; + } + if (isset($serviceProp['SERVICEPROPERTIES']['VALUE'])) { + $serviceProp['SERVICEPROPERTIES']['VALUE'] = $serviceProp['SERVICEPROPERTIES']['VALUE']; + } + return $serviceProp; } /** * Gets the endpoint properties data passed by user */ -function getEndpointPropDataFromWeb() { - $sp = array(); - if (isset($_REQUEST ['PROP'])){ - $sp ['ENDPOINTPROPERTIES'] ['PROP'] = trim($_REQUEST ['PROP']); +function getEndpointPropDataFromWeb() +{ + $endpointProp = array(); + if (isset($_REQUEST ['PROP'])) { + $endpointProp['ENDPOINTPROPERTIES'] ['PROP'] = trim($_REQUEST ['PROP']); } - if(isset($_REQUEST ['ENDPOINTID'])){ - $sp['ENDPOINTPROPERTIES']['ENDPOINTID'] = trim($_REQUEST ['ENDPOINTID']); + if (isset($_REQUEST ['ENDPOINTID'])) { + $endpointProp['ENDPOINTPROPERTIES']['ENDPOINTID'] = trim($_REQUEST ['ENDPOINTID']); } - if(isset($_REQUEST ['KEYPAIRNAME'])){ - $sp['ENDPOINTPROPERTIES']['NAME'] = $_REQUEST ['KEYPAIRNAME']; + if (isset($_REQUEST ['KEYPAIRNAME'])) { + $endpointProp['ENDPOINTPROPERTIES']['NAME'] = $_REQUEST ['KEYPAIRNAME']; } - if(isset($_REQUEST ['KEYPAIRVALUE'])){ - $sp['ENDPOINTPROPERTIES']['VALUE'] = $_REQUEST ['KEYPAIRVALUE']; + if (isset($_REQUEST ['KEYPAIRVALUE'])) { + $endpointProp['ENDPOINTPROPERTIES']['VALUE'] = $_REQUEST ['KEYPAIRVALUE']; } - return $sp; + return $endpointProp; } /** * Gets the service group properties data passed by user * */ -function getSerGroupPropDataFromWeb() { - $sp ['SERVICEGROUPPROPERTIES'] ['SERVICEGROUP'] = $_REQUEST ['SERVICEGROUP']; - $sp ['SERVICEGROUPPROPERTIES'] ['NAME'] = $_REQUEST ['KEYPAIRNAME']; - $sp ['SERVICEGROUPPROPERTIES'] ['VALUE'] = $_REQUEST ['KEYPAIRVALUE']; - if (isset($_REQUEST ['PROP'])){ - $sp ['SERVICEGROUPPROPERTIES'] ['PROP'] = $_REQUEST ['PROP']; - } - return $sp; +function getSerGroupPropDataFromWeb() +{ + $serGroupProp = []; + $serGroupProp['SERVICEGROUPPROPERTIES'] ['SERVICEGROUP'] = $_REQUEST ['SERVICEGROUP']; + $serGroupProp['SERVICEGROUPPROPERTIES'] ['NAME'] = $_REQUEST ['KEYPAIRNAME']; + $serGroupProp['SERVICEGROUPPROPERTIES'] ['VALUE'] = $_REQUEST ['KEYPAIRVALUE']; + if (isset($_REQUEST ['PROP'])) { + $serGroupProp['SERVICEGROUPPROPERTIES'] ['PROP'] = $_REQUEST ['PROP']; + } + return $serGroupProp; } /** * Gets the service endpoint data passed by user * */ -function getEndpointDataFromWeb() { - $endpoint ['SERVICEENDPOINT'] ['SERVICE'] = $_REQUEST ['SERVICE']; - $endpoint ['SERVICEENDPOINT'] ['NAME'] = trim($_REQUEST ['ENDPOINTNAME']); - $endpoint ['SERVICEENDPOINT'] ['URL'] = trim($_REQUEST ['ENDPOINTURL']); - $endpoint ['SERVICEENDPOINT'] ['INTERFACENAME'] = trim($_REQUEST ['ENDPOINTINTERFACENAME']); - if(isset($_REQUEST ['DESCRIPTION'])){ - $endpoint ['SERVICEENDPOINT'] ['DESCRIPTION'] = trim($_REQUEST ['DESCRIPTION']); - } - if (isset($_REQUEST ['ENDPOINTID'])){ - $endpoint ['SERVICEENDPOINT'] ['ENDPOINTID'] = trim($_REQUEST ['ENDPOINTID']); +function getEndpointDataFromWeb() +{ + $endpoint = []; + $endpoint['SERVICEENDPOINT'] ['SERVICE'] = $_REQUEST ['SERVICE']; + $endpoint['SERVICEENDPOINT'] ['NAME'] = trim($_REQUEST ['ENDPOINTNAME']); + $endpoint['SERVICEENDPOINT'] ['URL'] = trim($_REQUEST ['ENDPOINTURL']); + $endpoint['SERVICEENDPOINT'] ['INTERFACENAME'] = trim($_REQUEST ['ENDPOINTINTERFACENAME']); + if (isset($_REQUEST ['DESCRIPTION'])) { + $endpoint['SERVICEENDPOINT'] ['DESCRIPTION'] = trim($_REQUEST ['DESCRIPTION']); + } + if (isset($_REQUEST ['ENDPOINTID'])) { + $endpoint['SERVICEENDPOINT'] ['ENDPOINTID'] = trim($_REQUEST ['ENDPOINTID']); } $endpoint['SERVICEENDPOINT']['EMAIL'] = trim($_REQUEST ['EMAIL']); //The value comes from a checkbox, which wiill not return a value when unchecked - if(isset($_REQUEST['IS_MONITORED'])) { + if (isset($_REQUEST['IS_MONITORED'])) { $endpoint['IS_MONITORED'] = $_REQUEST ['IS_MONITORED']; } else { - $endpoint['IS_MONITORED'] =false; + $endpoint['IS_MONITORED'] = false; } return $endpoint; @@ -643,7 +688,8 @@ function getEndpointDataFromWeb() { /** * Date format used by the calendar Javascript in downtime controllers * */ -function getDateFormat() { +function getDateFormat() +{ return "d/m/Y H:i"; } @@ -653,15 +699,17 @@ function getDateFormat() { * @global array $_REQUEST array containg the post data * @return array */ -function getScopeDataFromWeb() { - $scopeData ['Name'] = trim($_REQUEST ['Name']); - $scopeData ['Description'] = trim($_REQUEST ['Description']); +function getScopeDataFromWeb() +{ + $scopeData = []; + $scopeData['Name'] = trim($_REQUEST ['Name']); + $scopeData['Description'] = trim($_REQUEST ['Description']); // 'Reserved' value is a checkbox ==>> absent if not checked - if (array_key_exists('Reserved', $_REQUEST)){ - $scopeData ['Reserved'] = ($_REQUEST ['Reserved'] == '1'); + if (array_key_exists('Reserved', $_REQUEST)) { + $scopeData['Reserved'] = ($_REQUEST ['Reserved'] == '1'); } - if (array_key_exists('Id', $_REQUEST)){ - $scopeData ['Id'] = $_REQUEST ['Id']; + if (array_key_exists('Id', $_REQUEST)) { + $scopeData['Id'] = $_REQUEST ['Id']; } return $scopeData; @@ -673,16 +721,18 @@ function getScopeDataFromWeb() { * @global array $_REQUEST array containg the post data * @return array $serviceTypeData an array containg the new site data */ -function getSTDataFromWeb() { - $serviceTypeData ['Name'] = trim($_REQUEST ['Name']); - $serviceTypeData ['Description'] = trim($_REQUEST ['Description']); - if(isset($_REQUEST['AllowMonitoringException'])) { - $serviceTypeData ['AllowMonitoringException'] = ($_REQUEST ['AllowMonitoringException'] == "checked"); +function getSTDataFromWeb() +{ + $serviceTypeData = []; + $serviceTypeData['Name'] = trim($_REQUEST ['Name']); + $serviceTypeData['Description'] = trim($_REQUEST ['Description']); + if (isset($_REQUEST['AllowMonitoringException'])) { + $serviceTypeData['AllowMonitoringException'] = ($_REQUEST ['AllowMonitoringException'] == "checked"); } else { - $serviceTypeData ['AllowMonitoringException'] = FALSE; + $serviceTypeData['AllowMonitoringException'] = false; } - if (array_key_exists('ID', $_REQUEST)){ - $serviceTypeData ['ID'] = $_REQUEST ['ID']; + if (array_key_exists('ID', $_REQUEST)) { + $serviceTypeData['ID'] = $_REQUEST ['ID']; } return $serviceTypeData; @@ -694,15 +744,16 @@ function getSTDataFromWeb() { * @global array $_REQUEST array containg the post data * @return array */ -function getAPIAuthenticationFromWeb() { +function getAPIAuthenticationFromWeb() +{ + $authEntityData = []; $authEntityData['TYPE'] = $_REQUEST['TYPE']; $authEntityData['IDENTIFIER'] = trim($_REQUEST['IDENTIFIER']); - $authEntityData['ALLOW_WRITE'] = key_exists('ALLOW_WRITE', $_REQUEST)? - trim($_REQUEST['ALLOW_WRITE']) == 'checked': + $authEntityData['ALLOW_WRITE'] = key_exists('ALLOW_WRITE', $_REQUEST) ? + trim($_REQUEST['ALLOW_WRITE']) == 'checked' : false; return $authEntityData; - } /** * Return information message text @@ -710,7 +761,8 @@ function getAPIAuthenticationFromWeb() { * @return string short message, a dash, supplementary text * e.g. "PROTECTED - Registration required" */ -function getInfoMessage($code = null) { +function getInfoMessage($code = null) +{ if ($code == null) { $code = 'privacy-1'; @@ -728,37 +780,38 @@ function getInfoMessage($code = null) { } if (!array_key_exists($code, $messages)) { - throw new LogicException("Information message code $code has not been defined. Please contact GOCDB administrators."); + throw new LogicException("Information message code $code has not been defined. " . + "Please contact GOCDB administrators."); } return $messages[$code]; - } /** * Helper function to set view parameters for deciding to show personal data * * @return array parameter array */ -function getReadPDParams($user) { - require_once __DIR__.'/../../../lib/Doctrine/entities/User.php'; +function getReadPDParams($user) +{ + require_once __DIR__ . '/../../../lib/Doctrine/entities/User.php'; $userIsAdmin = false; $authenticated = false; /* */ - if(!is_null($user)) { + if (!is_null($user)) { // User will only see personal data if they have a role somewhere // ToDo: should this be restricted to role at a site? if (!$user instanceof \User) { - throw new LogicException("Personal data read authorisation expected User object as input. Received ". get_class($user) . "'."); + throw new LogicException("Personal data read authorisation expected User object as input. Received " . + get_class($user) . "'."); } - if($user->isAdmin()) { + if ($user->isAdmin()) { $userIsAdmin = true; $authenticated = true; - } - elseif (\Factory::getUserService()->isAllowReadPD($user)) { + } elseif (\Factory::getUserService()->isAllowReadPD($user)) { $authenticated = true; } } diff --git a/htdocs/web_portal/views/admin/add_service_type.php b/htdocs/web_portal/views/admin/add_service_type.php index b29e71f03..a9cc34a1a 100644 --- a/htdocs/web_portal/views/admin/add_service_type.php +++ b/htdocs/web_portal/views/admin/add_service_type.php @@ -15,4 +15,5 @@
    - \ No newline at end of file + +Success

    New service type created -

    - + Click here to view the service type. - - diff --git a/htdocs/web_portal/views/admin/edit_service_type.php b/htdocs/web_portal/views/admin/edit_service_type.php index 4afea802f..a2ca48f9e 100644 --- a/htdocs/web_portal/views/admin/edit_service_type.php +++ b/htdocs/web_portal/views/admin/edit_service_type.php @@ -9,7 +9,11 @@ + />
    @@ -66,8 +78,8 @@ + foreach ($services as $se) { + ?> - diff --git a/htdocs/web_portal/views/admin/view_service_types.php b/htdocs/web_portal/views/admin/view_service_types.php index a3caef7f1..dfa3e8b61 100644 --- a/htdocs/web_portal/views/admin/view_service_types.php +++ b/htdocs/web_portal/views/admin/view_service_types.php @@ -10,7 +10,7 @@ - +
    Hostname
    @@ -75,7 +87,8 @@ - getHostname());?> (getServiceType()->getName());?>) + getHostname());?> + (getServiceType()->getName());?>) @@ -83,15 +96,17 @@ getProduction()) { + switch ($se->getProduction()) { case true: ?> - + - + getMonitored()) { + switch ($se->getMonitored()) { case true: ?> - + - + getScopeNamesAsString()); ?>
    @@ -35,14 +37,15 @@ 0)) { - foreach($params['ServiceTypes'] as $serviceType) { - ?> + if ($numberOfServiceTypes > 0) { + foreach ($params['ServiceTypes'] as $serviceType) { + ?> -
    - + getName()); ?> @@ -57,11 +60,15 @@ getDescription()); ?>
    -
    \ No newline at end of file +
    diff --git a/lib/Doctrine/entities/ServiceType.php b/lib/Doctrine/entities/ServiceType.php index 451512782..a3ac63567 100644 --- a/lib/Doctrine/entities/ServiceType.php +++ b/lib/Doctrine/entities/ServiceType.php @@ -24,8 +24,8 @@ * * @Entity @Table(name="ServiceTypes", options={"collate"="utf8mb4_bin", "charset"="utf8mb4"}) */ -class ServiceType { - +class ServiceType +{ /** @Id @Column(type="integer") @GeneratedValue */ protected $id; @@ -43,17 +43,19 @@ class ServiceType { * unmonitored while in production. * @Column(type="boolean", options={"default":FALSE}) */ - protected $allowMonitoringException; + protected $monitoringException; - public function __construct() { + public function __construct() + { $this->services = new ArrayCollection(); - $this->allowMonitoringException = FALSE; + $this->monitoringException = false; } /** * @return int The PK of this entity or null if not persisted */ - public function getId() { + public function getId() + { return $this->id; } @@ -61,7 +63,8 @@ public function getId() { * Get the unique name of this service type. * @return string */ - public function getName() { + public function getName() + { return $this->name; } @@ -69,7 +72,8 @@ public function getName() { * Get the human readable description of this service type. * @return string or null */ - public function getDescription() { + public function getDescription() + { return $this->description; } @@ -77,7 +81,8 @@ public function getDescription() { * Set the unique name of this service type. Required. * @param string $name */ - public function setName($name) { + public function setName($name) + { $this->name = $name; } @@ -85,7 +90,8 @@ public function setName($name) { * Set the human readable description of this service type. * @param string $description */ - public function setDescription($description) { + public function setDescription($description) + { $this->description = $description; } @@ -93,7 +99,8 @@ public function setDescription($description) { * Get all the {@see Service}s that are linked to this service type. * @return ArrayCollection */ - public function getServices() { + public function getServices() + { return $this->services; } @@ -103,7 +110,8 @@ public function getServices() { * to establish the join on both sides of the relationship. * @param \Service $service */ - public function addService($service) { + public function addService($service) + { $this->services[] = $service; $service->setServiceType($this); } @@ -113,24 +121,26 @@ public function addService($service) { * to be unmonitored when in production with a specific Scope. * Return value is the existing boolean state */ - public function setAllowMonitoringException($state) { + public function setAllowMonitoringException($state) + { $oldState = $this->getAllowMonitoringException(); - $this->allowMonitoringException = $state; + $this->monitoringException = $state; return $oldState; } /** * Check if a monitoring exception is allowed within the given scope. */ - public function getAllowMonitoringException() { - return $this->allowMonitoringException; + public function getAllowMonitoringException() + { + return $this->monitoringException; } /** * Gets the name of this service type. * @return string */ - public function __toString() { + public function __toString() + { return $this->getName(); } - } diff --git a/lib/Gocdb_Services/ServiceService.php b/lib/Gocdb_Services/ServiceService.php index 936f71848..451938274 100644 --- a/lib/Gocdb_Services/ServiceService.php +++ b/lib/Gocdb_Services/ServiceService.php @@ -19,6 +19,9 @@ require_once __DIR__ . '/RoleActionAuthorisationService.php'; require_once __DIR__ . '/Config.php'; +use org\gocdb\services\Config; +use org\gocdb\services\Validate; + /** * GOCDB Stateless service facade (business routines) for Service objects. * The public API methods are atomic and transactional. @@ -30,13 +33,17 @@ * @author George Ryall * @author James McCarthy */ -class ServiceService extends AbstractEntityService { - private $roleActionAuthorisationService; +class ServiceService extends AbstractEntityService +{ + // roleActionAuthorisationService + private $roleAAS; private $configService; private $scopeService; - function __construct(/* $roleActionAuthorisationService */) { - parent::__construct (); - // $this->roleActionAuthorisationService = $roleActionAuthorisationService; + + public function __construct(/* $roleAAS */) + { + parent::__construct(); + // $this->roleAAS = $roleActionAuthorisationService; $this->configService = \Factory::getConfigService(); } @@ -44,10 +51,11 @@ function __construct(/* $roleActionAuthorisationService */) { * Set class dependency (REQUIRED). * * @todo Mandatory objects should be injected via constructor. - * @param \org\gocdb\services\RoleActionAuthorisationService $roleActionAuthService + * @param \org\gocdb\services\RoleActionAuthorisationService $newService */ - public function setRoleActionAuthorisationService(RoleActionAuthorisationService $roleActionAuthService) { - $this->roleActionAuthorisationService = $roleActionAuthService; + public function setRoleActionAuthorisationService(RoleActionAuthorisationService $newService) + { + $this->roleAAS = $newService; } /** @@ -56,7 +64,8 @@ public function setRoleActionAuthorisationService(RoleActionAuthorisationService * @todo Mandatory objects should be injected via constructor. * @param \org\gocdb\services\Scope $scopeService */ - public function setScopeService(Scope $scopeService) { + public function setScopeService(Scope $scopeService) + { $this->scopeService = $scopeService; } @@ -66,19 +75,21 @@ public function setScopeService(Scope $scopeService) { * @param int $id the service ID * @return \Service a service object */ - public function getService($id) { + public function getService($id) + { $dql = "SELECT s FROM Service s WHERE s.id = :id"; - $service = $this->em->createQuery ( $dql )->setParameter ( 'id', $id )->getSingleResult (); + $service = $this->em->createQuery($dql)->setParameter('id', $id)->getSingleResult(); return $service; } - public function getEndpoint($id) { + public function getEndpoint($id) + { $dql = "SELECT el FROM EndpointLocation el WHERE el.id = :id"; - $endpoint = $this->em->createQuery ( $dql )->setParameter ( 'id', $id )->getSingleResult (); + $endpoint = $this->em->createQuery($dql)->setParameter('id', $id)->getSingleResult(); return $endpoint; } @@ -103,11 +114,41 @@ public function getEndpoint($id) { * false to return a hydrated Doctine object graph * @return type array graph or object graph of {@link \Service} entities */ - public function getSes($term = null, $serviceType = null, $production = null, $monitored = null, $scope = null, $ngi = null, $certStatus = null, $showClosed = null, $servKeyNames = null, $servKeyValues = null, $startRecord = null, $endRecord = null, $returnArray = false) { + public function getSes( + $term = null, + $serviceType = null, + $production = null, + $monitored = null, + $scope = null, + $ngi = null, + $certStatus = null, + $showClosed = null, + $servKeyNames = null, + $servKeyValues = null, + $startRecord = null, + $endRecord = null, + $returnArray = false + ) { // this method needs to be dropped in favor of getServicesFilterByParams, // but it is still needed when adding services to serviceGroups. - return $this->getServicesHelper ( $term, $serviceType, $production, $monitored, $scope, $ngi, $certStatus, $showClosed, $servKeyNames, $servKeyValues, $startRecord, $endRecord, $returnArray, false ); + + return $this->getServicesHelper( + $term, + $serviceType, + $production, + $monitored, + $scope, + $ngi, + $certStatus, + $showClosed, + $servKeyNames, + $servKeyValues, + $startRecord, + $endRecord, + $returnArray, + false + ); } /** @@ -115,65 +156,131 @@ public function getSes($term = null, $serviceType = null, $production = null, $m * search parameters. * {@link getSes} */ - public function getSesCount($term = null, $serviceType = null, $production = null, $monitored = null, $scope = null, $ngi = null, $certStatus = null, $showClosed = null, $servKeyNames = null, $servKeyValues = null, $startRecord = null, $endRecord = null, $returnArray = false) { - return $this->getServicesHelper ( $term, $serviceType, $production, $monitored, $scope, $ngi, $certStatus, $showClosed, $servKeyNames, $servKeyValues, $startRecord, $endRecord, $returnArray, true ); + + + public function getSesCount( + $term = null, + $serviceType = null, + $production = null, + $monitored = null, + $scope = null, + $ngi = null, + $certStatus = null, + $showClosed = null, + $servKeyNames = null, + $servKeyValues = null, + $startRecord = null, + $endRecord = null, + $returnArray = false + ) { + + return $this->getServicesHelper( + $term, + $serviceType, + $production, + $monitored, + $scope, + $ngi, + $certStatus, + $showClosed, + $servKeyNames, + $servKeyValues, + $startRecord, + $endRecord, + $returnArray, + true + ); } - private function getServicesHelper($term = null, $serviceType = null, $production = null, $monitored = null, $scope = null, $ngi = null, $certStatus = null, $showClosed = null, $servKeyNames = null, $servKeyValues = null, $startRecord = null, $endRecord = null, $returnArray = false, $count = false) { + private function getServicesHelper( + $term = null, + $serviceType = null, + $production = null, + $monitored = null, + $scope = null, + $ngi = null, + $certStatus = null, + $showClosed = null, + $servKeyNames = null, + $servKeyValues = null, + $startRecord = null, + $endRecord = null, + $returnArray = false, + $count = false + ) { // this method can be dropped when getSes and getSesCount have been dropped. if ($production == "TRUE") { $production = "1"; - } else if ($production == "FALSE") { + } elseif ($production == "FALSE") { $production = "0"; } if ($monitored == "TRUE") { $monitored = "1"; - } else if ($monitored == "FALSE") { + } elseif ($monitored == "FALSE") { $monitored = "0"; } - $qb = $this->em->createQueryBuilder (); + $qbr = $this->em->createQueryBuilder(); if ($count) { - $qb->select ( 'count(DISTINCT se)' ); + $qbr->select('count(DISTINCT se)'); } else { - $qb->select ( 'DISTINCT se', 'si', 'st', 'cs', 'n' ); + $qbr->select('DISTINCT se', 'si', 'st', 'cs', 'n'); } - $qb->from ( 'Service', 'se' )->leftjoin ( 'se.serviceType', 'st' )->leftjoin ( 'se.scopes', 's' )->leftjoin ( 'se.parentSite', 'si' )->leftjoin ( 'si.certificationStatus', 'cs' )->leftjoin ( 'si.ngi', 'n' )->orderBy ( 'se.hostName' ); + $qbr->from('Service', 'se') + ->leftjoin('se.serviceType', 'st') + ->leftjoin('se.scopes', 's') + ->leftjoin('se.parentSite', 'si') + ->leftjoin('si.certificationStatus', 'cs') + ->leftjoin('si.ngi', 'n') + ->orderBy('se.hostName'); // For use with search function, convert all terms to upper and do a like query + if ($term != null && $term != '%%') { - $qb->andWhere ( $qb->expr ()->orX ( $qb->expr ()->like ( $qb->expr ()->upper ( 'se.hostName' ), ':term' ), $qb->expr ()->like ( $qb->expr ()->upper ( 'se.description' ), ':term' ) ) )->setParameter ( ':term', strtoupper ( $term ) ); + $qbr->andWhere($qbr->expr()->orX( + $qbr->expr()->like($qbr->expr()->upper('se.hostName'), ':term'), + $qbr->expr()->like($qbr->expr()->upper('se.description'), ':term') + ))->setParameter(':term', strtoupper($term)); } if ($serviceType != null && $serviceType != '%%') { - $qb->andWhere ( $qb->expr ()->like ( $qb->expr ()->upper ( 'st.name' ), ':serviceType' ) )->setParameter ( ':serviceType', strtoupper ( $serviceType ) ); + $qbr->andWhere($qbr->expr()->like( + $qbr->expr()->upper('st.name'), + ':serviceType' + ))->setParameter(':serviceType', strtoupper($serviceType)); } if ($production != null && $production != '%%') { - $qb->andWhere ( $qb->expr ()->like ( $qb->expr ()->upper ( 'se.production' ), ':production' ) )->setParameter ( ':production', $production ); + $qbr->andWhere($qbr->expr()->like($qbr->expr()->upper('se.production'), ':production')) + ->setParameter(':production', $production); } if ($monitored != null && $monitored != '%%') { - $qb->andWhere ( $qb->expr ()->like ( $qb->expr ()->upper ( 'se.monitored' ), ':monitored' ) )->setParameter ( ':monitored', $monitored ); + $qbr->andWhere($qbr->expr()->like($qbr->expr()->upper('se.monitored'), ':monitored')) + ->setParameter(':monitored', $monitored); } if ($scope != null && $scope != '%%') { - $qb->andWhere ( $qb->expr ()->like ( 's.name', ':scope' ) )->setParameter ( ':scope', $scope ); + $qbr->andWhere($qbr->expr()->like('s.name', ':scope')) + ->setParameter(':scope', $scope); } if ($certStatus != null && $certStatus != '%%') { - $qb->andWhere ( $qb->expr ()->like ( 'cs.name', ':certStatus' ) )->setParameter ( ':certStatus', $certStatus ); + $qbr->andWhere($qbr->expr()->like('cs.name', ':certStatus')) + ->setParameter(':certStatus', $certStatus); } if ($showClosed != 1) { - $qb->andWhere ( $qb->expr ()->not ( $qb->expr ()->like ( 'cs.name', ':closed' ) ) )->setParameter ( ':closed', 'Closed' ); + $qbr->andWhere($qbr->expr()->not($qbr->expr()->like('cs.name', ':closed'))) + ->setParameter(':closed', 'Closed'); } if ($ngi != null && $ngi != '%%') { - $qb->andWhere ( $qb->expr ()->like ( 'n.name', ':ngi' ) )->setParameter ( ':ngi', $ngi ); + $qbr->andWhere($qbr->expr()->like('n.name', ':ngi')) + ->setParameter(':ngi', $ngi); } if ($servKeyNames != null && $servKeyNames != '%%') { @@ -181,46 +288,53 @@ private function getServicesHelper($term = null, $serviceType = null, $productio $servKeyValues = '%%'; } - $sQ = $this->em->createQueryBuilder (); - $sQ->select ( 'se1' . '.id' )->from ( 'Service', 'se1' )->join ( 'se1.serviceProperties', 'sp' )->andWhere ( $sQ->expr ()->andX ( $sQ->expr ()->eq ( 'sp.keyName', ':keyname' ), $sQ->expr ()->like ( 'sp.keyValue', ':keyvalue' ) ) ); + $sqbr = $this->em->createQueryBuilder(); + $sqbr->select('se1' . '.id') + ->from('Service', 'se1') + ->join('se1.serviceProperties', 'sp') + ->andWhere($sqbr->expr() + ->andX( + $sqbr->expr()->eq('sp.keyName', ':keyname'), + $sqbr->expr()->like('sp.keyValue', ':keyvalue') + )); - $qb->andWhere ( $qb->expr ()->in ( 'se', $sQ->getDQL () ) ); - $qb->setParameter ( ':keyname', $servKeyNames )->setParameter ( ':keyvalue', $servKeyValues ); + $qbr->andWhere($qbr->expr()->in('se', $sqbr->getDQL())); + $qbr->setParameter(':keyname', $servKeyNames)->setParameter(':keyvalue', $servKeyValues); } - $query = $qb->getQuery (); + $query = $qbr->getQuery(); if ($count) { - $count = $query->getSingleScalarResult (); + $count = $query->getSingleScalarResult(); return $count; } else { - - if (! empty ( $startRecord )) { - $query->setFirstResult ( $startRecord ); + if (! empty($startRecord)) { + $query->setFirstResult($startRecord); } - if (! empty ( $endRecord )) { - $query->setMaxResults ( $endRecord ); + if (! empty($endRecord)) { + $query->setMaxResults($endRecord); } if ($returnArray) { - $results = $query->getResult ( \Doctrine\ORM\Query::HYDRATE_ARRAY ); + $results = $query->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY); return $results; } else { - $results = $query->getResult (); + $results = $query->getResult(); return $results; } // print_r($results); } } - public function getAllSesJoinParentSites() { + public function getAllSesJoinParentSites() + { $dql = "SELECT se, st, si FROM Service se JOIN se.serviceType st JOIN se.parentSite si"; - $query = $this->em->createQuery ( $dql ); - return $query->getResult (); + $query = $this->em->createQuery($dql); + return $query->getResult(); } /** @@ -253,7 +367,8 @@ public function getAllSesJoinParentSites() { * @return mixed Array of {@link \Service} entities or int representing * the service count */ - public function getServicesFilterByParams($filterParams) { + public function getServicesFilterByParams($filterParams) + { $searchTerm = null; $serviceType = null; $production = null; @@ -269,151 +384,177 @@ public function getServicesFilterByParams($filterParams) { $returnArray = false; $count = false; - if (isset ( $filterParams ['searchTerm'] )) { + if (isset($filterParams ['searchTerm'])) { $searchTerm = $filterParams ['searchTerm']; } - if (isset ( $filterParams ['serviceType'] )) { + if (isset($filterParams ['serviceType'])) { $serviceType = $filterParams ['serviceType']; } - if (isset ( $filterParams ['production'] )) { - if (strtoupper ( $filterParams ['production'] ) == "TRUE") { + if (isset($filterParams ['production'])) { + if (strtoupper($filterParams ['production']) == "TRUE") { $production = "1"; - } else if (strtoupper ( $filterParams ['production'] ) == "FALSE") { + } elseif (strtoupper($filterParams ['production']) == "FALSE") { $production = "0"; } } - if (isset ( $filterParams ['monitored'] )) { - if (strtoupper ( $filterParams ['monitored'] ) == "TRUE") { + if (isset($filterParams ['monitored'])) { + if (strtoupper($filterParams ['monitored']) == "TRUE") { $monitored = "1"; - } else if (strtoupper ( $filterParams ['monitored'] ) == "FALSE") { + } elseif (strtoupper($filterParams ['monitored']) == "FALSE") { $monitored = "0"; } } - if (isset ( $filterParams ['scope'] )) { + if (isset($filterParams ['scope'])) { $scope = $filterParams ['scope']; $scopeMatch = 'all'; } - if (isset ( $filterParams ['scopeMatch'] )) { + if (isset($filterParams ['scopeMatch'])) { $scopeMatch = $filterParams ['scopeMatch']; } - if (isset ( $filterParams ['ngi'] )) { + if (isset($filterParams ['ngi'])) { $ngi = $filterParams ['ngi']; } - if (isset ( $filterParams ['certStatus'] )) { + if (isset($filterParams ['certStatus'])) { $certStatus = $filterParams ['certStatus']; } - if (isset ( $filterParams ['showClosed'] ) && $filterParams ['showClosed'] == TRUE) { + if (isset($filterParams ['showClosed']) && $filterParams ['showClosed'] == true) { $showClosed = $filterParams ['showClosed']; } - if (isset ( $filterParams ['servKeyNames'] )) { + if (isset($filterParams ['servKeyNames'])) { $servKeyNames = $filterParams ['servKeyNames']; } - if (isset ( $filterParams ['servKeyValue'] )) { + if (isset($filterParams ['servKeyValue'])) { $servKeyValue = $filterParams ['servKeyValue']; } - if (isset ( $filterParams ['startRecord'] )) { + if (isset($filterParams ['startRecord'])) { $startRecord = $filterParams ['startRecord']; } - if (isset ( $filterParams ['maxResults'] )) { + if (isset($filterParams ['maxResults'])) { $maxResults = $filterParams ['maxResults']; } - if (isset ( $filterParams ['returnArray'] )) { + if (isset($filterParams ['returnArray'])) { $returnArray = $filterParams ['returnArray']; } - if (isset ( $filterParams ['count'] ) && $filterParams ['count'] != null) { + if (isset($filterParams ['count']) && $filterParams ['count'] != null) { $count = $filterParams ['count']; } // bind count - used to create positional bind params. - $bc = - 1; - $qb = $this->em->createQueryBuilder (); + $bCount = - 1; + $qbr = $this->em->createQueryBuilder(); if ($count) { - $qb->select ( 'count(DISTINCT se)' ); + $qbr->select('count(DISTINCT se)'); } else { - $qb->select ( 'DISTINCT se', 'si', 'st', 'cs', 'n' ); + $qbr->select('DISTINCT se', 'si', 'st', 'cs', 'n'); } - $qb->from ( 'Service', 'se' )->leftjoin ( 'se.serviceType', 'st' )->leftjoin ( 'se.scopes', 's' )->leftjoin ( 'se.parentSite', 'si' )->leftjoin ( 'si.certificationStatus', 'cs' )->leftjoin ( 'si.ngi', 'n' )->orderBy ( 'se.hostName' ); + $qbr->from('Service', 'se') + ->leftjoin('se.serviceType', 'st') + ->leftjoin('se.scopes', 's') + ->leftjoin('se.parentSite', 'si') + ->leftjoin('si.certificationStatus', 'cs') + ->leftjoin('si.ngi', 'n') + ->orderBy('se.hostName'); // For use with search function, convert all terms to upper and do a like query + if ($searchTerm != null) { - $qb->andWhere ( $qb->expr ()->orX ( $qb->expr ()->like ( $qb->expr ()->upper ( 'se.hostName' ), '?' . ++ $bc ), $qb->expr ()->like ( $qb->expr ()->upper ( 'se.description' ), '?' . $bc ) ) )->setParameter ( $bc, strtoupper ( $searchTerm ) ); + $qbr->andWhere($qbr->expr() + ->orX( + $qbr->expr()->like( + $qbr->expr()->upper('se.hostName'), + '?' . ++$bCount + ), + $qbr->expr()->like($qbr->expr()->upper('se.description'), '?' . $bCount) + ))->setParameter($bCount, strtoupper($searchTerm)); } if ($serviceType != null) { - $qb->andWhere ( $qb->expr ()->like ( $qb->expr ()->upper ( 'st.name' ), '?' . ++ $bc ) )->setParameter ( $bc, strtoupper ( $serviceType ) ); + $qbr->andWhere($qbr->expr()->like($qbr->expr()->upper('st.name'), '?' . ++$bCount)) + ->setParameter($bCount, strtoupper($serviceType)); } if ($production != null) { - $qb->andWhere ( $qb->expr ()->like ( $qb->expr ()->upper ( 'se.production' ), '?' . ++ $bc ) )->setParameter ( $bc, $production ); + $qbr->andWhere($qbr->expr()->like($qbr->expr()->upper('se.production'), '?' . ++$bCount)) + ->setParameter($bCount, $production); } if ($monitored != null) { - $qb->andWhere ( $qb->expr ()->like ( $qb->expr ()->upper ( 'se.monitored' ), '?' . ++ $bc ) )->setParameter ( $bc, $monitored ); + $qbr->andWhere($qbr->expr()->like($qbr->expr()->upper('se.monitored'), '?' . ++$bCount)) + ->setParameter($bCount, $monitored); } // Create WHERE clauses for multiple scopes using positional bind params if ($scope != null) { require_once __DIR__ . '/PI/QueryBuilders/ScopeQueryBuilder.php'; - $scopeQueryBuilder = new ScopeQueryBuilder ( $scope, $scopeMatch, $qb, $this->em, $bc, 'Service', 'se' ); + $scopeQueryBuilder = new ScopeQueryBuilder($scope, $scopeMatch, $qbr, $this->em, $bCount, 'Service', 'se'); // Get the result of the scope builder - /* @var $qb \Doctrine\ORM\QueryBuilder */ - $qb = $scopeQueryBuilder->getQB (); - $bc = $scopeQueryBuilder->getBindCount (); + /* @var $qbr \Doctrine\ORM\QueryBuilder */ + $qbr = $scopeQueryBuilder->getQB(); + $bCount = $scopeQueryBuilder->getBindCount(); // Get the binds and store them in the local bind array only if any binds are fetched from scopeQueryBuilder - $binds = ( array ) $scopeQueryBuilder->getBinds (); - foreach ( $binds as $bind ) { + $binds = (array) $scopeQueryBuilder->getBinds(); + foreach ($binds as $bind) { $binds [] = $bind; } - foreach ( $binds as $bindIdValue ) { - $qb->setParameter ( $bindIdValue [0], $bindIdValue [1] ); // , \Doctrine\DBAL\Types\Type::STRING ); + foreach ($binds as $bindIdValue) { + $qbr->setParameter($bindIdValue [0], $bindIdValue [1]); // , \Doctrine\DBAL\Types\Type::STRING ); } } if ($certStatus != null) { - $qb->andWhere ( $qb->expr ()->like ( 'cs.name', '?' . ++ $bc ) )->setParameter ( $bc, $certStatus ); + $qbr->andWhere($qbr->expr()->like('cs.name', '?' . ++$bCount))->setParameter($bCount, $certStatus); } if ($showClosed) { // don't add the extra where clause } else { // add a where clause to drop Closed certStatus, i.e. 'WHERE cs.name IS NOT LIKE Closed' - $qb->andWhere ( $qb->expr ()->not ( $qb->expr ()->like ( 'cs.name', '?' . ++ $bc ) ) )->setParameter ( $bc, 'Closed' ); + $qbr->andWhere($qbr->expr()->not($qbr->expr()->like('cs.name', '?' . ++$bCount))) + ->setParameter($bCount, 'Closed'); } if ($ngi != null) { - $qb->andWhere ( $qb->expr ()->like ( 'n.name', '?' . ++ $bc ) )->setParameter ( $bc, $ngi ); + $qbr->andWhere($qbr->expr()->like('n.name', '?' . ++$bCount)) + ->setParameter($bCount, $ngi); } if ($servKeyNames != null) { if ($servKeyValue == null || $servKeyValue == '') { $servKeyValue = '%%'; } - $sQ = $this->em->createQueryBuilder (); - $sQ->select ( 'se_p1' . '.id' )->from ( 'Service', 'se_p1' )->join ( 'se_p1.serviceProperties', 'sp' )->andWhere ( $sQ->expr ()->andX ( $sQ->expr ()->eq ( 'sp.keyName', '?' . ++ $bc ), $sQ->expr ()->like ( 'sp.keyValue', '?' . ++ $bc ) ) ); - $qb->andWhere ( $qb->expr ()->in ( 'se', $sQ->getDQL () ) ); - $qb->setParameter ( $bc - 1, $servKeyNames )->setParameter ( $bc, $servKeyValue ); + $sqbr = $this->em->createQueryBuilder(); + $sqbr->select('se_p1' . '.id') + ->from('Service', 'se_p1') + ->join('se_p1.serviceProperties', 'sp') + ->andWhere($sqbr->expr()->andX( + $sqbr->expr()->eq('sp.keyName', '?' . ++$bCount), + $sqbr->expr()->like('sp.keyValue', '?' . ++$bCount) + )); + + $qbr->andWhere($qbr->expr()->in('se', $sqbr->getDQL())); + $qbr->setParameter($bCount - 1, $servKeyNames)->setParameter($bCount, $servKeyValue); } - $query = $qb->getQuery (); + $query = $qbr->getQuery(); if ($count) { - $count = $query->getSingleScalarResult (); + $count = $query->getSingleScalarResult(); return $count; } else { - if (! empty ( $startRecord )) { - $query->setFirstResult ( $startRecord ); + if (! empty($startRecord)) { + $query->setFirstResult($startRecord); } - if (! empty ( $maxResults )) { - $query->setMaxResults ( $maxResults ); + if (! empty($maxResults)) { + $query->setMaxResults($maxResults); } if ($returnArray) { - $results = $query->getResult ( \Doctrine\ORM\Query::HYDRATE_ARRAY ); + $results = $query->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY); return $results; } else { - $results = $query->getResult (); + $results = $query->getResult(); return $results; } // print_r($results); @@ -426,13 +567,13 @@ public function getServicesFilterByParams($filterParams) { * @param integer $id Service ID * @param integer $dayLimit */ - public function getDowntimes($id, $dayLimit) { + public function getDowntimes($id, $dayLimit) + { if ($dayLimit != null) { - $di = \DateInterval::createFromDateString ( $dayLimit . 'days' ); - $dayLimit = new \DateTime (); - $dayLimit->sub ( $di ); + $dateInterval = \DateInterval::createFromDateString($dayLimit . 'days'); + $dayLimit = new \DateTime(); + $dayLimit->sub($dateInterval); } - // Simplified and updated query for MEPs model by JM&DM - 18/06/2014 $dql = "SELECT d FROM Downtime d @@ -441,7 +582,10 @@ public function getDowntimes($id, $dayLimit) { AND ( :dayLimit IS NULL OR d.startDate > :dayLimit) ORDER BY d.startDate DESC"; - $downtimes = $this->em->createQuery ( $dql )->setParameter ( 'id', $id )->setParameter ( 'dayLimit', $dayLimit )->getResult (); + $downtimes = $this->em->createQuery($dql) + ->setParameter('id', $id) + ->setParameter('dayLimit', $dayLimit) + ->getResult(); // $downtimes = $this->getService($id)->getDowntimes(); return $downtimes; @@ -452,10 +596,11 @@ public function getDowntimes($id, $dayLimit) { * * @return array $types An array of all ServiceType entities */ - public function getServiceTypes() { + public function getServiceTypes() + { $dql = "SELECT st FROM ServiceType st ORDER BY st.name"; - $types = $this->em->createQuery ( $dql )->getResult (); + $types = $this->em->createQuery($dql)->getResult(); return $types; } @@ -470,7 +615,8 @@ public function getServiceTypes() { * is invalid. The \Exception's message will contain a human readable error * message. */ - public function validateProductionMonitoredCombination($serviceType, $production, $monitored) { + public function validateProductionMonitoredCombination($serviceType, $production, $monitored) + { // Service types that are exceptions to the // 'production => monitored' rule. $ruleExceptions = array('VOMS', 'emi.ARGUS', 'org.squid-cache.Squid'); @@ -480,13 +626,16 @@ public function validateProductionMonitoredCombination($serviceType, $production // 'production => monitored'. if ($production && !$monitored) { // Legacy hard-coded rules (as of Jan-20) should be removed - if (!in_array ($serviceTypeName, $ruleExceptions) and - !$serviceType->getAllowMonitoringException()) { + if ( + !in_array($serviceTypeName, $ruleExceptions) and + !$serviceType->getAllowMonitoringException() + ) { throw new \Exception( - "For the '".$serviceTypeName."' service type, if a ". - "service is in Production it must be Monitored. ". - "Contact GOCDB administrators if required to discuss ". - "changing this requirement."); + "For the '" . $serviceTypeName . "' service type, if a " . + "service is in Production it must be Monitored. " . + "Contact GOCDB administrators if required to discuss " . + "changing this requirement." + ); } } } @@ -495,7 +644,7 @@ public function validateProductionMonitoredCombination($serviceType, $production * Updates a Service. * Returns the updated SE * - * Accepts an array $se_data as a parameter. $se_data's format is as follows: + * Accepts an array $newValues as a parameter. $newValues's format is as follows: *
          * Array
          * (
    @@ -521,56 +670,67 @@ public function validateProductionMonitoredCombination($serviceType, $production
          * )
          * 
    * - * @param array $se_data Array of updated service data, specified above. - * return Service The updated service entity + * @param array $newValues Array of updated service data, specified above. + * @return \Service The updated service entity */ - public function editService(\Service $se, $newValues, \User $user = null) { + public function editService(\Service $service, $newValues, \User $user = null) + { require_once __DIR__ . '/../../htdocs/web_portal/components/Get_User_Principle.php'; // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ( $user ); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); + // Authorise the change - if ($this->roleActionAuthorisationService->authoriseAction ( \Action::EDIT_OBJECT, $se->getParentSite (), $user )->getGrantAction () == FALSE) { - throw new \Exception ( "You do not have permission over this service." ); + if ( + $this->roleAAS->authoriseAction( + \Action::EDIT_OBJECT, + $service->getParentSite(), + $user + )->getGrantAction() == false + ) { + throw new \Exception("You do not have permission over this service."); } - $st = $this->getServiceType ( $newValues ['serviceType'] ); - $this->validate ( $newValues ['SE'], 'service' ); - $this->uniqueCheck ( $newValues ['SE'] ['HOSTNAME'], $st, $se->getParentSite () ); + $servType = $this->getServiceType($newValues ['serviceType']); + + $this->validate($newValues ['SE'], 'service'); + $this->uniqueCheck($newValues ['SE'] ['HOSTNAME'], $servType, $service->getParentSite()); // EDIT SCOPE TAGS: // collate selected scopeIds (reserved and non-reserved) $scopeIdsToApply = array (); - foreach ( $newValues ['Scope_ids'] as $sid ) { + foreach ($newValues ['Scope_ids'] as $sid) { $scopeIdsToApply [] = $sid; } - foreach ( $newValues ['ReservedScope_ids'] as $sid ) { + foreach ($newValues ['ReservedScope_ids'] as $sid) { $scopeIdsToApply [] = $sid; } - $selectedScopesToApply = $this->scopeService->getScopes ( $scopeIdsToApply ); + $scopesToApply = $this->scopeService->getScopes($scopeIdsToApply); // If not admin, Check user edits to the service's Reserved scopes: // Required to prevent users manually crafting a POST request in an attempt // to select reserved scopes, this is unlikely but it is a possible hack. - if (! $user->isAdmin ()) { - $selectedReservedScopes = $this->scopeService->getScopesFilterByParams ( array ( + if (! $user->isAdmin()) { + $resScopesToApply = $this->scopeService->getScopesFilterByParams(array ( 'excludeNonReserved' => true - ), $selectedScopesToApply ); - - $existingReservedScopes = $this->scopeService->getScopesFilterByParams ( array ( + ), $scopesToApply); + // Existing reserved scopes + $resScopes = $this->scopeService->getScopesFilterByParams(array ( 'excludeNonReserved' => true - ), $se->getScopes ()->toArray () ); + ), $service->getScopes()->toArray()); - $existingReservedScopesParent = $this->scopeService->getScopesFilterByParams ( array ( + $resScopesParent = $this->scopeService->getScopesFilterByParams(array ( 'excludeNonReserved' => true - ), $se->getParentSite ()->getScopes ()->toArray () ); + ), $service->getParentSite()->getScopes()->toArray()); - foreach ( $selectedReservedScopes as $sc ) { + foreach ($resScopesToApply as $sc) { // Reserved scopes must already be assigned to se or parent - if (! in_array ( $sc, $existingReservedScopes ) && ! in_array ( $sc, $existingReservedScopesParent )) { - throw new \Exception ( "A reserved Scope Tag was selected that " . "is not assigned to the Service or to the Parent Site" ); + + if (! in_array($sc, $resScopes) && ! in_array($sc, $resScopesParent)) { + throw new \Exception("A reserved Scope Tag was selected that " . + "is not assigned to the Service or to the Parent Site"); } } } @@ -580,18 +740,18 @@ public function editService(\Service $se, $newValues, \User $user = null) { $this->checkNumberOfScopes( $this->scopeService->getScopesFilterByParams( array('excludeReserved' => true), - $selectedScopesToApply + $scopesToApply ) ); // validate production/monitored combination $this->validateProductionMonitoredCombination( - $st, + $servType, $this->ptlTexToBool($newValues['PRODUCTION_LEVEL']), $this->ptlTexToBool($newValues['IS_MONITORED']) ); - $updatedServiceValues =array(); + $updatedServiceValues = array(); $updatedServiceValues['hostname'] = $newValues ['SE'] ['HOSTNAME']; $updatedServiceValues['description'] = $newValues ['SE'] ['DESCRIPTION']; $updatedServiceValues['url'] = $newValues['SE']['URL']; @@ -605,29 +765,28 @@ public function editService(\Service $se, $newValues, \User $user = null) { $updatedServiceValues['beta'] = $this->ptlTexToBool($newValues['BETA']); $updatedServiceValues['production'] = $this->ptlTexToBool($newValues['PRODUCTION_LEVEL']); - if (!isset($newValues['NOTIFY'])){ + if (!isset($newValues['NOTIFY'])) { $updatedServiceValues['notify'] = false; - } - else { + } else { $updatedServiceValues['notify'] = $this->ptlTexToBool($newValues['NOTIFY']); } - $this->editServiceLogic($se, $selectedScopesToApply, $st, $updatedServiceValues); + $this->editServiceLogic($service, $scopesToApply, $servType, $updatedServiceValues); - return $se; + return $service; } /** * Function called by write API to edit a service. Provides API specific * authorisation on top of shared logic with web portal - * @param Service $service service being updated + * @param \Service $service service being updated * @param string $hostname service hostname * @param string $description service description * @param string $url service url * @param string $dn service dn - * @param string $ip service IP + * @param string $ip4 service IP (ipV4) * @param string $ip6 serviec IP (ipV6) - * @param string $os service OS + * @param string $opSys service OS * @param string $email service email * @param string $arch service archetecture * @param string $monitored @@ -637,33 +796,51 @@ public function editService(\Service $se, $newValues, \User $user = null) { * @param string $authIdentifierType * @param string $authIdentifier */ - public function editServiceApi(\Service $service, $hostname, $description, $url, $dn, $ip, $ip6, $os, $email, $arch, $monitored, $beta, $production, $notify, $authIdentifierType, $authIdentifier) { + + public function editServiceApi( + \Service $service, + $hostname, + $description, + $url, + $dn, + $ip4, + $ip6, + $opSys, + $email, + $arch, + $monitored, + $beta, + $production, + $notify, + $authIdentifierType, + $authIdentifier + ) { //Check the portal is not in read only mode, throws exception if it is - $this->checkGOCDBIsNotReadOnly(); - - $this->checkAuthorisedAPIIdentifier($service->getParentSite(), $authIdentifier, $authIdentifierType); - - $scopes = clone $service->getScopes(); - $sType = $service->getServiceType(); - $updatedServiceValues = array ( - 'hostname'=>$hostname, - 'description'=>$description, - 'url'=>$url, - 'dn'=>$dn, - 'ip'=>$ip, - 'ip6'=>$ip6, - 'os'=>$os, - 'email'=>$email, - 'arch'=>$arch, - 'monitored'=>$monitored, - 'beta'=>$beta, - 'production'=>$production, - 'notify'=>$notify, - ); - - $this->validateProductionMonitoredCombination($service->getServiceType(), $production, $monitored); - - $this->editServiceLogic($service, $scopes, $sType, $updatedServiceValues); + $this->checkGOCDBIsNotReadOnly(); + + $this->checkAuthorisedAPIIdentifier($service->getParentSite(), $authIdentifier, $authIdentifierType); + + $scopes = clone $service->getScopes(); + $sType = $service->getServiceType(); + $updatedServiceValues = array ( + 'hostname' => $hostname, + 'description' => $description, + 'url' => $url, + 'dn' => $dn, + 'ip' => $ip4, + 'ip6' => $ip6, + 'os' => $opSys, + 'email' => $email, + 'arch' => $arch, + 'monitored' => $monitored, + 'beta' => $beta, + 'production' => $production, + 'notify' => $notify, + ); + + $this->validateProductionMonitoredCombination($service->getServiceType(), $production, $monitored); + + $this->editServiceLogic($service, $scopes, $sType, $updatedServiceValues); } /** @@ -681,7 +858,7 @@ public function editServiceApi(\Service $service, $hostname, $description, $url, * ['dn'] dn of service being updated * ['$ip6'] ip V6 of service being updated * ['ip'] ip of service being updated - * ['$os'] os of service being updated + * ['os'] os of service being updated * ['email'] email of service being updated * ['$arch'] architecture of service being updated * ['$monitored'] boolean monitored of service being updated @@ -690,78 +867,80 @@ public function editServiceApi(\Service $service, $hostname, $description, $url, * ['$notify'] boolean notify value of service being updated * @throws Exception */ - private function editServiceLogic(\Service $service, $scopes, $sType, $updatedServiceValues){ + private function editServiceLogic(\Service $service, $scopes, $sType, $updatedServiceValues) + { // Explicitly demarcate our tx boundary - $this->em->getConnection ()->beginTransaction (); - try { - // Set the service's member variables - $service->setHostName($updatedServiceValues['hostname']); - $service->setDescription($updatedServiceValues['description']); - $service->setUrl($updatedServiceValues['url']); - $service->setDn($updatedServiceValues['dn']); - $service->setIpAddress($updatedServiceValues['ip']); - $service->setIpV6Address($updatedServiceValues['ip6']); - $service->setOperatingSystem($updatedServiceValues['os']); - $service->setEmail($updatedServiceValues['email']); - $service->setArchitecture($updatedServiceValues['arch']); - $service->setMonitored($updatedServiceValues['monitored']); - $service->setBeta($updatedServiceValues['beta']); - $service->setProduction($updatedServiceValues['production']); - $service->setNotify($updatedServiceValues['notify']); - - $service->setServiceType($sType); - - // Update the scope of the service - // firstly remove all existing scope links - $oldScopes = $service->getScopes (); - foreach($oldScopes as $s ) { - $service->removeScope($s); - } - - // find each specified scope and then link it to the specified site - foreach($scopes as $scope) { - $service->addScope($scope); - } - - $this->em->merge($service); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); - throw $e; - } + $this->em->getConnection()->beginTransaction(); + try { + // Set the service's member variables + $service->setHostName($updatedServiceValues['hostname']); + $service->setDescription($updatedServiceValues['description']); + $service->setUrl($updatedServiceValues['url']); + $service->setDn($updatedServiceValues['dn']); + $service->setIpAddress($updatedServiceValues['ip']); + $service->setIpV6Address($updatedServiceValues['ip6']); + $service->setOperatingSystem($updatedServiceValues['os']); + $service->setEmail($updatedServiceValues['email']); + $service->setArchitecture($updatedServiceValues['arch']); + $service->setMonitored($updatedServiceValues['monitored']); + $service->setBeta($updatedServiceValues['beta']); + $service->setProduction($updatedServiceValues['production']); + $service->setNotify($updatedServiceValues['notify']); + + $service->setServiceType($sType); + + // Update the scope of the service + // firstly remove all existing scope links + $oldScopes = $service->getScopes(); + foreach ($oldScopes as $scope) { + $service->removeScope($scope); + } + + // find each specified scope and then link it to the specified site + foreach ($scopes as $scope) { + $service->addScope($scope); + } + + $this->em->merge($service); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); + throw $e; + } } /** * Validates user inputted service data against the * checks in the gocdb_schema.xml. * - * @param array $se_data containing all the fields for a Service + * @param array $seData containing all the fields for a Service * @throws \Exception If the SE data can't be * validated. The \Exception message will contain a human * readable description of which field failed validation. * @return null */ - private function validate($se_data, $type) { + private function validate($seData, $type) + { require_once __DIR__ . '/Validate.php'; - $serv = new \org\gocdb\services\Validate (); - foreach ( $se_data as $field => $value ) { - $valid = $serv->validate ( $type, $field, $value ); + $serv = new Validate(); + foreach ($seData as $field => $value) { + $valid = $serv->validate($type, $field, $value); if (! $valid) { $error = "$field contains an invalid value: $value"; - throw new \Exception ( $error ); + throw new \Exception($error); } } // Apply additional logic for validation that can't be captured solely using gocdb_schema.xml - if (! empty ( $se_data ['HOST_IP_V6'] )) { + if (! empty($seData ['HOST_IP_V6'])) { require_once __DIR__ . '/validation/IPv6Validator.php'; - $validator = new \IPv6Validator (); + $validator = new \IPv6Validator(); $errors = array (); - $errors = $validator->validate ( $se_data ['HOST_IP_V6'], $errors ); - if (count ( $errors ) > 0) { - throw new \Exception ( $errors [0] ); // show the first message. + $errors = $validator->validate($seData ['HOST_IP_V6'], $errors); + if (count($errors) > 0) { + throw new \Exception($errors [0]); // show the first message. } } } @@ -795,86 +974,86 @@ private function validate($se_data, $type) { * @param Array $values Balues for the new SE (defined above) * @param org\gocdb\services\User $user The user adding the SE */ - public function addService($values, \User $user = null) { + public function addService($values, \User $user = null) + { // get the parent site $dql = "SELECT s from Site s WHERE s.id = :id"; /* @var $site \Site */ - $site = $this->em->createQuery ( $dql )->setParameter ( 'id', $values ['hostingSite'] )->getSingleResult (); + $site = $this->em->createQuery($dql)->setParameter('id', $values ['hostingSite'])->getSingleResult(); // get the service type - $st = $this->getServiceType ( $values ['serviceType'] ); + $servType = $this->getServiceType($values ['serviceType']); - if ($this->roleActionAuthorisationService->authoriseAction ( \Action::SITE_ADD_SERVICE, $site, $user )->getGrantAction () == FALSE) { - throw new \Exception ( "You don't have permission to add a service to this site." ); + if ($this->roleAAS->authoriseAction(\Action::SITE_ADD_SERVICE, $site, $user)->getGrantAction() == false) { + throw new \Exception("You don't have permission to add a service to this site."); } - $this->validate ( $values ['SE'], 'service' ); - $this->uniqueCheck ( $values ['SE'] ['HOSTNAME'], $st, $site ); + $this->validate($values ['SE'], 'service'); + $this->uniqueCheck($values ['SE'] ['HOSTNAME'], $servType, $site); // ADD SCOPE TAGS: // collate selected reserved and non-reserved scopeIds. // Note, Reserved scopes can be inherited from the parent Site. $allSelectedScopeIds = array (); - foreach ( $values ['Scope_ids'] as $sid ) { + foreach ($values ['Scope_ids'] as $sid) { $allSelectedScopeIds [] = $sid; } - foreach ( $values ['ReservedScope_ids'] as $sid ) { + foreach ($values ['ReservedScope_ids'] as $sid) { $allSelectedScopeIds [] = $sid; } - $selectedScopesToApply = $this->scopeService->getScopes ( $allSelectedScopeIds ); + $scopesToApply = $this->scopeService->getScopes($allSelectedScopeIds); // If not admin, check that requested reserved scopes are already implemented by the parent Site. // Required to prevent users manually crafting a POST request in an attempt // to select reserved scopes, this is unlikely but it is a possible hack. - if (! $user->isAdmin ()) { - $selectedReservedScopes = $this->scopeService->getScopesFilterByParams ( array ( + if (! $user->isAdmin()) { + $resScopesToApply = $this->scopeService->getScopesFilterByParams(array ( 'excludeNonReserved' => true - ), $selectedScopesToApply ); + ), $scopesToApply); - $existingReservedScopesParent = $this->scopeService->getScopesFilterByParams ( array ( + $resScopesParent = $this->scopeService->getScopesFilterByParams(array ( 'excludeNonReserved' => true - ), $site->getScopes ()->toArray () ); + ), $site->getScopes()->toArray()); - foreach ( $selectedReservedScopes as $sc ) { + foreach ($resScopesToApply as $sc) { // Reserved scopes must already be assigned to parent - if (! in_array ( $sc, $existingReservedScopesParent )) { - throw new \Exception ( "A reserved Scope Tag was selected that is not assigned to the Parent Site" ); + if (! in_array($sc, $resScopesParent)) { + throw new \Exception("A reserved Scope Tag was selected that is not assigned to the Parent Site"); } } } // check there are the required number of OPTIONAL scopes specified - $this->checkNumberOfScopes ( $values ['Scope_ids'] ); + $this->checkNumberOfScopes($values ['Scope_ids']); // validate production/monitored combination $this->validateProductionMonitoredCombination( - $st, + $servType, $this->ptlTexToBool($values['PRODUCTION_LEVEL']), $this->ptlTexToBool($values['IS_MONITORED']) - ); + ); - $this->em->getConnection ()->beginTransaction (); + $this->em->getConnection()->beginTransaction(); try { - $se = new \Service (); - $se->setParentSiteDoJoin ( $site ); - $se->setServiceType ( $st ); + $serv = new \Service(); + $serv->setParentSiteDoJoin($site); + $serv->setServiceType($servType); // Set production - $se->setProduction($this->ptlTexToBool($values['PRODUCTION_LEVEL'])); + $serv->setProduction($this->ptlTexToBool($values['PRODUCTION_LEVEL'])); // Set Beta - $se->setBeta($this->ptlTexToBool($values['BETA'])); + $serv->setBeta($this->ptlTexToBool($values['BETA'])); // Set monitored - $se->setMonitored($this->ptlTexToBool($values['IS_MONITORED'])); + $serv->setMonitored($this->ptlTexToBool($values['IS_MONITORED'])); //Set notify flag for site - if (!isset($values['NOTIFY'])){ - $se->setNotify(false); - } - else{ - $se->setNotify($this->ptlTexToBool($values['NOTIFY'])); + if (!isset($values['NOTIFY'])) { + $serv->setNotify(false); + } else { + $serv->setNotify($this->ptlTexToBool($values['NOTIFY'])); } // Set the scopes @@ -883,30 +1062,30 @@ public function addService($values, \User $user = null) { // $scope = $this->em->createQuery($dql) // ->setParameter('id', $scopeId) // ->getSingleResult(); - // $se->addScope($scope); + // $serv->addScope($scope); // } - foreach ( $selectedScopesToApply as $scope ) { - $se->addScope ( $scope ); + foreach ($scopesToApply as $scope) { + $serv->addScope($scope); } - $se->setDn ( $values ['SE'] ['HOST_DN'] ); - $se->setIpAddress ( $values ['SE'] ['HOST_IP'] ); - $se->setOperatingSystem ( $values ['SE'] ['HOST_OS'] ); - $se->setArchitecture ( $values ['SE'] ['HOST_ARCH'] ); - $se->setHostName ( $values ['SE'] ['HOSTNAME'] ); - $se->setDescription ( $values ['SE'] ['DESCRIPTION'] ); - $se->setEmail ( $values ['SE'] ['EMAIL'] ); - $se->setUrl ( $values ['SE'] ['URL'] ); - - $this->em->persist ( $se ); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $serv->setDn($values ['SE'] ['HOST_DN']); + $serv->setIpAddress($values ['SE'] ['HOST_IP']); + $serv->setOperatingSystem($values ['SE'] ['HOST_OS']); + $serv->setArchitecture($values ['SE'] ['HOST_ARCH']); + $serv->setHostName($values ['SE'] ['HOSTNAME']); + $serv->setDescription($values ['SE'] ['DESCRIPTION']); + $serv->setEmail($values ['SE'] ['EMAIL']); + $serv->setUrl($values ['SE'] ['URL']); + + $this->em->persist($serv); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $e; } - return $se; + return $serv; } /** @@ -920,11 +1099,12 @@ public function addService($values, \User $user = null) { * (as explained by Rajesh Kalmady) * * @param string $hostName New hostname - * @param ServiceType $serviceType New service type - * @param Site $site The site to add the SE to + * @param \ServiceType $serviceType New service type + * @param \Site $site The site to add the SE to * @return null */ - private function uniqueCheck($hostName, \ServiceType $serviceType, \Site $site) { + private function uniqueCheck($hostName, \ServiceType $serviceType, \Site $site) + { // Get all existing services with this hostname and service type, not under this site $dql = "SELECT se from Service se JOIN se.serviceType st @@ -932,29 +1112,15 @@ private function uniqueCheck($hostName, \ServiceType $serviceType, \Site $site) WHERE se.hostName = :hostName AND st.id = :stId AND s.id != :siteId"; - $ses = $this->em->createQuery ( $dql )->setParameter ( 'hostName', $hostName )->setParameter ( 'stId', $serviceType->getId () )->setParameter ( 'siteId', $site->getId () )->getResult (); - if (sizeof ( $ses ) != 0) { - throw new \Exception ( "A $serviceType service named $hostName already exists." ); - } - } + $ses = $this->em->createQuery($dql) + ->setParameter('hostName', $hostName) + ->setParameter('stId', $serviceType->getId()) + ->setParameter('siteId', $site->getId()) + ->getResult(); - /** - * Check that if if the selected scope for this SE is EGI, the parent site - * is also EGI - * - * @param Site $site The SE's parent site - * @param Scope $scope The SE's new scope - * @return null - */ - private function scopeCheck(\Site $site, \Scope $scope) { - // If the scope isn't EGI then don't raise an error - if ($scope->getName () != 'EGI') { - return; - } - - if ($site->getScopes ()->first ()->getName () != "EGI") { - throw new \Exception ( "For this service to be EGI scoped, $site must also be EGI scoped." ); + if (sizeof($ses) != 0) { + throw new \Exception("A $serviceType service named $hostName already exists."); } } @@ -964,19 +1130,21 @@ private function scopeCheck(\Site $site, \Scope $scope) { * @param integer $id The service type ID * @return \ServiceType */ - private function getServiceType($id) { + private function getServiceType($id) + { $dql = "SELECT st FROM ServiceType st WHERE st.id = :id"; - $st = $this->em->createQuery ( $dql )->setParameter ( 'id', $id )->getSingleResult (); - return $st; + $servType = $this->em->createQuery($dql)->setParameter('id', $id)->getSingleResult(); + return $servType; } /** * * @return array of all properties for a service */ - public function getProperties($id) { + public function getProperties($id) + { $dql = "SELECT p FROM ServiceProperty p WHERE p.parentSite = :ID"; - $properties = $this->em->createQuery ( $dql )->setParameter ( 'ID', $id )->getOneOrNullResult (); + $properties = $this->em->createQuery($dql)->setParameter('ID', $id)->getOneOrNullResult(); return $properties; } @@ -984,9 +1152,10 @@ public function getProperties($id) { * * @return a single service property or null if not found */ - public function getProperty($id) { + public function getProperty($id) + { $dql = "SELECT p FROM ServiceProperty p WHERE p.id = :ID"; - $property = $this->em->createQuery ( $dql )->setParameter ( 'ID', $id )->getOneOrNullResult (); + $property = $this->em->createQuery($dql)->setParameter('ID', $id)->getOneOrNullResult(); return $property; } @@ -994,57 +1163,69 @@ public function getProperty($id) { * * @return a single service endpoint property or null if not foud */ - public function getEndpointProperty($id) { + public function getEndpointProperty($id) + { $dql = "SELECT p FROM EndpointProperty p WHERE p.id = :ID"; - $property = $this->em->createQuery ( $dql )->setParameter ( 'ID', $id )->getOneOrNullResult (); + $property = $this->em->createQuery($dql)->setParameter('ID', $id)->getOneOrNullResult(); return $property; } /** * @return \ServiceProperty a single service property */ - public function getServicePropertyByKeyAndParent($key, $parentService) { + public function getServicePropertyByKeyAndParent($key, $parentService) + { $parentServiceID = $parentService->getId(); $dql = "SELECT p FROM ServiceProperty p WHERE p.keyName = :KEY AND p.parentService = :PARENTSERVICEID"; $property = $this->em - ->createQuery ($dql) - ->setParameter ('KEY', $key) - ->setParameter ('PARENTSERVICEID', $parentServiceID) - ->getOneOrNullResult (); + ->createQuery($dql) + ->setParameter('KEY', $key) + ->setParameter('PARENTSERVICEID', $parentServiceID) + ->getOneOrNullResult(); return $property; } /** * @return \SiteProperty a single site property */ - public function getEndpointPropertyByKeyAndParent($key, $parentEndpoint) { + public function getEndpointPropertyByKeyAndParent($key, $parentEndpoint) + { $parentEndpointID = $parentEndpoint->getId(); $dql = "SELECT p FROM EndpointProperty p WHERE p.keyName = :KEY AND p.parentEndpoint = :PARENTENDPOINTID"; $property = $this->em - ->createQuery ($dql) - ->setParameter ('KEY', $key) - ->setParameter ('PARENTENDPOINTID', $parentEndpointID) - ->getOneOrNullResult (); + ->createQuery($dql) + ->setParameter('KEY', $key) + ->setParameter('PARENTENDPOINTID', $parentEndpointID) + ->getOneOrNullResult(); return $property; } /** - * This method will check that a user has edit permissions over a service before allowing a user to add, edit or delete + * This method will check that a user has edit permissions over a service before + * allowing a user to add, edit or delete * any service information. * * @param \User $user * @param \Service $service * @throws \Exception */ - public function validateAddEditDeleteActions(\User $user, \Service $service) { + public function validateAddEditDeleteActions(\User $user, \Service $service) + { // Check to see whether the user has a role that covers this service // if(count($this->authorize Action(\Action::EDIT_OBJECT, $service, $user))==0){ // throw new \Exception("You don't have permission over ". $service->getHostName()); // } - if ($this->roleActionAuthorisationService->authoriseAction ( \Action::EDIT_OBJECT, $service->getParentSite (), $user )->getGrantAction () == FALSE) { - throw new \Exception ( "You don't have permission over service." ); + + if ( + $this->roleAAS->authoriseAction( + \Action::EDIT_OBJECT, + $service->getParentSite(), + $user + )->getGrantAction() == false + ) { + throw new \Exception("You don't have permission over service."); } } @@ -1057,22 +1238,23 @@ public function validateAddEditDeleteActions(\User $user, \Service $service) { * @param bool $preventOverwrite * @throws \Exception */ - public function addProperties(\Service $service, \User $user, array $propArr, $preventOverwrite = false) { + public function addProperties(\Service $service, \User $user, array $propArr, $preventOverwrite = false) + { // Check the portal is not in read only mode, throws exception if it is $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); //Check that the user has the requisite permissions - $this->validateAddEditDeleteActions ($user,$service); + $this->validateAddEditDeleteActions($user, $service); //Make the change - $this->em->getConnection ()->beginTransaction (); + $this->em->getConnection()->beginTransaction(); try { - $this->addPropertiesLogic($service,$propArr,$preventOverwrite); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $this->addPropertiesLogic($service, $propArr, $preventOverwrite); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $e; } } @@ -1082,22 +1264,30 @@ public function addProperties(\Service $service, \User $user, array $propArr, $p * @param \Service $service * @param array $propArr * @param bool $preventOverwrite - * @param string $authenticationType - * @param string $authenticationIdentifier + * @param string $authType + * @param string $authIdentifier * @throws \Exception */ - public function addServicePropertiesAPI(\Service $service, array $propKVArr, $preventOverwrite, $authenticationType, $authenticationIdentifier) { + + public function addServicePropertiesAPI( + \Service $service, + array $propKVArr, + $preventOverwrite, + $authType, + $authIdentifier + ) { //Check the portal is not in read only mode, throws exception if it is $this->checkGOCDBIsNotReadOnly(); // Validate the user has permission to add properties - $this->checkAuthorisedAPIIdentifier($service->getParentSite(), $authenticationIdentifier, $authenticationType); + $this->checkAuthorisedAPIIdentifier($service->getParentSite(), $authIdentifier, $authType); //Convert the property array into the format used by the webportal logic - #TODO: make the web portal use a more sensible format (e.g. array(key=> value), rather than array([1]=>key,array[2]=>value)) - $propArr=array(); + #TODO: make the web portal use a more sensible format + #(e.g. array(key=> value), rather than array([1]=>key,array[2]=>value)) + $propArr = array(); foreach ($propKVArr as $key => $value) { - $propArr[]= array(0=>$key,1=>$value); + $propArr[] = array(0 => $key,1 => $value); } //Add the properties @@ -1121,16 +1311,18 @@ public function addServicePropertiesAPI(\Service $service, array $propKVArr, $pr * @param bool $preventOverwrite * @throws \Exception */ - protected function addPropertiesLogic(\Service $service, array $propArr, $preventOverwrite = false) { - $existingProperties = $service->getServiceProperties (); + protected function addPropertiesLogic(\Service $service, array $propArr, $preventOverwrite = false) + { + $existingProperties = $service->getServiceProperties(); //We will use this variable to track the keys as we go along, this will be used check they are all unique later - $keys=array(); + $keys = array(); - //We will use this variable to track teh final number of properties and ensure we do not exceede the specified limit + // We will use this variable to track teh final number of properties and + // ensure we do not exceede the specified limit $propertyCount = sizeof($existingProperties); - foreach ( $propArr as $i => $prop ) { + foreach ($propArr as $prop) { /*Trim off trailing and leading whitspace - as we currently don't want this. *The input array is awkwardly formatted as keys didn't use to have to be unique. */ @@ -1143,9 +1335,9 @@ protected function addPropertiesLogic(\Service $service, array $propArr, $preven *we will want to edit the existing property later, rather than create it. */ $property = null; - foreach ( $existingProperties as $existProp ) { - if ($existProp->getKeyName () == $key) { - $property=$existProp; + foreach ($existingProperties as $existProp) { + if ($existProp->getKeyName() == $key) { + $property = $existProp; } } @@ -1155,39 +1347,48 @@ protected function addPropertiesLogic(\Service $service, array $propArr, $preven */ if (is_null($property)) { // validate key value + $validateArray = []; $validateArray ['NAME'] = $key; $validateArray ['VALUE'] = $value; - $this->validate ( $validateArray, 'serviceproperty' ); + $this->validate($validateArray, 'serviceproperty'); - $serviceProperty = new \ServiceProperty (); - $serviceProperty->setKeyName ( $key ); - $serviceProperty->setKeyValue ( $value ); - $service->addServicePropertyDoJoin ( $serviceProperty ); - $this->em->persist ( $serviceProperty ); + $serviceProperty = new \ServiceProperty(); + $serviceProperty->setKeyName($key); + $serviceProperty->setKeyValue($value); + $service->addServicePropertyDoJoin($serviceProperty); + $this->em->persist($serviceProperty); //increment the property counter to enable check against property limit $propertyCount++; } elseif (!$preventOverwrite) { - $this->editServicePropertyLogic($service, $property, array('SERVICEPROPERTIES'=>array('NAME'=>$key,'VALUE'=>$value))); + $this->editServicePropertyLogic( + $service, + $property, + array('SERVICEPROPERTIES' => array('NAME' => $key,'VALUE' => $value)) + ); } else { - throw new \Exception("A property with name \"$key\" already exists for this object, no properties were added."); + throw new \Exception( + "A property with name \"$key\" already exists for this object, no properties were added." + ); } - //Add the key to the keys array, to enable unique check - $keys[]=$key; + // Add the key to the keys array, to enable unique check + $keys[] = $key; } - //Keys should be unique, create an exception if they are not - if(count(array_unique($keys))!=count($keys)) { + // Keys should be unique, create an exception if they are not + if (count(array_unique($keys)) != count($keys)) { throw new \Exception( - "Property names should be unique. The requested new properties include multiple properties with the same name." + "Property names should be unique. The requested new properties " . + "include multiple properties with the same name." ); } - //Check to see if adding the new properties will exceed the max limit defined in local_info.xml, and throw an exception if so + // Check to see if adding the new properties will exceed the max limit + // defined in local_info.xml, and throw an exception if so $extensionLimit = \Factory::getConfigService()->getExtensionsLimit(); - if ($propertyCount > $extensionLimit){ + if ($propertyCount > $extensionLimit) { throw new \Exception("Property(s) could not be added due to the property limit of $extensionLimit"); } } @@ -1201,22 +1402,29 @@ protected function addPropertiesLogic(\Service $service, array $propArr, $preven * @param bool $preventOverwrite * @throws \Exception */ - public function addEndpointProperties(\EndpointLocation $endpoint, \User $user, array $propArr, $preventOverwrite = false) { + + public function addEndpointProperties( + \EndpointLocation $endpoint, + \User $user, + array $propArr, + $preventOverwrite = false + ) { + // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ($user); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); //Check the user has the requisite permissions - $this->validateAddEditDeleteActions ($user, $endpoint->getService()); + $this->validateAddEditDeleteActions($user, $endpoint->getService()); //Make the change - $this->em->getConnection ()->beginTransaction (); + $this->em->getConnection()->beginTransaction(); try { - $this->addEndpointPropertiesLogic($endpoint,$propArr,$preventOverwrite); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $this->addEndpointPropertiesLogic($endpoint, $propArr, $preventOverwrite); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $e; } } @@ -1226,22 +1434,37 @@ public function addEndpointProperties(\EndpointLocation $endpoint, \User $user, * @param \EndpointLocation $service * @param array $propArr * @param bool $preventOverwrite - * @param string $authenticationType - * @param string $authenticationIdentifier + * @param string $authType + * @param string $authIdentifier * @throws \Exception */ - public function addEndpointPropertiesAPI(\EndpointLocation $endpoint, array $propKVArr, $preventOverwrite, $authenticationType, $authenticationIdentifier) { + + public function addEndpointPropertiesAPI( + \EndpointLocation $endpoint, + array $propKVArr, + $preventOverwrite, + $authType, + $authIdentifier + ) { + //Check the portal is not in read only mode, throws exception if it is $this->checkGOCDBIsNotReadOnly(); // Validate the user has permission to add properties - $this->checkAuthorisedAPIIdentifier($endpoint->getService()->getParentSite(), $authenticationIdentifier, $authenticationType); + + $this->checkAuthorisedAPIIdentifier( + $endpoint->getService()->getParentSite(), + $authIdentifier, + $authType + ); + //Convert the property array into the format used by the webportal logic - #TODO: make the web portal use a more sensible format (e.g. array(key=> value), rather than array([1]=>key,array[2]=>value)) - $propArr=array(); + # TODO: make the web portal use a more sensible format + # (e.g. array(key=> value), rather than array([1]=>key,array[2]=>value)) + $propArr = array(); foreach ($propKVArr as $key => $value) { - $propArr[]= array(0=>$key,1=>$value); + $propArr[] = array(0 => $key,1 => $value); } //Add the properties @@ -1265,16 +1488,24 @@ public function addEndpointPropertiesAPI(\EndpointLocation $endpoint, array $pro * @param bool $preventOverwrite * @throws \Exception */ - protected function addEndpointPropertiesLogic(\EndpointLocation $endpoint, array $propArr, $preventOverwrite = false) { - $existingProperties = $endpoint->getEndpointProperties (); - //We will use this variable to track the keys as we go along, this will be used check they are all unique later - $keys=array(); + protected function addEndpointPropertiesLogic( + \EndpointLocation $endpoint, + array $propArr, + $preventOverwrite = false + ) { - //We will use this variable to track teh final number of properties and ensure we do not exceede the specified limit + $existingProperties = $endpoint->getEndpointProperties(); + + // We will use this variable to track the keys as we go along, + // this will be used check they are all unique later + $keys = array(); + + // We will use this variable to track the final number of properties + // and ensure we do not exceede the specified limit $propertyCount = sizeof($existingProperties); - foreach ( $propArr as $i => $prop ) { + foreach ($propArr as $prop) { /*Trim off trailing and leading whitspace - as we currently don't want this. *The input array is awkwardly formatted as keys didn't use to have to be unique. */ @@ -1287,8 +1518,8 @@ protected function addEndpointPropertiesLogic(\EndpointLocation $endpoint, array *we will want to edit the existing property later, rather than create it. */ $property = null; - foreach ( $existingProperties as $existProp ) { - if ($existProp->getKeyName () == $key) { + foreach ($existingProperties as $existProp) { + if ($existProp->getKeyName() == $key) { $property = $existProp; } } @@ -1299,40 +1530,48 @@ protected function addEndpointPropertiesLogic(\EndpointLocation $endpoint, array */ if (is_null($property)) { // validate key value + $validateArray = []; $validateArray ['NAME'] = $key; $validateArray ['VALUE'] = $value; - $validateArray ['ENDPOINTID'] = $endpoint->getId (); - $this->validate ( $validateArray, 'endpointproperty' ); + $validateArray ['ENDPOINTID'] = $endpoint->getId(); + $this->validate($validateArray, 'endpointproperty'); - $property = new \EndpointProperty (); - $property->setKeyName ( $key ); - $property->setKeyValue ( $value ); - $endpoint->addEndpointPropertyDoJoin ( $property ); - $this->em->persist ( $property ); + $property = new \EndpointProperty(); + $property->setKeyName($key); + $property->setKeyValue($value); + $endpoint->addEndpointPropertyDoJoin($property); + $this->em->persist($property); //increment the property counter to enable check against property limit $propertyCount++; } elseif (!$preventOverwrite) { - $this->editEndpointPropertyLogic($endpoint->getService(), $property, array('ENDPOINTPROPERTIES'=>array('NAME'=>$key,'VALUE'=>$value))); + $this->editEndpointPropertyLogic( + $endpoint->getService(), + $property, + array('ENDPOINTPROPERTIES' => array('NAME' => $key,'VALUE' => $value)) + ); } else { - throw new \Exception("A property with name \"$key\" already exists for this object, no properties were added."); + throw new \Exception("A property with name \"$key\" already exists for " . + "this object, no properties were added."); } //Add the key to the keys array, to enable unique check - $keys[]=$key; + $keys[] = $key; } - //Keys should be unique, create an exception if they are not - if(count(array_unique($keys))!=count($keys)) { + // Keys should be unique, create an exception if they are not + if (count(array_unique($keys)) != count($keys)) { throw new \Exception( - "Property names should be unique. The requested new properties include multiple properties with the same name." + "Property names should be unique. " . + "The requested new properties include multiple properties with the same name." ); } - //Check to see if adding the new properties will exceed the max limit defined in local_info.xml, and throw an exception if so + // Check to see if adding the new properties will exceed the max limit + // defined in local_info.xml, and throw an exception if so $extensionLimit = \Factory::getConfigService()->getExtensionsLimit(); - if ($propertyCount > $extensionLimit){ + if ($propertyCount > $extensionLimit) { throw new \Exception("Property(s) could not be added due to the property limit of $extensionLimit"); } } @@ -1346,22 +1585,23 @@ protected function addEndpointPropertiesLogic(\EndpointLocation $endpoint, array * @param \User $user * @param array $propArr */ - public function deleteServiceProperties(\Service $service, \User $user, array $propArr) { + public function deleteServiceProperties(\Service $service, \User $user, array $propArr) + { // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ( $user ); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); //Ensure the user has the requisite permissions - $this->validateAddEditDeleteActions ( $user, $service ); + $this->validateAddEditDeleteActions($user, $service); //Make the change - $this->em->getConnection ()->beginTransaction (); + $this->em->getConnection()->beginTransaction(); try { $this->deleteServicePropertiesLogic($service, $propArr); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $e; } } @@ -1373,7 +1613,8 @@ public function deleteServiceProperties(\Service $service, \User $user, array $p * @param \User $user * @param array $propArr */ - public function deleteServicePropertiesAPI(\Service $service, array $propArr, $authIdentifierType, $authIdentifier) { + public function deleteServicePropertiesAPI(\Service $service, array $propArr, $authIdentifierType, $authIdentifier) + { //Check the portal is not in read only mode, throws exception if it is $this->checkGOCDBIsNotReadOnly(); @@ -1404,19 +1645,20 @@ public function deleteServicePropertiesAPI(\Service $service, array $propArr, $a * @param \Service $service * @param array $propArr */ - protected function deleteServicePropertiesLogic(\Service $service, array $propArr) { - foreach ( $propArr as $prop ) { + protected function deleteServicePropertiesLogic(\Service $service, array $propArr) + { + foreach ($propArr as $prop) { // throw new \Exception(var_dump($prop)); // check property is in service - if ($prop->getParentService () != $service) { - $id = $prop->getId (); - throw new \Exception ( "Property {$id} does not belong to the specified service" ); + if ($prop->getParentService() != $service) { + $id = $prop->getId(); + throw new \Exception("Property {$id} does not belong to the specified service"); } // Service is the owning side so remove elements from service. - $service->getServiceProperties ()->removeElement ( $prop ); + $service->getServiceProperties()->removeElement($prop); // Once relationship is removed delete the actual element - $this->em->remove ( $prop ); + $this->em->remove($prop); } } @@ -1428,22 +1670,23 @@ protected function deleteServicePropertiesLogic(\Service $service, array $propAr * @param \User $user * @param array $propArr */ - public function deleteEndpointProperties(\Service $service, \User $user, array $propArr) { + public function deleteEndpointProperties(\Service $service, \User $user, array $propArr) + { // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ( $user ); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); //Check the user has the rquisite permissions - $this->validateAddEditDeleteActions ($user, $service); + $this->validateAddEditDeleteActions($user, $service); // Carry out the change - $this->em->getConnection ()->beginTransaction (); + $this->em->getConnection()->beginTransaction(); try { $this->deleteEndpointPropertiesLogic($service, $propArr); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $e; } } @@ -1455,8 +1698,14 @@ public function deleteEndpointProperties(\Service $service, \User $user, array $ * @param \User $user * @param array $propArr */ - public function deleteEndpointPropertiesAPI(\EndpointLocation $endpoint, array $propArr, $authIdentifierType, $authIdentifier) { - //Check the portal is not in read only mode, throws exception if it is + + public function deleteEndpointPropertiesAPI( + \EndpointLocation $endpoint, + array $propArr, + $authIdentifierType, + $authIdentifier + ) { + // Check the portal is not in read only mode, throws exception if it is $this->checkGOCDBIsNotReadOnly(); $parentService = $endpoint->getService(); @@ -1491,27 +1740,27 @@ public function deleteEndpointPropertiesAPI(\EndpointLocation $endpoint, array $ * @param \Service $service * @param array $propArr */ - protected function deleteEndpointPropertiesLogic(\Service $service, array $propArr) { - foreach ( $propArr as $prop ) { - + protected function deleteEndpointPropertiesLogic(\Service $service, array $propArr) + { + foreach ($propArr as $prop) { // check endpoint property has a parent endpoint - $endpoint = $prop->getParentEndpoint (); + $endpoint = $prop->getParentEndpoint(); if ($endpoint == null) { - $id = $prop->getId (); - throw new \Exception ( "Property {$id} does not have a parent endpoint" ); + $id = $prop->getId(); + throw new \Exception("Property {$id} does not have a parent endpoint"); } if ($endpoint->getService() != $service) { - $id = $prop->getId (); - throw new \Exception ( + $id = $prop->getId(); + throw new \Exception( "Property {$id} does not belong to an endpoint of the specified service" ); } // Endoint is the owning side so remove elements from endpoint. - $endpoint->getEndpointProperties ()->removeElement ( $prop ); + $endpoint->getEndpointProperties()->removeElement($prop); // Once relationship is removed delete the actual element - $this->em->remove ( $prop ); + $this->em->remove($prop); } } @@ -1526,22 +1775,23 @@ protected function deleteEndpointPropertiesLogic(\Service $service, array $propA * @param \ServiceProperty $prop * @param array $newValues */ - public function editServiceProperty(\Service $service, \User $user, \ServiceProperty $prop, $newValues) { + public function editServiceProperty(\Service $service, \User $user, \ServiceProperty $prop, $newValues) + { // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ( $user ); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); // Validate the user has permission to edit properties - $this->validateAddEditDeleteActions ( $user, $service ); + $this->validateAddEditDeleteActions($user, $service); //Make the change - $this->em->getConnection ()->beginTransaction (); + $this->em->getConnection()->beginTransaction(); try { $this->editServicePropertyLogic($service, $prop, $newValues); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $ex ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $ex) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $ex; } } @@ -1556,22 +1806,23 @@ public function editServiceProperty(\Service $service, \User $user, \ServiceProp * @param \ServiceProperty $prop * @param array $newValues */ - protected function editServicePropertyLogic(\Service $service, \ServiceProperty $prop, $newValues) { + protected function editServicePropertyLogic(\Service $service, \ServiceProperty $prop, $newValues) + { - $this->validate ( $newValues ['SERVICEPROPERTIES'], 'serviceproperty' ); + $this->validate($newValues ['SERVICEPROPERTIES'], 'serviceproperty'); //We don't currently want trailing or leading whitespace, so we trim it $keyname = trim($newValues['SERVICEPROPERTIES']['NAME']); $keyvalue = trim($newValues['SERVICEPROPERTIES']['VALUE']); // Check that the prop is from the service - if ($prop->getParentService () != $service) { - $id = $prop->getId (); - throw new \Exception ( "Property {$id} does not belong to the specified service" ); + if ($prop->getParentService() != $service) { + $id = $prop->getId(); + throw new \Exception("Property {$id} does not belong to the specified service"); } //If the properties key has changed, check there isn't an existing property with that key - if ($keyname != $prop->getKeyName()){ + if ($keyname != $prop->getKeyName()) { $existingProperties = $service->getServiceProperties(); foreach ($existingProperties as $existingProp) { if ($existingProp->getKeyName() == $keyname) { @@ -1581,10 +1832,10 @@ protected function editServicePropertyLogic(\Service $service, \ServiceProperty } // Set the service propertys new member variables - $prop->setKeyName ( $keyname ); - $prop->setKeyValue ( $keyvalue ); + $prop->setKeyName($keyname); + $prop->setKeyValue($keyvalue); - $this->em->merge ( $prop ); + $this->em->merge($prop); } /** @@ -1599,22 +1850,23 @@ protected function editServicePropertyLogic(\Service $service, \ServiceProperty * @param array $newValues * @throws \Exception */ - public function editEndpointProperty(\Service $service, \User $user, \EndpointProperty $prop, $newValues) { + public function editEndpointProperty(\Service $service, \User $user, \EndpointProperty $prop, $newValues) + { // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ($user); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); // Validate the user has permission to edit properties - $this->validateAddEditDeleteActions ($user, $service); + $this->validateAddEditDeleteActions($user, $service); //Make the change - $this->em->getConnection ()->beginTransaction (); + $this->em->getConnection()->beginTransaction(); try { $this->editEndpointPropertyLogic($service, $prop, $newValues); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $ex ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $ex) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $ex; } } @@ -1630,22 +1882,23 @@ public function editEndpointProperty(\Service $service, \User $user, \EndpointPr * @param array $newValues * @throws \Exception */ - protected function editEndpointPropertyLogic(\Service $service, \EndpointProperty $prop, $newValues) { + protected function editEndpointPropertyLogic(\Service $service, \EndpointProperty $prop, $newValues) + { - $this->validate ( $newValues ['ENDPOINTPROPERTIES'], 'endpointproperty' ); + $this->validate($newValues ['ENDPOINTPROPERTIES'], 'endpointproperty'); //We don't currently want trailing or leading whitespace, so we trim it $keyname = trim($newValues['ENDPOINTPROPERTIES']['NAME']); $keyvalue = trim($newValues['ENDPOINTPROPERTIES']['VALUE']); // Check that the prop is from the endpoint - if ($prop->getParentEndpoint ()->getService () != $service) { - $id = $prop->getId (); - throw new \Exception ( "Property {$id} does not belong to the specified service endpoint" ); + if ($prop->getParentEndpoint()->getService() != $service) { + $id = $prop->getId(); + throw new \Exception("Property {$id} does not belong to the specified service endpoint"); } //If the properties key has changed, check there isn't an existing property with that key - if ($keyname != $prop->getKeyName()){ + if ($keyname != $prop->getKeyName()) { $existingProperties = $prop->getParentEndpoint()->getEndpointProperties(); foreach ($existingProperties as $existingProp) { if ($existingProp->getKeyName() == $keyname) { @@ -1655,51 +1908,60 @@ protected function editEndpointPropertyLogic(\Service $service, \EndpointPropert } // Set the endpoints propertys new member variables - $prop->setKeyName ( $keyname ); - $prop->setKeyValue ( $keyvalue ); + $prop->setKeyName($keyname); + $prop->setKeyValue($keyvalue); - $this->em->merge ( $prop ); + $this->em->merge($prop); } /** * Deletes a service * - * @param \Service $s To be deleted + * @param \Service $service To be deleted * @param \User $user Making the request * @param $isTest when unit testing this allows for true to be supplied and this method * will not attempt to archive the service which can easily cause errors for service objects without * a full set of information * @throws \Exception If user can't be authorized */ - public function deleteService(\Service $s, \User $user = null, $isTest = false) { + public function deleteService(\Service $service, \User $user = null, $isTest = false) + { require_once __DIR__ . '/../DAOs/ServiceDAO.php'; // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ( $user ); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); + - if ($this->roleActionAuthorisationService->authoriseAction ( \Action::EDIT_OBJECT, $s->getParentSite (), $user )->getGrantAction () == FALSE) { - throw new \Exception ( "You don't have permission to delete service." ); + if ( + $this->roleAAS->authoriseAction( + \Action::EDIT_OBJECT, + $service->getParentSite(), + $user + )->getGrantAction() == false + ) { + throw new \Exception("You don't have permission to delete service."); } - $this->em->getConnection ()->beginTransaction (); + + $this->em->getConnection()->beginTransaction(); try { - $serviceDAO = new \ServiceDAO (); - $serviceDAO->setEntityManager ( $this->em ); + $serviceDAO = new \ServiceDAO(); + $serviceDAO->setEntityManager($this->em); // Archive site - if this is a test then don't archive if ($isTest == false) { // Create entry in audit table - $serviceDAO->addServiceToArchive ( $s, $user ); + $serviceDAO->addServiceToArchive($service, $user); } // Break links with downtimes and remove downtimes only associated // with this service, then remove service - $serviceDAO->removeService ( $s ); + $serviceDAO->removeService($service); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $e; } } @@ -1709,53 +1971,52 @@ public function deleteService(\Service $s, \User $user = null, $isTest = false) * * If the service is already a child of the site, no move is attempted. * - * @param \Service $Service Service to move. - * @param \Site $Site Target site to move the service to. + * @param \Service $service Service to move. + * @param \Site $site Target site to move the service to. * @param \User $user * @throws \Exception * @throws \LogicException */ - public function moveService(\Service $Service, \Site $Site, \User $user = null) { + public function moveService(\Service $service, \Site $site, \User $user = null) + { // Throws exception if user is not an administrator - $this->checkUserIsAdmin ( $user ); + $this->checkUserIsAdmin($user); - $this->em->getConnection ()->beginTransaction (); // suspend auto-commit + $this->em->getConnection()->beginTransaction(); // suspend auto-commit try { // If the site or service have no ID - throw logic exception - $site_id = $Site->getId (); - if (empty ( $site_id )) { - throw new \LogicException ( 'Site has no ID' ); + $siteId = $site->getId(); + if (empty($siteId)) { + throw new \LogicException('Site has no ID'); } - $Service_id = $Service->getId (); - if (empty ( $Service_id )) { - throw new \LogicException ( 'Service has no ID' ); + $serviceId = $service->getId(); + if (empty($serviceId)) { + throw new \LogicException('Service has no ID'); } // find old site - $old_Site = $Service->getParentSite (); + $oldSite = $service->getParentSite(); // If the Site has changed, then we move the service. - if ($old_Site != $Site) { - + if ($oldSite != $site) { // Remove the service from the old site if it has an old site - if (! empty ( $old_Site )) { - - $old_Site->getServices ()->removeElement ( $Service ); + if (! empty($oldSite)) { + $oldSite->getServices()->removeElement($service); } // Add Service to new Site - $Site->addServiceDoJoin ( $Service ); + $site->addServiceDoJoin($service); // persist - $this->em->merge ( $Site ); - $this->em->merge ( $old_Site ); + $this->em->merge($site); + $this->em->merge($oldSite); } // close if - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); throw $e; } } @@ -1765,59 +2026,48 @@ public function moveService(\Service $Service, \Site $Site, \User $user = null) * * @returns boolean */ - public function servicePropSet (\Service $service, $servicePropName) { - switch (strtolower($servicePropName)) { - case 'hostname':{ - $propValue = $service->getHostName(); - break; - } - case 'description':{ - $propValue = $service->getDescription(); - break; - } - case 'url':{ - $propValue = $service->getUrl(); - break; - } - case 'host_dn':{ - $propValue = $service->getDn(); - break; - } - case 'host_ip':{ - $propValue = $service->getIpAddress(); - break; - } - case 'host_ip_v6':{ - $propValue = $service->getIpV6Address(); - break; - } - case 'host_os':{ - $propValue = $service->getOperatingSystem(); - break; - } - case 'email':{ - $propValue = $service->getEmail(); - break; - } - case 'host_arch':{ - $propValue = $service->getArchitecture(); - break; - } - case 'monitored': - case 'beta': - case 'production': - case 'notify': - { - #booleans are always set - return true; - } - default:{ - throw new \Exception("Internal error: service property name ($servicePropName) not ". - "recognised. Please contact a GOCDB administrator and report this error."); - } - } - - return !empty($propValue); + public function servicePropSet(\Service $service, $servicePropName) + { + switch (strtolower($servicePropName)) { + case 'hostname': + $propValue = $service->getHostName(); + break; + case 'description': + $propValue = $service->getDescription(); + break; + case 'url': + $propValue = $service->getUrl(); + break; + case 'host_dn': + $propValue = $service->getDn(); + break; + case 'host_ip': + $propValue = $service->getIpAddress(); + break; + case 'host_ip_v6': + $propValue = $service->getIpV6Address(); + break; + case 'host_os': + $propValue = $service->getOperatingSystem(); + break; + case 'email': + $propValue = $service->getEmail(); + break; + case 'host_arch': + $propValue = $service->getArchitecture(); + break; + case 'monitored': + case 'beta': + case 'production': + case 'notify': + #booleans are always set + return true; + default: + throw new \Exception("Internal error: service property name ($servicePropName) not " . + "recognised. Please contact a GOCDB administrator and report this error."); + } + + return !empty($propValue); } /** @@ -1828,16 +2078,17 @@ public function servicePropSet (\Service $service, $servicePropName) { * @throws Exception * @return \Endpoint */ - public function addEndpoint($values, \User $user = null) { + public function addEndpoint($values, \User $user = null) + { // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ( $user ); - $this->validate ( $values ['SERVICEENDPOINT'], 'endpoint' ); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); + $this->validate($values ['SERVICEENDPOINT'], 'endpoint'); $serviceID = $values ['SERVICEENDPOINT'] ['SERVICE']; - $service = $this->getService ( $serviceID ); + $service = $this->getService($serviceID); // check user has permission to edit endpoint's service - $this->validateAddEditDeleteActions ( $user, $service ); + $this->validateAddEditDeleteActions($user, $service); $name = $values ['SERVICEENDPOINT'] ['NAME']; $url = $values ['SERVICEENDPOINT'] ['URL']; @@ -1848,10 +2099,10 @@ public function addEndpoint($values, \User $user = null) { if ($values ['SERVICEENDPOINT'] ['INTERFACENAME'] != '') { $interfaceName = $values ['SERVICEENDPOINT'] ['INTERFACENAME']; } else { - $interfaceName = ( string ) $service->getServiceType (); + $interfaceName = (string) $service->getServiceType(); } - if($values['IS_MONITORED']) { + if ($values['IS_MONITORED']) { $monitored = true; } else { $monitored = false; @@ -1874,13 +2125,24 @@ public function addEndpoint($values, \User $user = null) { * @param string $authIdentifier Authentication string from API * @param string $authIdentifierType Type of Authentication string */ - public function addEndpointApi(\Service $service, $name, $url, $interfaceName, $description, $email, $monitored, $authIdentifier, $authIdentifierType) { - //Check the portal is not in read only mode, throws exception if it is - $this->checkGOCDBIsNotReadOnly(); - $this->checkAuthorisedAPIIdentifier($service->getParentSite(), $authIdentifier, $authIdentifierType); + public function addEndpointApi( + \Service $service, + $name, + $url, + $interfaceName, + $description, + $email, + $monitored, + $authIdentifier, + $authIdentifierType + ) { + // Check the portal is not in read only mode, throws exception if it is + $this->checkGOCDBIsNotReadOnly(); + + $this->checkAuthorisedAPIIdentifier($service->getParentSite(), $authIdentifier, $authIdentifierType); - $this->addEndpointLogic($service, $name, $url, $interfaceName, $description, $email, $monitored); + $this->addEndpointLogic($service, $name, $url, $interfaceName, $description, $email, $monitored); } /** @@ -1896,36 +2158,37 @@ public function addEndpointApi(\Service $service, $name, $url, $interfaceName, $ * @param boolean $monitored whether endpoint is monitored * @throws \Exception */ - private function addEndpointLogic (\Service $service, $name, $url, $interfaceName, $description, $email, $monitored){ + private function addEndpointLogic(\Service $service, $name, $url, $interfaceName, $description, $email, $monitored) + { - if (empty ( $name )) { - throw new \Exception ( "An endpoint must have a name." ); - } + if (empty($name)) { + throw new \Exception("An endpoint must have a name."); + } // check endpoint's name is unique under the service - if($this->endpointWithNameExists($service, $name)){ - throw new \Exception ( "Please provide a unique name for this Service Endpoint." ); - } - - $this->em->getConnection ()->beginTransaction (); - try { - $endpoint = new \EndpointLocation (); - $endpoint->setName($name); - $endpoint->setUrl($url); - $endpoint->setInterfaceName($interfaceName); - $endpoint->setDescription($description); - $endpoint->setEmail($email); - $endpoint->setMonitored($monitored); - $service->addEndpointLocationDoJoin($endpoint); - $this->em->persist($endpoint); - - $this->em->flush(); - $this->em->getConnection()->commit(); - } catch(\Exception $e) { - $this->em->getConnection()->rollback(); - $this->em->close(); - throw $e; - } - return $endpoint; + if ($this->endpointWithNameExists($service, $name)) { + throw new \Exception("Please provide a unique name for this Service Endpoint."); + } + + $this->em->getConnection()->beginTransaction(); + try { + $endpoint = new \EndpointLocation(); + $endpoint->setName($name); + $endpoint->setUrl($url); + $endpoint->setInterfaceName($interfaceName); + $endpoint->setDescription($description); + $endpoint->setEmail($email); + $endpoint->setMonitored($monitored); + $service->addEndpointLocationDoJoin($endpoint); + $this->em->persist($endpoint); + + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); + throw $e; + } + return $endpoint; } /** @@ -1938,17 +2201,19 @@ private function addEndpointLogic (\Service $service, $name, $url, $interfaceNam * @throws \Exception * @throws Exception */ - public function editEndpoint(\User $user, \EndpointLocation $endpoint, $newValues) { + public function editEndpoint(\User $user, \EndpointLocation $endpoint, $newValues) + { // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ( $user ); - $this->validate ( $newValues ['SERVICEENDPOINT'], 'endpoint' ); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); + $this->validate($newValues ['SERVICEENDPOINT'], 'endpoint'); - //We shouldn't rely on the service being given to the function - this allows bugs to be introduced that feed the wrong service - //TODO: remove the $service from the endpoint parameters - $service = $endpoint->getService (); + // We shouldn't rely on the service being given to the function - this + // allows bugs to be introduced that feed the wrong service + // TODO: remove the $service from the endpoint parameters + $service = $endpoint->getService(); // check user has permission to edit endpoint's service - $this->validateAddEditDeleteActions ( $user, $service ); + $this->validateAddEditDeleteActions($user, $service); $name = $newValues ['SERVICEENDPOINT'] ['NAME']; $url = $newValues ['SERVICEENDPOINT'] ['URL']; @@ -1956,7 +2221,7 @@ public function editEndpoint(\User $user, \EndpointLocation $endpoint, $newValue $email = $newValues['SERVICEENDPOINT']['EMAIL']; $interfaceName = $newValues ['SERVICEENDPOINT'] ['INTERFACENAME']; - if($newValues['IS_MONITORED']) { + if ($newValues['IS_MONITORED']) { $monitored = true; } else { $monitored = false; @@ -1978,14 +2243,30 @@ public function editEndpoint(\User $user, \EndpointLocation $endpoint, $newValue * @param string $authIdentifier Authentication string from API * @param string $authIdentifierType Type of Authentication string */ - public function editEndpointApi (\EndpointLocation $endpoint, $name, $url, $interfaceName, $description, $email, $monitored, $authIdentifier, $authIdentifierType) { - //Check the portal is not in read only mode, throws exception if it is - $this->checkGOCDBIsNotReadOnly(); - $this->checkAuthorisedAPIIdentifier($endpoint->getService()->getParentSite(), $authIdentifier, $authIdentifierType); + public function editEndpointApi( + \EndpointLocation $endpoint, + $name, + $url, + $interfaceName, + $description, + $email, + $monitored, + $authIdentifier, + $authIdentifierType + ) { + // Check the portal is not in read only mode, throws exception if it is + $this->checkGOCDBIsNotReadOnly(); - $this->editEndpointLogic($endpoint, $name, $url, $interfaceName, $description, $email, $monitored); + $this->checkAuthorisedAPIIdentifier( + $endpoint->getService()->getParentSite(), + $authIdentifier, + $authIdentifierType + ); + + + $this->editEndpointLogic($endpoint, $name, $url, $interfaceName, $description, $email, $monitored); } /** @@ -2000,44 +2281,54 @@ public function editEndpointApi (\EndpointLocation $endpoint, $name, $url, $inte * @param boolean $monitored whether endpoint is monitored * @throws \Exception */ - private function editEndpointLogic (\EndpointLocation $endpoint, $name, $url, $interfaceName, $description, $email, $monitored){ - $service = $endpoint->getService (); - if (empty ( $name )) { - throw new \Exception ( "An endpoint must have a name." ); - } + private function editEndpointLogic( + \EndpointLocation $endpoint, + $name, + $url, + $interfaceName, + $description, + $email, + $monitored + ) { + + $service = $endpoint->getService(); + + if (empty($name)) { + throw new \Exception("An endpoint must have a name."); + } //if no interface name is provided, default to service type - if ($interfaceName == '') { - $interfaceName = ( string ) $service->getServiceType (); - } + if ($interfaceName == '') { + $interfaceName = (string) $service->getServiceType(); + } // check endpoint's name is unique under the service - foreach ( $service->getEndpointLocations () as $endpointL ) { - // exclude itself - if ($endpoint != $endpointL && $endpointL->getName () == $name) { - throw new \Exception ( "Please provide a unique name for this endpoint." ); - } - } - - $this->em->getConnection ()->beginTransaction (); - - try { - // Set the endpoints new member variables - $endpoint->setName ( $name ); - $endpoint->setUrl ( $url ); - $endpoint->setInterfaceName ( $interfaceName ); - $endpoint->setDescription ( $description ); - $endpoint->setEmail($email); - $endpoint->setMonitored($monitored); - $this->em->merge ( $endpoint ); - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $ex ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); - throw $ex; - } + foreach ($service->getEndpointLocations() as $endpointL) { + // exclude itself + if ($endpoint != $endpointL && $endpointL->getName() == $name) { + throw new \Exception("Please provide a unique name for this endpoint."); + } + } + + $this->em->getConnection()->beginTransaction(); + + try { + // Set the endpoints new member variables + $endpoint->setName($name); + $endpoint->setUrl($url); + $endpoint->setInterfaceName($interfaceName); + $endpoint->setDescription($description); + $endpoint->setEmail($email); + $endpoint->setMonitored($monitored); + $this->em->merge($endpoint); + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $ex) { + $this->em->getConnection()->rollback(); + $this->em->close(); + throw $ex; + } } /** @@ -2047,15 +2338,16 @@ private function editEndpointLogic (\EndpointLocation $endpoint, $name, $url, $i * @param \User $user * @throws Exception */ - public function deleteEndpoint(\EndpointLocation $endpoint, \User $user) { + public function deleteEndpoint(\EndpointLocation $endpoint, \User $user) + { // Check the portal is not in read only mode, throws exception if it is - $this->checkPortalIsNotReadOnlyOrUserIsAdmin ( $user ); + $this->checkPortalIsNotReadOnlyOrUserIsAdmin($user); - $service = $endpoint->getService (); + $service = $endpoint->getService(); // check user has permission to edit endpoint's service - $this->validateAddEditDeleteActions ( $user, $service ); + $this->validateAddEditDeleteActions($user, $service); $this->deleteEndpointLogic($endpoint); } @@ -2063,43 +2355,51 @@ public function deleteEndpoint(\EndpointLocation $endpoint, \User $user) { /** * Function called from API to delete an endpoint * - * @param EndpointLocation $endpoint endpoint to be deleted - * @param Service $service service of endpoint being deleted + * @param \EndpointLocation $endpoint endpoint to be deleted + * @param \Service $service service of endpoint being deleted * @thows Exception */ - public function deleteEndpointAPI (\EndpointLocation $endpoint, $authIdentifier, $authIdentifierType) { - //Check the portal is not in read only mode, throws exception if it is - $this->checkGOCDBIsNotReadOnly(); + public function deleteEndpointAPI(\EndpointLocation $endpoint, $authIdentifier, $authIdentifierType) + { + // Check the portal is not in read only mode, throws exception if it is + $this->checkGOCDBIsNotReadOnly(); - //Check authorisation - $this->checkAuthorisedAPIIdentifier($endpoint->getService()->getParentSite(), $authIdentifier, $authIdentifierType); + // Check authorisation + + $this->checkAuthorisedAPIIdentifier( + $endpoint->getService()->getParentSite(), + $authIdentifier, + $authIdentifierType + ); - //Make the change - $this->deleteEndpointLogic($endpoint); + + // Make the change + $this->deleteEndpointLogic($endpoint); } /** * Logic to delete an endpoint, abstracted array from authorisation and validation * - * @param EndpointLocation $endpoint endpoint to delete - * @throws Exception + * @param \EndpointLocation $endpoint endpoint to delete + * @throws \Exception */ - private function deleteEndpointLogic (\EndpointLocation $endpoint) { - require_once __DIR__ . '/../DAOs/ServiceDAO.php'; - - $this->em->getConnection ()->beginTransaction (); - try { - $serviceDAO = new \ServiceDAO (); - $serviceDAO->setEntityManager ( $this->em ); - $serviceDAO->removeEndpoint ( $endpoint ); - - $this->em->flush (); - $this->em->getConnection ()->commit (); - } catch ( \Exception $e ) { - $this->em->getConnection ()->rollback (); - $this->em->close (); - throw $e; - } + private function deleteEndpointLogic(\EndpointLocation $endpoint) + { + require_once __DIR__ . '/../DAOs/ServiceDAO.php'; + + $this->em->getConnection()->beginTransaction(); + try { + $serviceDAO = new \ServiceDAO(); + $serviceDAO->setEntityManager($this->em); + $serviceDAO->removeEndpoint($endpoint); + + $this->em->flush(); + $this->em->getConnection()->commit(); + } catch (\Exception $e) { + $this->em->getConnection()->rollback(); + $this->em->close(); + throw $e; + } } /** @@ -2107,39 +2407,33 @@ private function deleteEndpointLogic (\EndpointLocation $endpoint) { * * @returns boolean */ - public function EndpointPropSet (\EndpointLocation $endpoint, $endpointPropName) { - switch (strtolower($endpointPropName)) { - case 'name':{ - $propValue = $endpoint->getName(); - break; - } - case 'url':{ - $propValue = $endpoint->getUrl(); - break; - } - case 'interfacename':{ - $propValue = $endpoint->getInterfaceName(); - break; - } - case 'description':{ - $propValue = $endpoint->getDescription(); - break; - } - case 'email':{ - $propValue = $endpoint->getEmail(); - break; - } - case 'monitored': { - #booleans are always set - return true; - } - default:{ - throw new \Exception("Internal error: endpoint property name ($endpointPropName) not ". - "recognised. Please contact a GOCDB administrator and report this error."); - } - } - - return !empty($propValue); + public function endpointPropSet(\EndpointLocation $endpoint, $endpointPropName) + { + switch (strtolower($endpointPropName)) { + case 'name': + $propValue = $endpoint->getName(); + break; + case 'url': + $propValue = $endpoint->getUrl(); + break; + case 'interfacename': + $propValue = $endpoint->getInterfaceName(); + break; + case 'description': + $propValue = $endpoint->getDescription(); + break; + case 'email': + $propValue = $endpoint->getEmail(); + break; + case 'monitored': + #booleans are always set + return true; + default: + throw new \Exception("Internal error: endpoint property name ($endpointPropName) not " . + "recognised. Please contact a GOCDB administrator and report this error."); + } + + return !empty($propValue); } /** @@ -2150,13 +2444,14 @@ public function EndpointPropSet (\EndpointLocation $endpoint, $endpointPropName) * @param string $name endpoint name being checked * @return boolean */ - public function endpointWithNameExists (\Service $service, $name) { - foreach ($service->getEndpointLocations() as $endpoint) { - if ($name == $endpoint->getName()){ - return true; + public function endpointWithNameExists(\Service $service, $name) + { + foreach ($service->getEndpointLocations() as $endpoint) { + if ($name == $endpoint->getName()) { + return true; + } } - } - return false; + return false; } /** @@ -2168,24 +2463,25 @@ public function endpointWithNameExists (\Service $service, $name) { * @return \Endpoint endpoint * @throws \Exception */ - public function getEndpointByName (\Service $service, $name) { - foreach ($service->getEndpointLocations() as $endpoint) { - if ($name == $endpoint->getName()){ - return $endpoint; + public function getEndpointByName(\Service $service, $name) + { + foreach ($service->getEndpointLocations() as $endpoint) { + if ($name == $endpoint->getName()) { + return $endpoint; + } } - } - - //If the endpoint wasn't found, throw exceptions - throw new \Exception("Endpoint not found"); + // If the endpoint wasn't found, throw exceptions + throw new \Exception("Endpoint not found"); } - private function checkNumberOfScopes($scopeIds) { - require_once __DIR__ . '/Config.php'; - $configService = new \org\gocdb\services\Config (); - $minumNumberOfScopes = $configService->getMinimumScopesRequired ( 'service' ); - if (sizeof ( $scopeIds ) < $minumNumberOfScopes) { - throw new \Exception ( "A service must have at least " . $minumNumberOfScopes . " optional scope(s) assigned to it." ); + private function checkNumberOfScopes($scopeIds) + { + $configService = new Config(); + $minumNumberOfScopes = $configService->getMinimumScopesRequired('service'); + if (sizeof($scopeIds) < $minumNumberOfScopes) { + throw new \Exception("A service must have at least " . $minumNumberOfScopes . + " optional scope(s) assigned to it."); } } @@ -2198,37 +2494,38 @@ private function checkNumberOfScopes($scopeIds) { * @param \Service $service * @return associative array */ - public function getScopesWithParentScopeInfo(\Service $service) { - $parentSite = $service->getParentSite (); - $parentScopes = $parentSite->getScopes (); - $childScopes = $service->getScopes (); + public function getScopesWithParentScopeInfo(\Service $service) + { + $parentSite = $service->getParentSite(); + $parentScopes = $parentSite->getScopes(); + $childScopes = $service->getScopes(); $parentScopesNames = array (); - foreach ( $parentScopes as $parentScope ) { - $parentScopesNames [] = $parentScope->getName (); + foreach ($parentScopes as $parentScope) { + $parentScopesNames[] = $parentScope->getName(); } $childScopesNames = array (); - foreach ( $childScopes as $childScope ) { - $childScopesNames [] = $childScope->getName (); + foreach ($childScopes as $childScope) { + $childScopesNames[] = $childScope->getName(); } - $sharedScopesNames = array_intersect ( $childScopesNames, $parentScopesNames ); + $sharedScopesNames = array_intersect($childScopesNames, $parentScopesNames); - $scopeNamesNotShared = array_diff ( $childScopesNames, $parentScopesNames ); - - $ScopeNamesAndParentShareInfo = array (); - foreach ( $sharedScopesNames as $sharedScopesName ) { - $ScopeNamesAndParentShareInfo [$sharedScopesName] = true; + $scopeNamesNotShared = array_diff($childScopesNames, $parentScopesNames); + // scopeNamesAndParentShareInfo + $shareInfo = array(); + foreach ($sharedScopesNames as $sharedScopesName) { + $shareInfo[$sharedScopesName] = true; } - foreach ( $scopeNamesNotShared as $scopeNameNotShared ) { - $ScopeNamesAndParentShareInfo [$scopeNameNotShared] = false; + foreach ($scopeNamesNotShared as $scopeNameNotShared) { + $shareInfo[$scopeNameNotShared] = false; } - // can be replaced with ksort($ScopeNamesAndParentShareInfo, SORT_NATURAL); in php>=5.5 - uksort ( $ScopeNamesAndParentShareInfo, 'strcasecmp' ); + // can be replaced with ksort($shareInfo, SORT_NATURAL); in php>=5.5 + uksort($shareInfo, 'strcasecmp'); - return $ScopeNamesAndParentShareInfo; + return $shareInfo; } /** @@ -2237,11 +2534,12 @@ public function getScopesWithParentScopeInfo(\Service $service) { * @param string $text string, usually "Y" or "N" * @return boolean */ - private function ptlTexToBool($text) { - if ($text == "Y") { - return true; - } else { - return false; - } + private function ptlTexToBool($text) + { + if ($text == "Y") { + return true; + } else { + return false; + } } } diff --git a/lib/Gocdb_Services/ServiceType.php b/lib/Gocdb_Services/ServiceType.php index c70241ce0..5eabacef6 100644 --- a/lib/Gocdb_Services/ServiceType.php +++ b/lib/Gocdb_Services/ServiceType.php @@ -116,7 +116,7 @@ public function deleteServiceType(\ServiceType $serviceType, \User $user = null) * @param array $newValues array containing the name and description for the * new service type * @param \user $user User adding the service type, used for permissions check - * @return \org\gocdb\services\ServiceType returns created service type + * @return \ServiceType returns created service type */ public function addServiceType($values, \user $user = null){ //Check the portal is not in read only mode, throws exception if it is @@ -274,5 +274,3 @@ private function validate($serviceTypeData) { } } } - - diff --git a/tests/DoctrineTestSuite1.php b/tests/DoctrineTestSuite1.php index d0c0f8a1c..4942397e5 100644 --- a/tests/DoctrineTestSuite1.php +++ b/tests/DoctrineTestSuite1.php @@ -64,9 +64,9 @@ public static function suite() $suite->addTestSuite('RoleActionAuthorisationServiceTest'); $suite->addTestSuite('RoleActionMappingServiceTest'); $suite->addTestSuite('ScopeServiceTest'); - $suite->addTestSuite('ServiceServiceTest'); - $suite->addTestSuite('ServiceTypeTest'); - $suite->addTestSuite('ServiceTypeServiceTest'); + $suite->addTestSuite('org\gocdb\tests\ServiceServiceTest'); + $suite->addTestSuite('org\gocdb\tests\ServiceTypeTest'); + $suite->addTestSuite('org\gocdb\tests\ServiceTypeServiceTest'); $suite->addTestSuite('UserServiceTest'); $suite->addTestSuite('org\gocdb\tests\SiteServiceTest'); $suite->addTestSuite('RoleServiceTest2'); diff --git a/tests/doctrine/ServiceTypeTest.php b/tests/doctrine/ServiceTypeTest.php index 8ec733b20..801dcaa9a 100644 --- a/tests/doctrine/ServiceTypeTest.php +++ b/tests/doctrine/ServiceTypeTest.php @@ -1,11 +1,17 @@ createFlatXMLDataSet(dirname(__FILE__) . '/truncateDataTables.xml'); } /** * Overridden. */ - protected function getSetUpOperation() { + protected function getSetUpOperation() + { // CLEAN_INSERT is default //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); @@ -64,7 +74,8 @@ protected function getSetUpOperation() { /** * Overridden. */ - protected function getTearDownOperation() { + protected function getTearDownOperation() + { // NONE is default return PHPUnit_Extensions_Database_Operation_Factory::NONE(); } @@ -73,7 +84,8 @@ protected function getTearDownOperation() { * Sets up the fixture, e.g create a new entityManager for each test run * This method is called before each test method is executed. */ - protected function setUp() { + protected function setUp() + { parent::setUp(); $this->em = $this->createEntityManager(); } @@ -82,7 +94,9 @@ protected function setUp() { * @todo Still need to setup connection to different databases. * @return EntityManager */ - private function createEntityManager() { + private function createEntityManager() + { + $entityManager = null; require dirname(__FILE__) . '/bootstrap_doctrine.php'; return $entityManager; } @@ -91,7 +105,8 @@ private function createEntityManager() { * Called after setUp() and before each test. Used for common assertions * across all tests. */ - protected function assertPreConditions() { + protected function assertPreConditions() + { $con = $this->getConnection(); $fixture = dirname(__FILE__) . '/truncateDataTables.xml'; $tables = simplexml_load_file($fixture); @@ -101,34 +116,33 @@ protected function assertPreConditions() { $sql = "SELECT * FROM " . $tableName->getName(); $result = $con->createQueryTable('results_table', $sql); //echo 'row count: '.$result->getRowCount() ; - if ($result->getRowCount() != 0) + if ($result->getRowCount() != 0) { throw new RuntimeException("Invalid fixture. Table has rows: " . $tableName->getName()); + } } } /** * Any function with test at the start of the name will execute with PHPUnit */ - public function testServiceType() { + public function testServiceType() + { print __METHOD__ . "\n"; - /** + /** * Check some logic related to monitoring exceptions in ServiceType entity */ $type1 = TestUtil::createSampleServiceType( - 'this is a test serviceType', - 'type1'); - - // Default assumed to disallow monitoring exception + 'this is a test serviceType', + 'type1' + ); + + // Default assumed to disallow monitoring exception $this->assertEquals($type1->getAllowMonitoringException(), 0); - // Set to true and check return is the current state - $this->assertEquals($type1->setAllowMonitoringException(1),0); + // Set to true and check return is the current state + $this->assertEquals($type1->setAllowMonitoringException(1), 0); // Check that it's changed $this->assertEquals($type1->getAllowMonitoringException(), 1); - } } - - -?> diff --git a/tests/unit/lib/Gocdb_Services/ServiceServiceTest.php b/tests/unit/lib/Gocdb_Services/ServiceServiceTest.php index 6bb2da66e..4be36998b 100644 --- a/tests/unit/lib/Gocdb_Services/ServiceServiceTest.php +++ b/tests/unit/lib/Gocdb_Services/ServiceServiceTest.php @@ -1,33 +1,39 @@ createFlatXMLDataSet(__DIR__ . '/../../../doctrine/truncateDataTables.xml'); } /** * Overridden. */ - protected function getSetUpOperation() { + protected function getSetUpOperation() + { // CLEAN_INSERT is default //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); @@ -69,7 +78,8 @@ protected function getSetUpOperation() { /** * Overridden. */ - protected function getTearDownOperation() { + protected function getTearDownOperation() + { // NONE is default return PHPUnit_Extensions_Database_Operation_Factory::NONE(); } @@ -78,7 +88,8 @@ protected function getTearDownOperation() { * Sets up the fixture, e.g create a new entityManager for each test run * This method is called before each test method is executed. */ - protected function setUp() { + protected function setUp() + { parent::setUp(); $this->em = $this->createEntityManager(); /** @@ -101,9 +112,10 @@ protected function tearDown() * @todo Still need to setup connection to different databases. * @return EntityManager */ - private function createEntityManager() { + private function createEntityManager() + { // Initialise to avoid unused variable warnings - $entityManager = NULL; + $entityManager = null; require __DIR__ . '/../../../doctrine/bootstrap_doctrine.php'; return $entityManager; } @@ -112,7 +124,8 @@ private function createEntityManager() { * Called after setUp() and before each test. Used for common assertions * across all tests. */ - protected function assertPreConditions() { + protected function assertPreConditions() + { /** * Checks that all tables are empty before we start a test. */ @@ -123,36 +136,37 @@ protected function assertPreConditions() { foreach ($tables as $tableName) { $sql = "SELECT * FROM " . $tableName->getName(); $result = $con->createQueryTable('results_table', $sql); - if ($result->getRowCount() != 0) + if ($result->getRowCount() != 0) { throw new RuntimeException("Invalid fixture. Table has rows: " . $tableName->getName()); + } } - } - private function createTestData() { + private function createTestData() + { //$project1 = new \Project("project1"); //$this->em->persist($project1); //$ngi1 = TestUtil::createSampleNGI("ngi1"); //$this->em->persist($ngi1); - $pk = new \PrimaryKey(); - $this->em->persist($pk); + $pKey = new \PrimaryKey(); + $this->em->persist($pKey); $this->em->flush(); $site1 = TestUtil::createSampleSite("site1"); $this->em->persist($site1); - $site1->setPrimaryKey($pk->getId()); + $site1->setPrimaryKey($pKey->getId()); $service1 = TestUtil::createSampleService("service1"); $this->em->persist($service1); - $type1 = TestUtil::createSampleServiceType("sample service type","servicetype1"); + $type1 = TestUtil::createSampleServiceType("sample service type", "servicetype1"); $this->em->persist($type1); - $user1 = TestUtil::createSampleUser("forename1","surname1","/cn=dummy1"); + $user1 = TestUtil::createSampleUser("forename1", "surname1", "/cn=dummy1"); $this->em->persist($user1); - $user1->setAdmin(TRUE); + $user1->setAdmin(true); $scope1 = TestUtil::createSampleScope("sample scope1", "scope1"); $this->em->persist($scope1); @@ -170,9 +184,9 @@ private function createTestData() { "serviceType" => $type1->getId(), "PRODUCTION_LEVEL" => "Y", "IS_MONITORED" => "Y", - "BETA" => FALSE, + "BETA" => false, "Scope_ids" => array($scope1), - "ReservedScope_ids"=> array(), + "ReservedScope_ids" => array(), "SE" => array( "HOSTNAME" => "gocdb.somedomain.biz", "URL" => "https://gocdb.somedomain.biz", @@ -186,69 +200,75 @@ private function createTestData() { ) ); - $ss = new org\gocdb\services\ServiceService(); - $ss->setEntityManager($this->em); + $servService = new ServiceService(); + $servService->setEntityManager($this->em); - $roleActionMappingService = - new org\gocdb\services\RoleActionMappingService(); - $roleActionAuthService - = new org\gocdb\services\RoleActionAuthorisationService($roleActionMappingService); - $roleActionAuthService->setEntityManager($this->em); + $roleAMS = new RoleActionMappingService(); - $ss->setRoleActionAuthorisationService($roleActionAuthService); + $roleAAS = new RoleActionAuthorisationService($roleAMS); + $roleAAS->setEntityManager($this->em); - $scopeService = new \org\gocdb\services\Scope(); + $servService->setRoleActionAuthorisationService($roleAAS); + + $scopeService = new ScopeService(); $scopeService->setEntityManager($this->em); - $ss->setScopeService($scopeService); + $servService->setScopeService($scopeService); - return array ($ss, $serviceValues, $user1, $type1); + return array ($servService, $serviceValues, $user1, $type1); } /** * Check that basic add service works */ - public function testAddService() { + public function testAddService() + { print __METHOD__ . "\n"; - list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + list ($servService, $serviceValues, $user, ) = $this->createTestData(); // Check we get a service back. - $this->assertInstanceOf('\Service', - $s = $ss->addService($serviceValues, $user)); + $this->assertInstanceOf( + '\Service', + $service = $servService->addService($serviceValues, $user) + ); - $this->assertTrue($s->getProduction()); - $this->assertTrue($s->getMonitored()); - } + $this->assertTrue($service->getProduction()); + $this->assertTrue($service->getMonitored()); + } /** * Check the default rule that production services must be monitored. * @depends testAddService */ - public function testMonitoringFlag1() { + public function testMonitoringFlag1() + { print __METHOD__ . "\n"; - list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + list ($servService, $serviceValues, $user, ) = $this->createTestData(); // Force Monitoring and Production in conflict: should fail. $serviceValues["PRODUCTION_LEVEL"] = "Y"; $serviceValues["IS_MONITORED"] = "N"; $this->setExpectedException('Exception'); - $this->assertInstanceOf('\Service', - $ss->addService($serviceValues, $user)); + $this->assertInstanceOf( + '\Service', + $servService->addService($serviceValues, $user) + ); } /** * Check that exceptions to the default rule that production services * must be monitored are handled correctly * @depends testMonitoringFlag1 */ - public function testMonitoringFlag2() { + public function testMonitoringFlag2() + { print __METHOD__ . "\n"; - list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + list ($servService, $serviceValues, $user, $type) = $this->createTestData(); // Force Monitoring and Production in conflict: should fail but ... $serviceValues["PRODUCTION_LEVEL"] = "Y"; @@ -257,32 +277,37 @@ public function testMonitoringFlag2() { // ... set the exception so it doesn't. $type->setAllowMonitoringException(1); - $this->assertInstanceOf('\Service', - $s = $ss->addService($serviceValues, $user)); + $this->assertInstanceOf( + '\Service', + $service = $servService->addService($serviceValues, $user) + ); - $this->assertTrue($s->getProduction()); - $this->assertFalse($s->getMonitored()); + $this->assertTrue($service->getProduction()); + $this->assertFalse($service->getMonitored()); } /** * Check that exceptions to the default rule that production services * must be monitored are handled correctly * @depends testAddService */ - public function testEditService() { + public function testEditService() + { print __METHOD__ . "\n"; - list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + list ($servService, $serviceValues, $user, ) = $this->createTestData(); // Get a service - $s = $ss->addService($serviceValues, $user); + $service = $servService->addService($serviceValues, $user); // Make some rather arbitrary changes not in conflict $serviceValues["PRODUCTION_LEVEL"] = "N"; $serviceValues["IS_MONITORED"] = "N"; - $this->assertInstanceOf('\Service', - $newS = $ss->editService($s, $serviceValues, $user)); + $this->assertInstanceOf( + '\Service', + $newS = $servService->editService($service, $serviceValues, $user) + ); $this->assertFalse($newS->getProduction()); $this->assertFalse($newS->getMonitored()); @@ -292,36 +317,40 @@ public function testEditService() { * must be monitored are handled correctly * @depends testEditService */ - public function testMonitoringFlag3() { + public function testMonitoringFlag3() + { print __METHOD__ . "\n"; - list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + list ($servService, $serviceValues, $user, ) = $this->createTestData(); // Get a service - $s = $ss->addService($serviceValues, $user); + $service = $servService->addService($serviceValues, $user); // Force Monitoring and Production in conflict: should fail. $serviceValues["PRODUCTION_LEVEL"] = "Y"; $serviceValues["IS_MONITORED"] = "N"; $this->setExpectedException('Exception'); - $this->assertInstanceOf('\Service', - $newS = $ss->editService($s, $serviceValues, $user)); + $this->assertInstanceOf( + '\Service', + $servService->editService($service, $serviceValues, $user) + ); } /** * Check that exceptions to the default rule that production services * must be monitored are handled correctly * @depends testMonitoringFlag3 */ - public function testMonitoringFlag4() { + public function testMonitoringFlag4() + { print __METHOD__ . "\n"; - list ($ss, $serviceValues, $user, $type) = $this->createTestData(); + list ($servService, $serviceValues, $user, $type) = $this->createTestData(); // Get a service - $s = $ss->addService($serviceValues, $user); + $service = $servService->addService($serviceValues, $user); // Force Monitoring and Production in conflict: should fail but ... $serviceValues["PRODUCTION_LEVEL"] = "Y"; @@ -330,102 +359,109 @@ public function testMonitoringFlag4() { // ... set the exception so it doesn't. $type->setAllowMonitoringException(1); - $this->assertInstanceOf('\Service', - $newS = $ss->editService($s, $serviceValues, $user)); + $this->assertInstanceOf( + '\Service', + $newS = $servService->editService($service, $serviceValues, $user) + ); $this->assertTrue($newS->getProduction()); $this->assertFalse($newS->getMonitored()); } - public function createValidationEntities(){ + public function createValidationEntities() + { - $util = new TestUtil(); + $util = new TestUtil(); - $site = $util->createSampleSite("TestSite"); - $this->em->persist($site); + $site = $util->createSampleSite("TestSite"); + $this->em->persist($site); - $service = $util->createSampleService("TestService1"); - $this->em->persist($service); - $service->setParentSiteDoJoin($site); + $service = $util->createSampleService("TestService1"); + $this->em->persist($service); + $service->setParentSiteDoJoin($site); - $user = $util->createSampleUser("Test", "Testing"); - $identifier= TestUtil::createSampleUserIdentifier("X.509", "/c=test"); - $user->addUserIdentifierDoJoin($identifier); - $this->em->persist($identifier); - $this->em->persist($user); - $user->setAdmin(TRUE); + $user = $util->createSampleUser("Test", "Testing"); + $identifier = TestUtil::createSampleUserIdentifier("X.509", "/c=test"); + $user->addUserIdentifierDoJoin($identifier); + $this->em->persist($identifier); + $this->em->persist($user); + $user->setAdmin(true); - $roleAMS = new org\gocdb\services\RoleActionMappingService(); - $roleAAS = new org\gocdb\services\RoleActionAuthorisationService($roleAMS); - $roleAAS->setEntityManager($this->em); + $roleAMS = new RoleActionMappingService(); + $roleAAS = new RoleActionAuthorisationService($roleAMS); + $roleAAS->setEntityManager($this->em); - $this->em->flush(); + $this->em->flush(); - $serviceService = new org\gocdb\services\ServiceService(); - $serviceService->setEntityManager($this->em); - $serviceService->setRoleActionAuthorisationService($roleAAS); + $serviceService = new ServiceService(); + $serviceService->setEntityManager($this->em); + $serviceService->setRoleActionAuthorisationService($roleAAS); - return array($service, $user, $serviceService); - } + return array($service, $user, $serviceService); + } /** * Check the basics - * Duplicates some simple testing from ExtensionsTest */ - public function testValidateProperty(){ - print __METHOD__ . "\n"; + public function testValidateProperty() + { + print __METHOD__ . "\n"; - list ($service, $user, $serviceService) = $this->createValidationEntities(); - // Properties are specified as array of arrays of form - // [[Name,Value],[Name,Value], ... ] - $values[0] = array("ValidName1","ValidValue"); - $values[1] = array("ValidName2",""); + list ($service, $user, $serviceService) = $this->createValidationEntities(); + // Properties are specified as array of arrays of form + // [[Name,Value],[Name,Value], ... ] + $values = []; + $values[0] = array("ValidName1","ValidValue"); + $values[1] = array("ValidName2",""); - $this->assertTrue($serviceService->addProperties($service, $user, $values) == NULL); + $this->assertTrue($serviceService->addProperties($service, $user, $values) == null); - $this->assertTrue(count($properties = $service->getServiceProperties()) == 2); + $this->assertTrue(count($properties = $service->getServiceProperties()) == 2); - $this->assertTrue( - $serviceService->deleteServiceProperties($service, $user, $properties->toArray()) - == NULL); + $this->assertTrue( + $serviceService->deleteServiceProperties($service, $user, $properties->toArray()) + == null + ); - $this->assertTrue(count($properties = $service->getServiceProperties()) == 0); - } + $this->assertTrue(count($properties = $service->getServiceProperties()) == 0); + } /** * Check that validation of property name is operating as expected * Added to test code changes to pass through "<>" chars * @depends testValidateProperty */ - public function testValidatePropertyNameFails(){ - print __METHOD__ . "\n"; - - list ($service, $user, $serviceService) = $this->createValidationEntities(); - // Properties are specified as array of arrays of form - // [[Name,Value],[Name,Value], ... ] - // < & > are invalid characters in the property name but are valid - // for the property value. - $values[0] = array("",""); + public function testValidatePropertyNameFails() + { + print __METHOD__ . "\n"; - $this->setExpectedException('Exception'); + list ($service, $user, $serviceService) = $this->createValidationEntities(); + // Properties are specified as array of arrays of form + // [[Name,Value],[Name,Value], ... ] + // < & > are invalid characters in the property name but are valid + // for the property value. + $values = []; + $values[0] = array("",""); - $serviceService->addProperties($service, $user, $values); + $this->setExpectedException('Exception'); - } + $serviceService->addProperties($service, $user, $values); + } /** * Check that validation of property value is operating as expected * @depends testValidateProperty */ - public function testValidatePropertyValueFails(){ - print __METHOD__ . "\n"; - - list ($service, $user, $serviceService) = $this->createValidationEntities(); - // Properties are specified as array of arrays of form - // [[Name,Value],[Name,Value], ... ] - // Quote characters are invalid in property value - $values[0] = array("Valid","'Not Valid'"); + public function testValidatePropertyValueFails() + { + print __METHOD__ . "\n"; - $this->setExpectedException('Exception'); + list ($service, $user, $serviceService) = $this->createValidationEntities(); + // Properties are specified as array of arrays of form + // [[Name,Value],[Name,Value], ... ] + // Quote characters are invalid in property value + $values = []; + $values[0] = array("Valid","'Not Valid'"); - $serviceService->addProperties($service, $user, $values); + $this->setExpectedException('Exception'); - } + $serviceService->addProperties($service, $user, $values); + } } -?> diff --git a/tests/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php b/tests/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php index d06f09c85..8f7c9fa4f 100644 --- a/tests/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php +++ b/tests/unit/lib/Gocdb_Services/ServiceTypeServiceTest.php @@ -1,34 +1,38 @@ createFlatXMLDataSet(__DIR__ . '/../../../doctrine/truncateDataTables.xml'); } /** * Overridden. */ - protected function getSetUpOperation() { + protected function getSetUpOperation() + { // CLEAN_INSERT is default //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); @@ -70,7 +77,8 @@ protected function getSetUpOperation() { /** * Overridden. */ - protected function getTearDownOperation() { + protected function getTearDownOperation() + { // NONE is default return PHPUnit_Extensions_Database_Operation_Factory::NONE(); } @@ -79,7 +87,8 @@ protected function getTearDownOperation() { * Sets up the fixture, e.g create a new entityManager for each test run * This method is called before each test method is executed. */ - protected function setUp() { + protected function setUp() + { parent::setUp(); $this->em = $this->createEntityManager(); /** @@ -93,7 +102,9 @@ protected function setUp() { * @todo Still need to setup connection to different databases. * @return EntityManager */ - private function createEntityManager() { + private function createEntityManager() + { + $entityManager = null; require __DIR__ . '/../../../doctrine/bootstrap_doctrine.php'; return $entityManager; } @@ -102,7 +113,8 @@ private function createEntityManager() { * Called after setUp() and before each test. Used for common assertions * across all tests. */ - protected function assertPreConditions() { + protected function assertPreConditions() + { /** * Checks that all tables are empty before we start a test. */ @@ -115,33 +127,34 @@ protected function assertPreConditions() { $sql = "SELECT * FROM " . $tableName->getName(); $result = $con->createQueryTable('results_table', $sql); //echo 'row count: '.$result->getRowCount() ; - if ($result->getRowCount() != 0) + if ($result->getRowCount() != 0) { throw new RuntimeException("Invalid fixture. Table has rows: " . $tableName->getName()); + } } - } - private function createTestData() { + private function createTestData() + { //$project1 = new \Project("project1"); //$this->em->persist($project1); //$ngi1 = TestUtil::createSampleNGI("ngi1"); //$this->em->persist($ngi1); - $pk = new \PrimaryKey(); - $this->em->persist($pk); + $pKey = new \PrimaryKey(); + $this->em->persist($pKey); $this->em->flush(); - - $user1 = TestUtil::createSampleUser("forename1","surname1","/cn=dummy1"); + + $user1 = TestUtil::createSampleUser("forename1", "surname1", "/cn=dummy1"); $this->em->persist($user1); - $user1->setAdmin(TRUE); + $user1->setAdmin(true); $this->em->flush(); $values = array ( "Name" => "serviceType1", "Description" => "description of service type 1", - "AllowMonitoringException" => FALSE ); + "AllowMonitoringException" => false ); return array ($values, $user1); } @@ -150,85 +163,90 @@ private function createTestData() { * Check that basic add service works and monitoring is not allowed * for production services. */ - public function testAddServiceType1() { + public function testAddServiceType1() + { print __METHOD__ . "\n"; list ($values, $user) = $this->createTestData(); - $this->assertInstanceOf('org\gocdb\services\ServiceType', - $s = new org\gocdb\services\ServiceType()); - - $s->setEntityManager($this->em); + $this->assertInstanceOf( + 'org\gocdb\services\ServiceType', + $sTypeServ = new ServiceTypeService() + ); + + $sTypeServ->setEntityManager($this->em); // Check we get a service type back. - $this->assertInstanceOf('\ServiceType', - $st = $s->addServiceType($values, $user)); + $this->assertInstanceOf( + '\ServiceType', + $sType = $sTypeServ->addServiceType($values, $user) + ); - $this->assertFalse($st->getAllowMonitoringException()); + $this->assertFalse($sType->getAllowMonitoringException()); } /** * Check that duplicates fail * @depends testAddServiceType1 */ - public function testAddServiceType2() { + public function testAddServiceType2() + { print __METHOD__ . "\n"; list ($values, $user) = $this->createTestData(); - $s = new org\gocdb\services\ServiceType(); - - $s->setEntityManager($this->em); - $s->addServiceType($values, $user); + $sTypeServ = new ServiceTypeService(); + + $sTypeServ->setEntityManager($this->em); + $sTypeServ->addServiceType($values, $user); // Finally - trying to add the same again should fail $this->setExpectedException('Exception'); - $st = $s->addServiceType($values, $user); + $sTypeServ->addServiceType($values, $user); } /** * Check that admin privileges are needed * @depends testAddServiceType1 */ - public function testAddServiceType3() { + public function testAddServiceType3() + { print __METHOD__ . "\n"; list ($values, $user) = $this->createTestData(); - $user->setAdmin(FALSE); + $user->setAdmin(false); - $s = new org\gocdb\services\ServiceType(); - - $s->setEntityManager($this->em); + $sTypeServ = new ServiceTypeService(); + + $sTypeServ->setEntityManager($this->em); $this->setExpectedException('Exception'); - $s->addServiceType($values, $user); + $sTypeServ->addServiceType($values, $user); } /** * Check that admin privileges are needed * @depends testAddServiceType1 */ - public function testEditServiceType1() { - + public function testEditServiceType1() + { print __METHOD__ . "\n"; list ($values, $user) = $this->createTestData(); - $s = new org\gocdb\services\ServiceType(); - - $s->setEntityManager($this->em); + $sTypeServ = new ServiceTypeService(); - $st = $s->addServiceType($values, $user); + $sTypeServ->setEntityManager($this->em); + + $sType = $sTypeServ->addServiceType($values, $user); // Change the name and check the edit succeeds $newName = $values['Name'] . '0'; $values['Name'] = $newName; - $s->editServiceType($st, $values, $user); + $sTypeServ->editServiceType($sType, $values, $user); - $this->assertEquals($newName, $st->getName()); + $this->assertEquals($newName, $sType->getName()); } } - -?> From 08db1e23ec4d0f270f70f68388518e8d71af1b52 Mon Sep 17 00:00:00 2001 From: gregcorbett Date: Fri, 31 Mar 2023 09:51:48 +0000 Subject: [PATCH 18/42] Fix garbled link - If you line break in a string, the whitespace is taken literally - as such, the whitespace was appearing in the link to the ServiceType - the link still worked, but it seemed slow to respond. --- htdocs/web_portal/views/admin/view_service_types.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/web_portal/views/admin/view_service_types.php b/htdocs/web_portal/views/admin/view_service_types.php index dfa3e8b61..7586f3739 100644 --- a/htdocs/web_portal/views/admin/view_service_types.php +++ b/htdocs/web_portal/views/admin/view_service_types.php @@ -44,8 +44,7 @@
    - + getName()); ?> From 491d544aa0802e7f3b24b6a8f495d5e03232f3b0 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Wed, 22 Mar 2023 17:15:02 +0000 Subject: [PATCH 19/42] Rename script and classes Basic renaming to make way for managing renewal cycle tests --- ...eAPICredentials.php => ManageUnusedAPICredentials.php} | 8 ++++---- ...sOptions.php => ManageUnusedAPICredentialsOptions.php} | 2 +- tests/DoctrineTestSuite1.php | 4 ++-- ...entialsTest.php => ManageUnusedAPICredentialsTest.php} | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) rename resources/ManageAPICredentials/{ManageAPICredentials.php => ManageUnusedAPICredentials.php} (89%) rename resources/ManageAPICredentials/{ManageAPICredentialsOptions.php => ManageUnusedAPICredentialsOptions.php} (99%) rename tests/resourcesTests/{ManageAPICredentialsTest.php => ManageUnusedAPICredentialsTest.php} (98%) diff --git a/resources/ManageAPICredentials/ManageAPICredentials.php b/resources/ManageAPICredentials/ManageUnusedAPICredentials.php similarity index 89% rename from resources/ManageAPICredentials/ManageAPICredentials.php rename to resources/ManageAPICredentials/ManageUnusedAPICredentials.php index 0f744038d..3e65f4d2a 100644 --- a/resources/ManageAPICredentials/ManageAPICredentials.php +++ b/resources/ManageAPICredentials/ManageUnusedAPICredentials.php @@ -12,7 +12,7 @@ * * Sender and reply-to email addresses are taken from the local_info.xml config file. * - * Usage: php ManageAPICredentials.php [ --help | -h ] [ --dry-run ] \\ + * Usage: php ManageUnusedAPICredentials.php [ --help | -h ] [ --dry-run ] \\ * [[ --warning_threshold | -w ] LITTLE_MONTHS ] \\ * [[ --deletion_threshold | -d ] BIG_MONTHS ] * @@ -24,7 +24,7 @@ require_once dirname(__FILE__) . "/../../lib/Gocdb_Services/Factory.php"; require_once dirname(__FILE__) . "/ManageAPICredentialsActions.php"; -require_once dirname(__FILE__) . "/ManageAPICredentialsOptions.php"; +require_once dirname(__FILE__) . "/ManageUnusedAPICredentialsOptions.php"; use DateTime; use DateTimeZone; @@ -41,7 +41,7 @@ $replyToEmail = (string) $configService->getEmailTo(); try { - $options = new ManageAPICredentialsOptions(); + $options = new ManageUnusedAPICredentialsOptions(); if ($options->isShowHelp()) { return; @@ -70,5 +70,5 @@ ); } } catch (InvalidArgumentException $except) { - ManageAPICredentialsOptions::usage($except->getMessage()); + ManageUnusedAPICredentialsOptions::usage($except->getMessage()); } diff --git a/resources/ManageAPICredentials/ManageAPICredentialsOptions.php b/resources/ManageAPICredentials/ManageUnusedAPICredentialsOptions.php similarity index 99% rename from resources/ManageAPICredentials/ManageAPICredentialsOptions.php rename to resources/ManageAPICredentials/ManageUnusedAPICredentialsOptions.php index 023fe3e1d..8463c6e8b 100644 --- a/resources/ManageAPICredentials/ManageAPICredentialsOptions.php +++ b/resources/ManageAPICredentials/ManageUnusedAPICredentialsOptions.php @@ -10,7 +10,7 @@ use InvalidArgumentException; -class ManageAPICredentialsOptions +class ManageUnusedAPICredentialsOptions { protected $showHelp = false; protected $warn; diff --git a/tests/DoctrineTestSuite1.php b/tests/DoctrineTestSuite1.php index 4942397e5..8fdeada7e 100644 --- a/tests/DoctrineTestSuite1.php +++ b/tests/DoctrineTestSuite1.php @@ -32,7 +32,7 @@ require_once __DIR__ . '/writeAPI/siteMethods.php'; require_once __DIR__ . '/writeAPI/serviceMethods.php'; require_once __DIR__ . '/writeAPI/endpointMethods.php'; -require_once __DIR__ . '/resourcesTests/ManageAPICredentialsTest.php'; +require_once __DIR__ . '/resourcesTests/ManageUnusedAPICredentialsTest.php'; use PHPUnit_Framework_TestSuite; @@ -74,7 +74,7 @@ public static function suite() $suite->addTestSuite('WriteAPIsiteMethodsTests'); $suite->addTestSuite('WriteAPIserviceMethodsTests'); $suite->addTestSuite('WriteAPIendpointMethodsTests'); - $suite->addTestSuite('org\gocdb\tests\ManageAPICredentialsTest'); + $suite->addTestSuite('org\gocdb\tests\ManageUnusedAPICredentialsTest'); return $suite; diff --git a/tests/resourcesTests/ManageAPICredentialsTest.php b/tests/resourcesTests/ManageUnusedAPICredentialsTest.php similarity index 98% rename from tests/resourcesTests/ManageAPICredentialsTest.php rename to tests/resourcesTests/ManageUnusedAPICredentialsTest.php index c78346f39..c779c1726 100644 --- a/tests/resourcesTests/ManageAPICredentialsTest.php +++ b/tests/resourcesTests/ManageUnusedAPICredentialsTest.php @@ -25,7 +25,7 @@ require_once __DIR__ . '/../unit/lib/Gocdb_Services/ServiceTestUtil.php'; require_once __DIR__ . '/../../resources/ManageAPICredentials/ManageAPICredentialsActions.php'; -class ManageAPICredentialsTest extends PHPUnit_Extensions_Database_TestCase +class ManageUnusedAPICredentialsTest extends PHPUnit_Extensions_Database_TestCase { private $entityManager; private $dbOpsFactory; From 6a04b2142be0c2555590f8d800b4b289af85cadd Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Tue, 28 Mar 2023 17:13:56 +0000 Subject: [PATCH 20/42] Use common test set creation class --- .../ManageAPICredentialsActions.php | 8 +-- .../ManageUnusedAPICredentials.php | 2 +- .../ManageAPICredentialsTestUtils.php | 64 +++++++++++++++++++ .../ManageUnusedAPICredentialsTest.php | 60 +++-------------- 4 files changed, 79 insertions(+), 55 deletions(-) create mode 100644 tests/resourcesTests/ManageAPICredentialsTestUtils.php diff --git a/resources/ManageAPICredentials/ManageAPICredentialsActions.php b/resources/ManageAPICredentials/ManageAPICredentialsActions.php index 3eb7fe31b..51e2b895b 100644 --- a/resources/ManageAPICredentials/ManageAPICredentialsActions.php +++ b/resources/ManageAPICredentials/ManageAPICredentialsActions.php @@ -41,20 +41,20 @@ public function __construct($dryRun, $entityManager, $baseTime) * * @param int $threshold The number of months of no-use prior to $baseTime to use for selection */ - public function getCreds($threshold) + public function getCreds($threshold, $propertyName) { $qbl = $this->entityManager->createQueryBuilder(); $qbl->select('cred') ->from('APIAuthentication', 'cred') - ->where('cred.lastUseTime < :threshold') - ->andWhere($qbl->expr()->isNotNull("cred.user")); // cope with legacy entities + ->where($qbl->expr()->isNotNull("cred.user")) // cope with legacy entities + ->andWhere('cred.' . $propertyName . '< :threshold'); $timeThresh = clone $this->baseTime; if ($threshold > 0) { $timeThresh->sub(new DateInterval("P" . $threshold . "M")); - } + }; $qbl->setParameter('threshold', $timeThresh->format('Y-m-d 00:00:00')); diff --git a/resources/ManageAPICredentials/ManageUnusedAPICredentials.php b/resources/ManageAPICredentials/ManageUnusedAPICredentials.php index 3e65f4d2a..88009d04f 100644 --- a/resources/ManageAPICredentials/ManageUnusedAPICredentials.php +++ b/resources/ManageAPICredentials/ManageUnusedAPICredentials.php @@ -51,7 +51,7 @@ $actions = new ManageAPICredentialsActions($options->isDryRun(), $entityManager, $baseTime); - $creds = $actions->getCreds($options->getThreshold()); + $creds = $actions->getCreds($options->getThreshold(), 'lastUseTime'); if ($options->isDeleteEnabled()) { $creds = $actions->deleteCreds( diff --git a/tests/resourcesTests/ManageAPICredentialsTestUtils.php b/tests/resourcesTests/ManageAPICredentialsTestUtils.php new file mode 100644 index 000000000..b9371ec65 --- /dev/null +++ b/tests/resourcesTests/ManageAPICredentialsTestUtils.php @@ -0,0 +1,64 @@ +entityManager = $entityManager; + $this->serviceTestUtil = new ServiceTestUtil(); + } + + public function createTestAuthEnts($number) + { + /** + * Create a number of unique API authentication credentials, evenly spaced each + * with last used time 6 months before the previous, starting 6 months behind + * the current time. + * + * @return \DateTime Time used as 'current' time. + */ + + list($user, $site, $siteService) = + $this->serviceTestUtil->createGocdbEntities($this->entityManager); + + $baseTime = new DateTime('now', new DateTimeZone('UTC')); + + $type = 'X.509'; + + $time = clone $baseTime; + + for ($count = 1; $count <= $number; $count++) { + // $useTime will be decremented by 6M for each loop + $time->sub(new DateInterval('P6M')); + $ident = '/CN=A Dummy Subject ' . $count; + $authEnt = $siteService->addAPIAuthEntity( + $site, + $user, + array( + 'IDENTIFIER' => $ident, + 'TYPE' => $type, + 'ALLOW_WRITE' => false + ) + ); + $authEnt->setLastUseTime($time); + $authEnt->setLastRenewTime($time); + } + return $baseTime; + } +} diff --git a/tests/resourcesTests/ManageUnusedAPICredentialsTest.php b/tests/resourcesTests/ManageUnusedAPICredentialsTest.php index c779c1726..178470135 100644 --- a/tests/resourcesTests/ManageUnusedAPICredentialsTest.php +++ b/tests/resourcesTests/ManageUnusedAPICredentialsTest.php @@ -14,14 +14,12 @@ */ namespace org\gocdb\tests; -use DateInterval; -use DateTime; -use DateTimeZone; use org\gocdb\scripts\ManageAPICredentialsActions; -use org\gocdb\tests\ServiceTestUtil; +use org\gocdb\tests\ManageAPICredentialsTestUtils; use PHPUnit_Extensions_Database_Operation_Factory; use PHPUnit_Extensions_Database_TestCase; +require_once __DIR__ . '/ManageAPICredentialsTestUtils.php'; require_once __DIR__ . '/../unit/lib/Gocdb_Services/ServiceTestUtil.php'; require_once __DIR__ . '/../../resources/ManageAPICredentials/ManageAPICredentialsActions.php'; @@ -29,7 +27,6 @@ class ManageUnusedAPICredentialsTest extends PHPUnit_Extensions_Database_TestCas { private $entityManager; private $dbOpsFactory; - private $serviceTestUtil; public function __construct() { @@ -37,7 +34,6 @@ public function __construct() // Use a local instance to avoid Mess Detector's whinging about avoiding // static access. $this->dbOpsFactory = new PHPUnit_Extensions_Database_Operation_Factory(); - $this->serviceTestUtil = new ServiceTestUtil(); } /** * Overridden. @@ -46,7 +42,7 @@ public static function setUpBeforeClass() { parent::setUpBeforeClass(); echo "\n\n-------------------------------------------------\n"; - echo "Executing ManageAPICredentialsTest. . .\n"; + echo "Executing ManageUnusedAPICredentialsTest. . .\n"; } /** * Overridden. Returns the test database connection. @@ -125,60 +121,24 @@ private function createEntityManager() require __DIR__ . '/../doctrine/bootstrap_doctrine.php'; return $entityManager; } - private function createTestAuthEnts($number) - { - /** - * Create a number of unique API authentication credentials, evenly spaced each - * with last used time 6 months before the previous, starting 6 months behind - * the current time. - * - * @return \DateTime Time used as 'current' time. - */ - - list($user, $site, $siteService) = - $this->serviceTestUtil->createGocdbEntities($this->entityManager); - - $baseTime = new DateTime('now', new DateTimeZone('UTC')); - - $type = 'X.509'; - - $useTime = clone $baseTime; - - for ($count = 1; $count <= $number; $count++) { - // $useTime will be decremented by 6M for each loop - $useTime->sub(new DateInterval('P6M')); - $ident = '/CN=A Dummy Subject ' . $count; - $authEnt = $siteService->addAPIAuthEntity( - $site, - $user, - array( - 'IDENTIFIER' => $ident, - 'TYPE' => $type, - 'ALLOW_WRITE' => false - ) - ); - - $authEnt->setLastUseTime($useTime); - } - return $baseTime; - } public function testLastUseTime() { print __METHOD__ . "\n"; - $baseTime = $this->createTestAuthEnts(3); + $utils = new ManageAPICredentialsTestUtils($this->entityManager); + $baseTime = $utils->createTestAuthEnts(3); $entityManager = $this->createEntityManager(); $actions = new ManageAPICredentialsActions(false, $entityManager, $baseTime); // Fetch credentials not used in the last 7 months - should be 2 - $creds = $actions->getCreds(7); + $creds = $actions->getCreds(7, 'lastUseTime'); $this->assertCount( 2, $creds, - 'Failed to filter credentials by time.' + 'Failed to filter credentials based on last use time.' ); // remove credentials last used more than 13 months ago @@ -188,17 +148,17 @@ public function testLastUseTime() $this->assertCount( 1, $creds, - 'Failed to delete credential by use time.' + 'Failed to delete credential based on last use time.' ); // If we now repeat the original query there should be just one // credential following the delete. - $creds = $actions->getCreds(7); + $creds = $actions->getCreds(7, 'lastUseTime'); $this->assertCount( 1, $creds, - 'Unexpected credential count following deletion.' + 'Unexpected credential count following deletion based on last use time.' ); } } From aa844fed9f694f5538e6ea2f2f8e7f1027dcc55e Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Wed, 29 Mar 2023 10:51:24 +0000 Subject: [PATCH 21/42] Add test for renew time --- tests/DoctrineTestSuite1.php | 2 + .../ManageUnrenewedAPICredentialsTest.php | 164 ++++++++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php diff --git a/tests/DoctrineTestSuite1.php b/tests/DoctrineTestSuite1.php index 8fdeada7e..a7d11af27 100644 --- a/tests/DoctrineTestSuite1.php +++ b/tests/DoctrineTestSuite1.php @@ -33,6 +33,7 @@ require_once __DIR__ . '/writeAPI/serviceMethods.php'; require_once __DIR__ . '/writeAPI/endpointMethods.php'; require_once __DIR__ . '/resourcesTests/ManageUnusedAPICredentialsTest.php'; +require_once __DIR__ . '/resourcesTests/ManageUnrenewedAPICredentialsTest.php'; use PHPUnit_Framework_TestSuite; @@ -75,6 +76,7 @@ public static function suite() $suite->addTestSuite('WriteAPIserviceMethodsTests'); $suite->addTestSuite('WriteAPIendpointMethodsTests'); $suite->addTestSuite('org\gocdb\tests\ManageUnusedAPICredentialsTest'); + $suite->addTestSuite('org\gocdb\tests\ManageUnrenewedAPICredentialsTest'); return $suite; diff --git a/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php b/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php new file mode 100644 index 000000000..da5b81120 --- /dev/null +++ b/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php @@ -0,0 +1,164 @@ +dbOpsFactory = new PHPUnit_Extensions_Database_Operation_Factory(); + } + /** + * Overridden. + */ + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + echo "\n\n-------------------------------------------------\n"; + echo "Executing ManageUnrenewedAPICredentialsTest. . .\n"; + } + /** + * Overridden. Returns the test database connection. + * @return PHPUnit_Extensions_Database_DB_IDatabaseConnection + */ + protected function getConnection() + { + require_once __DIR__ . '/../doctrine/bootstrap_pdo.php'; + return getConnectionToTestDB(); + } + /** + * Overridden. Returns the test dataset. + * Defines how the initial state of the database should look before each test is executed. + * @return PHPUnit_Extensions_Database_DataSet_IDataSet + */ + protected function getDataSet() + { + $dataset = $this->createFlatXMLDataSet(__DIR__ . '/../doctrine/truncateDataTables.xml'); + return $dataset; + // Use below to return an empty data set if we don't want to truncate and seed + //return new PHPUnit_Extensions_Database_DataSet_DefaultDataSet(); + } + /** + * Overridden. + */ + protected function getSetUpOperation() + { + // CLEAN_INSERT is default + //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); + //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); + //return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + // + // Issue a DELETE from which is more portable than a + // TRUNCATE table
    (some DBs require high privileges for truncate statements + // and also do not allow truncates across tables with FK contstraints e.g. Oracle) + return $this->dbOpsFactory->DELETE_ALL(); + } + /** + * Overridden. + */ + protected function getTearDownOperation() + { + // NONE is default + return $this->dbOpsFactory->NONE(); + } + /** + * Sets up the fixture, e.g create a new entityManager for each test run + * This method is called before each test method is executed. + */ + protected function setUp() + { + parent::setUp(); + $this->entityManager = $this->createEntityManager(); + // Pass the Entity Manager into the Factory to allow Gocdb_Services + // to use other Gocdb_Services. + \Factory::setEntityManager($this->entityManager); + + date_default_timezone_set("UTC"); + } + /** + * Run after each test function to prevent pile-up of database connections. + */ + protected function tearDown() + { + parent::tearDown(); + if (!is_null($this->entityManager)) { + $this->entityManager->getConnection()->close(); + } + } + /** + * @return EntityManager + */ + private function createEntityManager() + { + $entityManager = null; // Initialise in local scope to avoid unused variable warnings + require __DIR__ . '/../doctrine/bootstrap_doctrine.php'; + return $entityManager; + } + public function testLastRenewTime() + { + print __METHOD__ . "\n"; + + $utils = new ManageAPICredentialsTestUtils($this->entityManager); + $baseTime = $utils->createTestAuthEnts(3); + + $entityManager = $this->createEntityManager(); + + $actions = new ManageAPICredentialsActions(false, $entityManager, $baseTime); + + // Fetch credentials not renewed in the last 7 months - should be 2 + $creds = $actions->getCreds(7, 'lastRenewTime'); + + $this->assertCount( + 2, + $creds, + 'Failed to filter credentials based on last renew time.' + ); + + // remove credentials last renewed more than 13 months ago + // there should be one left after this operation + $creds = $actions->deleteCreds($creds, 13); + + $this->assertCount( + 1, + $creds, + 'Failed to delete credential by renew time.' + ); + + // If we now repeat the original query there should be just one + // credential following the delete. + $creds = $actions->getCreds(7, 'lastRenewTime'); + + $this->assertCount( + 1, + $creds, + 'Unexpected credential count following deletion.' + ); + } +} From 7ee96e8b697c1cbe77adac9ff53fde61b3d0e2a1 Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Wed, 29 Mar 2023 15:47:10 +0000 Subject: [PATCH 22/42] Add interval to test credential set creation Addressing review comment and correct some code comments and function phpdoc --- .../ManageAPICredentialsTestUtils.php | 24 ++++++++++--------- .../ManageUnrenewedAPICredentialsTest.php | 2 +- .../ManageUnusedAPICredentialsTest.php | 2 +- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/tests/resourcesTests/ManageAPICredentialsTestUtils.php b/tests/resourcesTests/ManageAPICredentialsTestUtils.php index b9371ec65..8aaf5a043 100644 --- a/tests/resourcesTests/ManageAPICredentialsTestUtils.php +++ b/tests/resourcesTests/ManageAPICredentialsTestUtils.php @@ -23,17 +23,19 @@ public function __construct($entityManager) $this->entityManager = $entityManager; $this->serviceTestUtil = new ServiceTestUtil(); } - - public function createTestAuthEnts($number) + /** + * Create a number of unique API authentication credentials, evenly spaced each + * with last used time and last renewed time a given number of months before the + * previous, starting the given number of months before the current time. + * + * @param integer $number The numbr of credentials to create + * @param integer $intervalMonths The interval in months between credentials used to + * set lastUseTime and lastRenewTime + * @return \DateTime Time used as base: the first credential will have time values + * $intervalMonths older than this + */ + public function createTestAuthEnts($number, $intervalMonths) { - /** - * Create a number of unique API authentication credentials, evenly spaced each - * with last used time 6 months before the previous, starting 6 months behind - * the current time. - * - * @return \DateTime Time used as 'current' time. - */ - list($user, $site, $siteService) = $this->serviceTestUtil->createGocdbEntities($this->entityManager); @@ -45,7 +47,7 @@ public function createTestAuthEnts($number) for ($count = 1; $count <= $number; $count++) { // $useTime will be decremented by 6M for each loop - $time->sub(new DateInterval('P6M')); + $time->sub(new DateInterval('P' . $intervalMonths . 'M')); $ident = '/CN=A Dummy Subject ' . $count; $authEnt = $siteService->addAPIAuthEntity( $site, diff --git a/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php b/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php index da5b81120..592bd1e46 100644 --- a/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php +++ b/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php @@ -126,7 +126,7 @@ public function testLastRenewTime() print __METHOD__ . "\n"; $utils = new ManageAPICredentialsTestUtils($this->entityManager); - $baseTime = $utils->createTestAuthEnts(3); + $baseTime = $utils->createTestAuthEnts(3, 6); $entityManager = $this->createEntityManager(); diff --git a/tests/resourcesTests/ManageUnusedAPICredentialsTest.php b/tests/resourcesTests/ManageUnusedAPICredentialsTest.php index 178470135..ca5dd4a33 100644 --- a/tests/resourcesTests/ManageUnusedAPICredentialsTest.php +++ b/tests/resourcesTests/ManageUnusedAPICredentialsTest.php @@ -126,7 +126,7 @@ public function testLastUseTime() print __METHOD__ . "\n"; $utils = new ManageAPICredentialsTestUtils($this->entityManager); - $baseTime = $utils->createTestAuthEnts(3); + $baseTime = $utils->createTestAuthEnts(3, 6); $entityManager = $this->createEntityManager(); From a89648c809a7d60d86f659802b259f7efe0b635f Mon Sep 17 00:00:00 2001 From: ineilson Date: Thu, 30 Mar 2023 09:26:04 +0100 Subject: [PATCH 23/42] Correct typo from review comments Co-authored-by: Rowan --- tests/resourcesTests/ManageAPICredentialsTestUtils.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/resourcesTests/ManageAPICredentialsTestUtils.php b/tests/resourcesTests/ManageAPICredentialsTestUtils.php index 8aaf5a043..32a7f53b4 100644 --- a/tests/resourcesTests/ManageAPICredentialsTestUtils.php +++ b/tests/resourcesTests/ManageAPICredentialsTestUtils.php @@ -28,7 +28,7 @@ public function __construct($entityManager) * with last used time and last renewed time a given number of months before the * previous, starting the given number of months before the current time. * - * @param integer $number The numbr of credentials to create + * @param integer $number The number of credentials to create * @param integer $intervalMonths The interval in months between credentials used to * set lastUseTime and lastRenewTime * @return \DateTime Time used as base: the first credential will have time values From 0df908f82e781dd95d952826f5964e254ce6bcd0 Mon Sep 17 00:00:00 2001 From: gregcorbett Date: Tue, 4 Apr 2023 10:43:33 +0100 Subject: [PATCH 24/42] Tweak times used in unrenewed api credential test - this is to reflect that we want unrenewed API credentials to be deleted at a quicker cadence than users. - this is to prevent inactive users having API credentials. --- .../ManageUnrenewedAPICredentialsTest.php | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php b/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php index 592bd1e46..c4435e0f4 100644 --- a/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php +++ b/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php @@ -125,38 +125,41 @@ public function testLastRenewTime() { print __METHOD__ . "\n"; + // Create 8 credentials, each 2 month apart. + // 2 months chosen so the exact definition of a month doesn't matter. $utils = new ManageAPICredentialsTestUtils($this->entityManager); - $baseTime = $utils->createTestAuthEnts(3, 6); + $baseTime = $utils->createTestAuthEnts(8, 2); $entityManager = $this->createEntityManager(); $actions = new ManageAPICredentialsActions(false, $entityManager, $baseTime); - // Fetch credentials not renewed in the last 7 months - should be 2 - $creds = $actions->getCreds(7, 'lastRenewTime'); + // Fetch credentials not renewed in the last 5 months - should be 6. + $creds = $actions->getCreds(5, 'lastRenewTime'); $this->assertCount( - 2, + 6, $creds, 'Failed to filter credentials based on last renew time.' ); - // remove credentials last renewed more than 13 months ago - // there should be one left after this operation - $creds = $actions->deleteCreds($creds, 13); + // remove credentials last renewed more than 9 months ago + // there should be 2 left after this operation (as 2 of + // the 6 fetched above have been renewed with 9 months). + $creds = $actions->deleteCreds($creds, 9); $this->assertCount( - 1, + 2, $creds, 'Failed to delete credential by renew time.' ); - // If we now repeat the original query there should be just one + // If we now repeat the original query there should be just 4 // credential following the delete. - $creds = $actions->getCreds(7, 'lastRenewTime'); + $creds = $actions->getCreds(5, 'lastRenewTime'); $this->assertCount( - 1, + 2, $creds, 'Unexpected credential count following deletion.' ); From 99a0c74d049f57091282e9f002c3caec14869ca7 Mon Sep 17 00:00:00 2001 From: gregcorbett Date: Thu, 4 May 2023 11:45:04 +0100 Subject: [PATCH 25/42] Fix indentation of comments Co-authored-by: Rowan --- .../ManageUnrenewedAPICredentialsTest.php | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php b/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php index c4435e0f4..6065dea04 100644 --- a/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php +++ b/tests/resourcesTests/ManageUnrenewedAPICredentialsTest.php @@ -62,22 +62,22 @@ protected function getDataSet() { $dataset = $this->createFlatXMLDataSet(__DIR__ . '/../doctrine/truncateDataTables.xml'); return $dataset; - // Use below to return an empty data set if we don't want to truncate and seed - //return new PHPUnit_Extensions_Database_DataSet_DefaultDataSet(); + // Use below to return an empty data set if we don't want to truncate and seed + //return new PHPUnit_Extensions_Database_DataSet_DefaultDataSet(); } /** * Overridden. */ protected function getSetUpOperation() { - // CLEAN_INSERT is default - //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); - //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); - //return PHPUnit_Extensions_Database_Operation_Factory::NONE(); - // - // Issue a DELETE from
    which is more portable than a - // TRUNCATE table
    (some DBs require high privileges for truncate statements - // and also do not allow truncates across tables with FK contstraints e.g. Oracle) + // CLEAN_INSERT is default + //return PHPUnit_Extensions_Database_Operation_Factory::CLEAN_INSERT(); + //return PHPUnit_Extensions_Database_Operation_Factory::UPDATE(); + //return PHPUnit_Extensions_Database_Operation_Factory::NONE(); + // + // Issue a DELETE from
    which is more portable than a + // TRUNCATE table
    (some DBs require high privileges for truncate statements + // and also do not allow truncates across tables with FK contstraints e.g. Oracle) return $this->dbOpsFactory->DELETE_ALL(); } /** @@ -85,7 +85,7 @@ protected function getSetUpOperation() */ protected function getTearDownOperation() { - // NONE is default + // NONE is default return $this->dbOpsFactory->NONE(); } /** @@ -96,8 +96,8 @@ protected function setUp() { parent::setUp(); $this->entityManager = $this->createEntityManager(); - // Pass the Entity Manager into the Factory to allow Gocdb_Services - // to use other Gocdb_Services. + // Pass the Entity Manager into the Factory to allow Gocdb_Services + // to use other Gocdb_Services. \Factory::setEntityManager($this->entityManager); date_default_timezone_set("UTC"); From 063c6b108a4db3a74765df71a83cc45169b92e2c Mon Sep 17 00:00:00 2001 From: Ian Date: Mon, 11 Nov 2019 16:27:52 +0000 Subject: [PATCH 26/42] Add configuration schema validation Including adding to monitoring checks. --- config/local_info.xml | 2 + config/local_info.xsd | 132 ++++++++++++++++ config/web_portal/menu.xsd | 36 +++++ config/web_portal/menu.xslt | 48 ++++++ htdocs/web_portal/GOCDB_monitor/index.php | 75 +++++---- htdocs/web_portal/GOCDB_monitor/tests.php | 143 ++++++++++++++---- .../GOCDB_monitor/validate_local_info_xml.php | 62 ++++++++ lib/Gocdb_Services/Config.php | 15 +- tests/miscTests/ValidateLocalInfoXML.php | 22 +++ 9 files changed, 479 insertions(+), 56 deletions(-) create mode 100755 config/local_info.xsd create mode 100644 config/web_portal/menu.xsd create mode 100644 config/web_portal/menu.xslt create mode 100644 htdocs/web_portal/GOCDB_monitor/validate_local_info_xml.php create mode 100644 tests/miscTests/ValidateLocalInfoXML.php diff --git a/config/local_info.xml b/config/local_info.xml index 6115d7ed8..ee3cdb787 100755 --- a/config/local_info.xml +++ b/config/local_info.xml @@ -1,9 +1,11 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/web_portal/menu.xsd b/config/web_portal/menu.xsd new file mode 100644 index 000000000..7a62fad05 --- /dev/null +++ b/config/web_portal/menu.xsd @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/web_portal/menu.xslt b/config/web_portal/menu.xslt new file mode 100644 index 000000000..fc90c9619 --- /dev/null +++ b/config/web_portal/menu.xslt @@ -0,0 +1,48 @@ + + + + + + + + + + + ** DO NOT EDIT THIS FILE DIRECTLY. ** + ** THIS FILE IS AUTO GENERATED. ** + ** SEE menu.xslt FOR DETAILS. ** + + <xs:schema version="1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + > + + <xs:complexType name="validMenus"> + <xs:all> + + + </xs:all> + </xs:complexType> +</xs:schema> + + + + + + <xs:element name=" + + " type="showType" minOccurs="0"/> + + + + + + diff --git a/htdocs/web_portal/GOCDB_monitor/index.php b/htdocs/web_portal/GOCDB_monitor/index.php index 1d1637582..0cb47da1d 100644 --- a/htdocs/web_portal/GOCDB_monitor/index.php +++ b/htdocs/web_portal/GOCDB_monitor/index.php @@ -5,36 +5,43 @@ URLs as defined by local_info.xml

    "; - -$piUrl = Factory::getConfigService()->GetPiUrl().get_testPiMethod(); -echo "

    PI URL is: ".$piUrl."

    "; - -$portalUrl = Factory::getConfigService()->GetPortalURL(); -echo "

    Portal URl is: ".$portalUrl."

    "; - -$baseUrl = Factory::getConfigService()->getServerBaseUrl(); -echo "

    Server Base URL is: ".$baseUrl."

    "; +$config = Factory::getConfigService(); // GOCDB5 DB connection $res = test_db_connection(); -$test_statuses["GOCDB5 DB connection"] = $res["status"]; -$test_messages["GOCDB5 DB connection"] = $res["message"]; +$test_statuses[TEST_1] = $res["status"]; +$test_messages[TEST_1] = $res["message"]; -// GOCDBPI v5 -$res = test_url($piUrl); -$test_statuses["GOCDBPI_v5 availability"] = $res["status"]; -$test_messages["GOCDBPI_v5 availability"] = $res["message"]; +// GOCDB5 configuration +$res = test_config($config); +$test_statuses[TEST_4] = $res["status"]; +$test_messages[TEST_4] = $res["message"]; -// GOCDB5 web portal -$res = test_url($portalUrl); -$test_statuses["GOCDB5 central portal availability"] = $res["status"]; -$test_messages["GOCDB5 central portal availability"] = $res["message"]; +// Following tests depend on the config file being valid. +if (strcasecmp($res["status"], OK) == 0) { + define_test_urls($config); + // GOCDBPI v5 + $res = test_url(PI_URL); + $test_statuses[TEST_2] = $res["status"]; + $test_messages[TEST_2] = $res["message"]; + // GOCDB5 web portal + $res = test_url(SERVER_BASE_URL); + $test_statuses[TEST_3] = $res["status"]; + $test_messages[TEST_3] = $res["message"]; -// DISPLAY RESULTS + // DISPLAY RESULTS + echo "

    URLs as defined by local_info.xml

    "; + echo "

    PI URL is: " . PI_URL . "

    "; + echo "

    Portal URl is: " . PORTAL_URL . "

    "; + echo "

    Server Base URL is: " . SERVER_BASE_URL . "

    "; +} else { + echo "

    Unable to extract URL information due to configuration test failure.

    "; +} ?>

    Service status overview

    +

    Other tests may have dependencies on the server configuration so may +show ERROR or UNKNOWN if the configuration is invalid.

    @@ -48,10 +55,10 @@ $status) { echo(""); - echo(""); + echo(""); echo($disp[$status]); - echo(""); - echo(""); + echo(""); + echo(""); echo(""); } ?> @@ -62,12 +69,24 @@

    Other tests and check pages

      -
    • GOCDB server ganglia page - Useful to see if there are memory or CPU problems
    • -
    • Status check - non vebose check of GOCDB service status. Just returns 'OK' if all the tests in \"service status overview\" are fine, 'WARNING' or 'ERROR' otherwise. Used for automatic tests
    • +
    • GOCDB server + ganglia page - Useful to see if there are memory or CPU + problems
    • +
    • Status check - a less vebose check of + GOCDB service status. Returns the single line 'All GOCDB tests + are looking good' if all tests run without error and 'GOCDB + Web Portal is unable to connect to the GOCDB back end database' + otherwise. Used for automated tests.

    Further documentation

    diff --git a/htdocs/web_portal/GOCDB_monitor/tests.php b/htdocs/web_portal/GOCDB_monitor/tests.php index ffb2c3aec..a78d395c9 100644 --- a/htdocs/web_portal/GOCDB_monitor/tests.php +++ b/htdocs/web_portal/GOCDB_monitor/tests.php @@ -1,5 +1,24 @@ setLocalInfoFileLocation(...) + \Factory::getConfigService()->setLocalInfoOverride($_SERVER['SERVER_NAME']); $test_statuses = array( - "GOCDB5 DB connection" => "unknown", - "GOCDBPI_v5 availability" => "unknown", - "GOCDB5 central portal availability" => "unknown" + TEST_1 => UKN, + TEST_2 => UKN, + TEST_3 => UKN, + TEST_4 => UKN ); $test_desc = array( - "GOCDB5 DB connection" => - "Connect to GOCDB5 (RAL/master instance) from this machine using EntityManager->getConnection()->connect()", - "GOCDBPI_v5 availability" => - "Retrieve https://goc.egi.eu/gocdbpi/?method=get_site_list&sitename=RAL-LCG2 using PHP CURL", - "GOCDB5 central portal availability" => "N/A", + TEST_1 => + "Connect to GOCDB5 (RAL/master instance) from this " . + "machine using EntityManager->getConnection()->connect()", + TEST_2 => + "Retrieve https://goc.egi.eu/gocdbpi/?" . + "method=get_site_list&sitename=RAL-LCG2 using PHP CURL", + TEST_3 => + "N/A", + TEST_4 => + "Server XML configuration validation." ); $test_doc = array( - "GOCDB5 DB connection" => - "documentation/recipe", - "GOCDBPI_v5 availability" => - "documentation/recipe", - "GOCDB5 central portal availability" => - "documentation/recipe" + TEST_1 => + "" . + "documentation/recipe", + TEST_2 => + "" . + "documentation/recipe", + TEST_3 => + "" . + "documentation/recipe", + TEST_4 => + "

    Contact GOCDB service managers." . + "
    Other tests have dependencies on the server configuration " . + "
    so may show errors if the configuration is invalid.

    " ); $test_messages = array( - "GOCDB5 DB connection" => "no information", - "GOCDBPI_v5 availability" => "no information", - "GOCDB5 central portal availability" => "no information" + TEST_1 => UKNMSG, + TEST_2 => UKNMSG, + TEST_3 => UKNMSG, + TEST_4 => UKNMSG ); $disp = array( @@ -50,6 +87,47 @@ "ok" => "", ); +// Run the tests but return nothing but a count of passes and failures +function get_test_counts($config) +{ + $res[1] = test_db_connection(); + $res[4] = test_config($config); + + if ($res[4]["status"] != "error") { + // Only define test URLs if the config is valid + define_test_urls($config); + + $res[2] = test_url(PI_URL); + $res[3] = test_url(SERVER_BASE_URL); + } + + $counts = array("ok" => 0, + "warn" => 0, + "error" => 0 + ); + + foreach ($res as $r) { + $counts[$r["status"]]++; + } + + return $counts; +} + +// Define url constants for testing. +// Note: Should only be called if test_config is successful +function define_test_urls(\org\gocdb\services\config $config) +{ + + list($serverBaseURL, $webPortalURL, $piURL) = $config->getURLs(); + + define("PI_URL", $piURL . get_testPiMethod()); + define("PORTAL_URL", $webPortalURL); + define("SERVER_BASE_URL", $serverBaseURL); + + //define("SERVER_SSLCERT", "/etc/grid-security/hostcert.pem"); + //define("SERVER_SSLKEY", "/etc/pki/tls/private/hostkey.pem"); +} + // Test the connection to the database using Doctrine function test_db_connection() { @@ -57,11 +135,11 @@ function test_db_connection() try { $entityManager = Factory::getNewEntityManager(); $entityManager->getConnection()->connect(); - $retval["status"] = "ok"; - $retval["message"] = "everything is well"; + $retval["status"] = OK; + $retval["message"] = OKMSG; } catch (\Exception $e) { $message = $e->getMessage(); - $retval["status"] = "error"; + $retval["status"] = NOK; $retval["message"] = "$message"; } @@ -73,11 +151,11 @@ function test_url($url) $retval = []; try { get_https2($url); - $retval["status"] = "ok"; - $retval["message"] = "everything is well"; + $retval["status"] = OK; + $retval["message"] = OKMSG; } catch (Exception $exception) { $message = $exception->getMessage(); - $retval["status"] = "error"; + $retval["status"] = NOK; $retval["message"] = "$message"; } return $retval; @@ -180,3 +258,16 @@ function run_tests(&$message) return $errorCount; } +function test_config($config) +{ + $retval = []; + try { + validate_local_info_xml($config->getLocalInfoFileLocation()); + $retval["status"] = OK; + $retval["message"] = OKMSG; + } catch (Exception $exception) { + $retval["status"] = NOK; + $retval["message"] = $exception->getMessage(); + } + return $retval; +} diff --git a/htdocs/web_portal/GOCDB_monitor/validate_local_info_xml.php b/htdocs/web_portal/GOCDB_monitor/validate_local_info_xml.php new file mode 100644 index 000000000..9e8b98259 --- /dev/null +++ b/htdocs/web_portal/GOCDB_monitor/validate_local_info_xml.php @@ -0,0 +1,62 @@ +\n"; + + switch ($error->level) { + case LIBXML_ERR_WARNING:$return .= "Warning $error->code: "; + break; + case LIBXML_ERR_ERROR:$return .= "Error $error->code: "; + break; + case LIBXML_ERR_FATAL:$return .= "Fatal Error $error->code: "; + break; + } + $return .= trim($error->message); + + if ($error->file) { + $return .= " in $error->file"; + } + $return .= " on line $error->line\n"; + return $return; +} +/** + * Loop over all errors printing a message for each + */ +function libxml_display_errors() +{ + $message = ""; + + $errors = libxml_get_errors(); + foreach ($errors as $error) { + $message .= libxml_display_error($error); + } + libxml_clear_errors(); + + return $message; +} +/** + * Check that the given xml matches its schema. + * The schema .xsd file must have the same name prefix and + * be in the same dir as the input .xml file + */ +function validate_local_info_xml ($path) +{ + // Enable user error handling + libxml_use_internal_errors(true); + + $xml = new DOMDocument(); + + $xml->load($path); + + $xsd = preg_replace( '/\.xml$/', '.xsd', $path); + + if (!$xml->schemaValidate($xsd)) { + throw new Exception (libxml_display_errors()); + } + + return; +} +?> diff --git a/lib/Gocdb_Services/Config.php b/lib/Gocdb_Services/Config.php index 80c9de109..59576f417 100644 --- a/lib/Gocdb_Services/Config.php +++ b/lib/Gocdb_Services/Config.php @@ -157,7 +157,6 @@ private function readLocalInfoXML($path, $url = null) if (!$base) { $this->throwXmlErrors('Failed to load configuration file ' . $path); } - // Search the input XML for a 'local_info' section that does NOT have a url attribute // specified. This is the default spec. $unqualified = $base->xpath("//local_info[not(@url)]"); @@ -401,8 +400,9 @@ public function GetPortalURL() */ public function isRestrictPDByRole($forceStrict = false) { - if ($forceStrict === true) + if ($forceStrict === true) { return true; + } $localInfo = $this->GetLocalInfoXML(); $value = $localInfo->restrict_personal_data; @@ -432,7 +432,18 @@ public function getServerBaseUrl() $url = $localInfo->server_base_url; return strval($url); } + /** + * Convenience function to return the 3 configuration URLs + */ + public function getURLs() + { + $localInfo = $this->GetLocalInfoXML(); + $serverBaseUrl = $localInfo->server_base_url; + $webPortalUrl = $localInfo->web_portal_url; + $piUrl = $localInfo->pi_url; + return array($serverBaseUrl, $webPortalUrl, $piUrl); + } /** * The write API documentation URL as recorded in local_info.xml. * This URL is given to users of the write API in error messages diff --git a/tests/miscTests/ValidateLocalInfoXML.php b/tests/miscTests/ValidateLocalInfoXML.php new file mode 100644 index 000000000..86e81d96d --- /dev/null +++ b/tests/miscTests/ValidateLocalInfoXML.php @@ -0,0 +1,22 @@ +load('../../config/local_info.xml'); + +if (!$xml->schemaValidate('../../config/local_info.xsd')) { + print '

    Errors found.

    '; + print libxml_display_errors(); +} else { + print '

    Validated. No errors found.

    '; +} From 5aaf1437edceea060be12cbd7d0e36e3cd729deb Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Mon, 27 Mar 2023 16:19:12 +0000 Subject: [PATCH 27/42] Include menu validation README --- config/web_portal/README.md | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 config/web_portal/README.md diff --git a/config/web_portal/README.md b/config/web_portal/README.md new file mode 100644 index 000000000..a639ad5a0 --- /dev/null +++ b/config/web_portal/README.md @@ -0,0 +1,53 @@ +## What *config/web_portal/menu.xsd* is for. + +This file is the schema file for the definiton of GOCDB's left-hand column menu, used to check that only valid menu names are included in the GOCDB main configuration file config/local_info.xml. The menu.xsd file is built automatically, **do not edit it** - see the next question. + +GOCDB uses an XML definition (config/web_portal/menu.xml) to programatically draw the left-hand menu items on the user +interface. Which menu items are drawn is selected via The \

    element in the GOCDB configuration file (config/local_info.xml). To check that only valid menu item names are given within the \ element it is necessary to generate an XML schema containing all valid menu names (config/web_portal/menu.xsd). + +## What *config/web_portal/menu.xslt* is for. + +This file is the transformation file which builds the menu.xsd schema definition file - see the previous question - from the menu definition file config/web_portal/menu.xml. + +To avoid having to specify menu names manually twice: once in the XML and once in the schema definition (config/local_info.xsd), an XSL Transformation file (config/web_portal/menu.xslt) is used to generate the menu schema (config/web_portal/menu.xsd) directly from the XML menu file. This menu schema is then included into the overall GOCDB schema when the configuration is validated. + +## How to make changes made to the left-hand menu. + +Left-hand menu items can be added or deleted by editing the menu XML file (config/web_portal/menu.xml). You should then run the XSL Transformation processor command *xsltproc* to generate a new menu schema - +``` +xsltproc -o menu.xsd menu.xslt menu.xml +``` +The resulting .xsd file will automatically be included in the configuration validation. + +## Why these files are used. + +To prevent misstypes and other difficult-to-spot configuration errors, GOCDB uses an XML schema file (config/local_info.xsd) to validate the XML elements given in the main configuration file (config/local_info.xml). + +## How these files are used. + +Checking that the schema is correct is done as part of the operations monitoring tests (htdocs/web_portal/GOCDB_monitor/*). + +An XSLT translation file is not used to build the main configuration schema file (config/local_info.xsd) because the menu XML is part of the codebase, whereas the main configuration XML is variable content to be validated against the main schema definition which is also part of the codebase. + +```mermaid +--- +title: Updating menu items and configuration validation +--- +flowchart TB + menu.xml[config/web_portal/menu.xml] + menu.xsd[config/web_portal/menu.xsd] + menu.xslt[config/web_portal/menu.xslt] + local_info.xsd[config/local_info.xsd] + local_info.xml[config/local_info.xml] + + edits([add or delete menu items]) -->menu.xml + + menu.xml & menu.xslt --> xsltproc[[xsltproc translation]] -->menu.xsd + + menu.xsd-->|include in|local_info.xsd + + config([configuration value edits]) -->local_info.xml + + local_info.xsd & local_info.xml --> validation[[XML validation]] --> result[\"#nbsp;Result: valid or invalid configuration#nbsp;"\] + +``` From 5a7b874ea9abc94fab84d02efadabc773afc98e5 Mon Sep 17 00:00:00 2001 From: ineilson Date: Tue, 28 Mar 2023 11:41:18 +0100 Subject: [PATCH 28/42] Apply typo fixing suggestions from code review Co-authored-by: Rowan --- config/web_portal/README.md | 2 +- config/web_portal/menu.xslt | 2 +- htdocs/web_portal/GOCDB_monitor/index.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/web_portal/README.md b/config/web_portal/README.md index a639ad5a0..a8b740600 100644 --- a/config/web_portal/README.md +++ b/config/web_portal/README.md @@ -3,7 +3,7 @@ This file is the schema file for the definiton of GOCDB's left-hand column menu, used to check that only valid menu names are included in the GOCDB main configuration file config/local_info.xml. The menu.xsd file is built automatically, **do not edit it** - see the next question. GOCDB uses an XML definition (config/web_portal/menu.xml) to programatically draw the left-hand menu items on the user -interface. Which menu items are drawn is selected via The \ element in the GOCDB configuration file (config/local_info.xml). To check that only valid menu item names are given within the \ element it is necessary to generate an XML schema containing all valid menu names (config/web_portal/menu.xsd). +interface. Which menu items are drawn is selected via the \ element in the GOCDB configuration file (config/local_info.xml). To check that only valid menu item names are given within the \ element it is necessary to generate an XML schema containing all valid menu names (config/web_portal/menu.xsd). ## What *config/web_portal/menu.xslt* is for. diff --git a/config/web_portal/menu.xslt b/config/web_portal/menu.xslt index fc90c9619..6aaf67cc3 100644 --- a/config/web_portal/menu.xslt +++ b/config/web_portal/menu.xslt @@ -32,7 +32,7 @@ diff --git a/htdocs/web_portal/GOCDB_monitor/index.php b/htdocs/web_portal/GOCDB_monitor/index.php index 0cb47da1d..e54fbe879 100644 --- a/htdocs/web_portal/GOCDB_monitor/index.php +++ b/htdocs/web_portal/GOCDB_monitor/index.php @@ -73,7 +73,7 @@ c=Grid+services&h=gocdb-base.esc.rl.ac.uk'>GOCDB server ganglia page - Useful to see if there are memory or CPU problems -
  • Status check - a less vebose check of +
  • Status check - a less verbose check of GOCDB service status. Returns the single line 'All GOCDB tests are looking good' if all tests run without error and 'GOCDB Web Portal is unable to connect to the GOCDB back end database' From b39d708d89e9b63e44df6840cff753a47ad4ac6b Mon Sep 17 00:00:00 2001 From: Ian Neilson Date: Tue, 28 Mar 2023 11:01:08 +0000 Subject: [PATCH 29/42] Fix markdown lint picks --- config/web_portal/README.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/config/web_portal/README.md b/config/web_portal/README.md index a8b740600..a72169350 100644 --- a/config/web_portal/README.md +++ b/config/web_portal/README.md @@ -1,29 +1,33 @@ -## What *config/web_portal/menu.xsd* is for. +# Auto-generation of menu.xsd and its use in GOCDB configuration + +## What *config/web_portal/menu.xsd* is for This file is the schema file for the definiton of GOCDB's left-hand column menu, used to check that only valid menu names are included in the GOCDB main configuration file config/local_info.xml. The menu.xsd file is built automatically, **do not edit it** - see the next question. GOCDB uses an XML definition (config/web_portal/menu.xml) to programatically draw the left-hand menu items on the user interface. Which menu items are drawn is selected via the \ element in the GOCDB configuration file (config/local_info.xml). To check that only valid menu item names are given within the \ element it is necessary to generate an XML schema containing all valid menu names (config/web_portal/menu.xsd). -## What *config/web_portal/menu.xslt* is for. +## What *config/web_portal/menu.xslt* is for This file is the transformation file which builds the menu.xsd schema definition file - see the previous question - from the menu definition file config/web_portal/menu.xml. To avoid having to specify menu names manually twice: once in the XML and once in the schema definition (config/local_info.xsd), an XSL Transformation file (config/web_portal/menu.xslt) is used to generate the menu schema (config/web_portal/menu.xsd) directly from the XML menu file. This menu schema is then included into the overall GOCDB schema when the configuration is validated. -## How to make changes made to the left-hand menu. +## How to make changes made to the left-hand menu Left-hand menu items can be added or deleted by editing the menu XML file (config/web_portal/menu.xml). You should then run the XSL Transformation processor command *xsltproc* to generate a new menu schema - -``` + +```bash xsltproc -o menu.xsd menu.xslt menu.xml ``` + The resulting .xsd file will automatically be included in the configuration validation. -## Why these files are used. +## Why these files are used -To prevent misstypes and other difficult-to-spot configuration errors, GOCDB uses an XML schema file (config/local_info.xsd) to validate the XML elements given in the main configuration file (config/local_info.xml). +To prevent mistypes and other difficult-to-spot configuration errors, GOCDB uses an XML schema file (config/local_info.xsd) to validate the XML elements given in the main configuration file (config/local_info.xml). -## How these files are used. +## How these files are used Checking that the schema is correct is done as part of the operations monitoring tests (htdocs/web_portal/GOCDB_monitor/*). From 2051bd788a3d3b1a83e7dc4c1be57433a2542779 Mon Sep 17 00:00:00 2001 From: gregcorbett Date: Thu, 4 May 2023 15:05:58 +0000 Subject: [PATCH 30/42] Address style issues raised by codeclimate --- .../GOCDB_monitor/validate_local_info_xml.php | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/htdocs/web_portal/GOCDB_monitor/validate_local_info_xml.php b/htdocs/web_portal/GOCDB_monitor/validate_local_info_xml.php index 9e8b98259..a1e20bcd3 100644 --- a/htdocs/web_portal/GOCDB_monitor/validate_local_info_xml.php +++ b/htdocs/web_portal/GOCDB_monitor/validate_local_info_xml.php @@ -1,4 +1,5 @@ \n"; switch ($error->level) { - case LIBXML_ERR_WARNING:$return .= "Warning $error->code: "; - break; - case LIBXML_ERR_ERROR:$return .= "Error $error->code: "; - break; - case LIBXML_ERR_FATAL:$return .= "Fatal Error $error->code: "; - break; + case LIBXML_ERR_WARNING: + $return .= "Warning $error->code: "; + break; + case LIBXML_ERR_ERROR: + $return .= "Error $error->code: "; + break; + case LIBXML_ERR_FATAL: + $return .= "Fatal Error $error->code: "; + break; } $return .= trim($error->message); @@ -22,6 +26,7 @@ function libxml_display_error($error) $return .= " on line $error->line\n"; return $return; } + /** * Loop over all errors printing a message for each */ @@ -37,12 +42,13 @@ function libxml_display_errors() return $message; } + /** * Check that the given xml matches its schema. * The schema .xsd file must have the same name prefix and * be in the same dir as the input .xml file */ -function validate_local_info_xml ($path) +function validate_local_info_xml($path) { // Enable user error handling libxml_use_internal_errors(true); @@ -51,12 +57,11 @@ function validate_local_info_xml ($path) $xml->load($path); - $xsd = preg_replace( '/\.xml$/', '.xsd', $path); + $xsd = preg_replace('/\.xml$/', '.xsd', $path); if (!$xml->schemaValidate($xsd)) { - throw new Exception (libxml_display_errors()); + throw new Exception(libxml_display_errors()); } return; } -?> From 9bffb8daaf2fd53bb912fb0e09a2e0eee8c11896 Mon Sep 17 00:00:00 2001 From: gregcorbett Date: Thu, 20 Apr 2023 09:38:32 +0100 Subject: [PATCH 31/42] Add flag images for NGI_LT --- htdocs/web_portal/img/ngi/NGI_LT.jpg | Bin 0 -> 1005 bytes htdocs/web_portal/img/ngi/fullSize/NGI_LT.jpg | Bin 0 -> 1611 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 htdocs/web_portal/img/ngi/NGI_LT.jpg create mode 100644 htdocs/web_portal/img/ngi/fullSize/NGI_LT.jpg diff --git a/htdocs/web_portal/img/ngi/NGI_LT.jpg b/htdocs/web_portal/img/ngi/NGI_LT.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05052ed7820f871a2cfcb89a2bcf8227dd96d8d7 GIT binary patch literal 1005 zcmbV~Sxgf_7{|Zaqq{8yx}0iMgmOuIDCLsINB}`0A*Oiy!l5EyOa$dLSV08z#o&pW zh=_{#Vk&~i6Ga5{h2X{YfS>~6OMwc7)Q+<)0p&^kcE0@ov-{1L`OPfu!=FHr7@rUi z2q8!%58z?wh%3y>07y!LAOPTjLu#Oib0e9KHUmpkoadt`o0kw@K_i<-#J6Y_AS!7I zpcQ}-JxS2IEO~LRR;fcYDz!!(zAiXYqY5XUye;+zRB;>Nbh%yU$!gnt+^%^lyH2Fq zRa0YE&to>V)#@+cL5KwkA#p4O&C+5>7=~s!3CD@aOC6*V-!SQqc$Xo;&fjq}NIQTG5gE0(4SFIjHqcvjI@N)`-(iE_~RVIeYW=jBuTccrO4&MO!hnHJu~g}n8sq+7Jm*P_ literal 0 HcmV?d00001 diff --git a/htdocs/web_portal/img/ngi/fullSize/NGI_LT.jpg b/htdocs/web_portal/img/ngi/fullSize/NGI_LT.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1c6a94ed1063546875c9f1753bf1bbebc9745631 GIT binary patch literal 1611 zcmeAS@N?(olHy`uVBq!ia0y~yU~gbxU}<1t28txB>^K3WSkfJR9T^xl_H+M9WCijS zl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=Y7GC&cydPGN>D zmxJoM|NsBz^-#zGiZdp8ySp$8^7woLa@b2eeO=j~Gf4@vF{vEg*TlfUYUAnR7*cWT z?L|XI1_qA920lqbQ}_fHAy7F&Es`jkcLLl9WMQ~n$yh}ZcJ+|uE^=Kft7)Q+p~QWP&DM`r(~v8;?`ikn@tB)5PQ1%xvX Date: Wed, 28 Jun 2023 14:00:22 +0000 Subject: [PATCH 32/42] [GT-180] Add API credentials support to search --- htdocs/web_portal/controllers/search.php | 7 ++- htdocs/web_portal/views/search_results.php | 56 +++++++++++++++++++++- lib/Gocdb_Services/Search.php | 19 +++++++- 3 files changed, 79 insertions(+), 3 deletions(-) diff --git a/htdocs/web_portal/controllers/search.php b/htdocs/web_portal/controllers/search.php index 95ad0e18a..d057ae830 100644 --- a/htdocs/web_portal/controllers/search.php +++ b/htdocs/web_portal/controllers/search.php @@ -23,7 +23,7 @@ function search() { require_once __DIR__.'/../../../lib/Gocdb_Services/Factory.php'; - + $params = []; $dn = Get_User_Principle(); $user = \Factory::getUserService()->getUserByPrinciple($dn); @@ -58,11 +58,16 @@ function search() { $serviceResults = $searchServ->getServices($params['searchTerm']); $userResults = $searchServ->getUsers($params['searchTerm']); $ngiResults = $searchServ->getNgis($params['searchTerm']); + $siteIdentifiers = $searchServ->getSiteIdentifiers( + $user, + $params['searchTerm'] + ); $params['siteResults'] = $siteResults; $params['serviceResults'] = $serviceResults; $params['userResults'] = $userResults; $params['ngiResults'] = $ngiResults; + $params['siteIdentifiers'] = $siteIdentifiers; show_view('search_results.php', $params, "Searching for \"{$params['searchTerm']}\""); } diff --git a/htdocs/web_portal/views/search_results.php b/htdocs/web_portal/views/search_results.php index 61911669c..f67456515 100644 --- a/htdocs/web_portal/views/search_results.php +++ b/htdocs/web_portal/views/search_results.php @@ -181,7 +181,61 @@ 0"?> - + + 0) { ?> +
    +
    + +

    + API credentials +

    +
    + + +
  • $test$test{$test_messages[$test]}{$test_doc[$test]}{$test_messages[$test]}{$test_doc[$test]}
    OK
    + + + + + + + + + + + + + + + +
    Site NameIdentifier
    + + getParentSite()->getShortName()) ?> + + + getIdentifier()); ?> +
    + +
    + 0"?> + +
    No results found
    diff --git a/lib/Gocdb_Services/Search.php b/lib/Gocdb_Services/Search.php index 5103a99b3..6b5b42106 100644 --- a/lib/Gocdb_Services/Search.php +++ b/lib/Gocdb_Services/Search.php @@ -101,4 +101,21 @@ public function getNgis($searchTerm) { return $ngis; } -} \ No newline at end of file + /** + * When the user is admin, it retrieves the matching identifiers. + */ + public function getSiteIdentifiers($user, $searchTerm) + { + if ($user->isAdmin()) { + $dql = "SELECT ui FROM APIAuthentication ui " + . " WHERE UPPER(ui.identifier) " + . " LIKE UPPER(concat(concat('%', :searchTerm), '%'))"; + $siteIdentifiers = $this->em + ->createQuery($dql) + ->setParameter(":searchTerm", $searchTerm) + ->getResult(); + + return $siteIdentifiers; + } + } +} From b58bb371bc585ffe5b86761b43e8def07d1e680e Mon Sep 17 00:00:00 2001 From: Adrian Coveney Date: Mon, 14 Aug 2023 10:28:36 +0000 Subject: [PATCH 33/42] Improve clarity of text and layout - Slim down identifier linking/recovery page to focus on important content. - Reword some sections to hopefully be more clear. - Add newline at end of file. --- .../web_portal/views/user/link_identity.php | 61 ++++--------------- 1 file changed, 11 insertions(+), 50 deletions(-) diff --git a/htdocs/web_portal/views/user/link_identity.php b/htdocs/web_portal/views/user/link_identity.php index 1ffb3c5e8..0f922593c 100644 --- a/htdocs/web_portal/views/user/link_identity.php +++ b/htdocs/web_portal/views/user/link_identity.php @@ -1,59 +1,21 @@
    -

    Link Identity or Recover an Account

    - -
    - +

    Link Identifier or Recover an Account

    -

    What is identity linking?

    -
      -
    • - You can use this process to add your current authentication method as a way to log in to an existing account. -
    • -
    • - This allows access to a single account through two or more identifiers. -
    • -
    • - You must have access to the email address associated with the account being linked. -
    • -
    • - Your current authentication type must be different to any authentication types already associated - with the account being linked. -
    • -
    - -

    What is account recovery?

    -
      -
    • - If your identifier has changed, you can use this process to update it and regain control of your old account. -
    • -
    • - You must have access to the email address associated with your old account. -
    • -
    • - Your current authentication type must be the same as the authentication type you enter for your old account. -
    • + This page allows you to either add a new identifier to an exisitng GOCDB account, or recover a GOCDB account if your identifier has changed. You must have access to the email address associated with that GOCDB account. You must be logged in with the new identifier.
    -
    -
    - +
    Your current ID string (e.g. certificate DN) is: - -
    - +
    +
    Your current authentication type is: - - -
    -
    +
    -

    Details of account to be linked or recovered

    - -
    +

    Details of account to be linked to or recovered

    @@ -104,8 +66,6 @@ class="form-control"
    -
    -
    \ No newline at end of file +
    diff --git a/htdocs/web_portal/views/admin/add_scope.php b/htdocs/web_portal/views/admin/add_scope.php index 88fade79c..b460ddf7d 100644 --- a/htdocs/web_portal/views/admin/add_scope.php +++ b/htdocs/web_portal/views/admin/add_scope.php @@ -11,4 +11,4 @@
    -
    \ No newline at end of file +
    diff --git a/htdocs/web_portal/views/admin/added_ngi.php b/htdocs/web_portal/views/admin/added_ngi.php index 1b1c94b1a..ebf8ecbcc 100644 --- a/htdocs/web_portal/views/admin/added_ngi.php +++ b/htdocs/web_portal/views/admin/added_ngi.php @@ -12,4 +12,3 @@ this smaller image should not exceed width:28px, height:25px. - diff --git a/htdocs/web_portal/views/admin/added_project.php b/htdocs/web_portal/views/admin/added_project.php index 8e8743e81..c7e3c87b3 100644 --- a/htdocs/web_portal/views/admin/added_project.php +++ b/htdocs/web_portal/views/admin/added_project.php @@ -10,4 +10,3 @@ - diff --git a/htdocs/web_portal/views/admin/added_scope.php b/htdocs/web_portal/views/admin/added_scope.php index abaa46cb1..83e541679 100644 --- a/htdocs/web_portal/views/admin/added_scope.php +++ b/htdocs/web_portal/views/admin/added_scope.php @@ -9,4 +9,3 @@ - diff --git a/htdocs/web_portal/views/admin/delete_ngi.php b/htdocs/web_portal/views/admin/delete_ngi.php index 491979ad2..4d145d9a5 100644 --- a/htdocs/web_portal/views/admin/delete_ngi.php +++ b/htdocs/web_portal/views/admin/delete_ngi.php @@ -50,4 +50,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/delete_scope_denied.php b/htdocs/web_portal/views/admin/delete_scope_denied.php index 254eae0f0..5acfb70fa 100644 --- a/htdocs/web_portal/views/admin/delete_scope_denied.php +++ b/htdocs/web_portal/views/admin/delete_scope_denied.php @@ -64,4 +64,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/delete_service_type_denied.php b/htdocs/web_portal/views/admin/delete_service_type_denied.php index cde534411..170852f70 100644 --- a/htdocs/web_portal/views/admin/delete_service_type_denied.php +++ b/htdocs/web_portal/views/admin/delete_service_type_denied.php @@ -19,4 +19,4 @@
    These services will need their service type changing before the service type can be deleted. - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/deleted_ngi.php b/htdocs/web_portal/views/admin/deleted_ngi.php index 4feecbdf2..26940f665 100644 --- a/htdocs/web_portal/views/admin/deleted_ngi.php +++ b/htdocs/web_portal/views/admin/deleted_ngi.php @@ -1,4 +1,4 @@

    Deletion Successful


    The NGI '' and any associated sites and services have been successfully removed from GOCDB -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/deleted_scope.php b/htdocs/web_portal/views/admin/deleted_scope.php index 7d2a73d2a..67e485c50 100644 --- a/htdocs/web_portal/views/admin/deleted_scope.php +++ b/htdocs/web_portal/views/admin/deleted_scope.php @@ -1,4 +1,4 @@

    Deletion Successful


    The scope '' has been successfully removed from GOCDB -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/deleted_service_type.php b/htdocs/web_portal/views/admin/deleted_service_type.php index 59d610f58..242a0143c 100644 --- a/htdocs/web_portal/views/admin/deleted_service_type.php +++ b/htdocs/web_portal/views/admin/deleted_service_type.php @@ -1,4 +1,4 @@

    Deletion Successful


    The service type '' has been successfully removed from GOCDB -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/edit_scope.php b/htdocs/web_portal/views/admin/edit_scope.php index 821d2684b..2881c2ee9 100644 --- a/htdocs/web_portal/views/admin/edit_scope.php +++ b/htdocs/web_portal/views/admin/edit_scope.php @@ -13,4 +13,4 @@
    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/edit_user_identifier.php b/htdocs/web_portal/views/admin/edit_user_identifier.php index 5bf878b65..95169c873 100644 --- a/htdocs/web_portal/views/admin/edit_user_identifier.php +++ b/htdocs/web_portal/views/admin/edit_user_identifier.php @@ -41,4 +41,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/edited_scope.php b/htdocs/web_portal/views/admin/edited_scope.php index 294bddc1e..141091791 100644 --- a/htdocs/web_portal/views/admin/edited_scope.php +++ b/htdocs/web_portal/views/admin/edited_scope.php @@ -19,4 +19,3 @@

    - diff --git a/htdocs/web_portal/views/admin/edited_user_identifier.php b/htdocs/web_portal/views/admin/edited_user_identifier.php index 87b259864..e5bc53a98 100644 --- a/htdocs/web_portal/views/admin/edited_user_identifier.php +++ b/htdocs/web_portal/views/admin/edited_user_identifier.php @@ -6,5 +6,3 @@ has been successfully updated. - - diff --git a/htdocs/web_portal/views/admin/edited_user_isadmin.php b/htdocs/web_portal/views/admin/edited_user_isadmin.php index 7d31bb805..298ef3ba3 100644 --- a/htdocs/web_portal/views/admin/edited_user_isadmin.php +++ b/htdocs/web_portal/views/admin/edited_user_isadmin.php @@ -13,5 +13,3 @@ Return to the users page. - - diff --git a/htdocs/web_portal/views/admin/move_service_end_point.php b/htdocs/web_portal/views/admin/move_service_end_point.php index 10f0183e8..32ca79c46 100644 --- a/htdocs/web_portal/views/admin/move_service_end_point.php +++ b/htdocs/web_portal/views/admin/move_service_end_point.php @@ -26,4 +26,4 @@
    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/move_service_end_point_select_old_site.php b/htdocs/web_portal/views/admin/move_service_end_point_select_old_site.php index b258b32a4..23634b512 100644 --- a/htdocs/web_portal/views/admin/move_service_end_point_select_old_site.php +++ b/htdocs/web_portal/views/admin/move_service_end_point_select_old_site.php @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/move_site.php b/htdocs/web_portal/views/admin/move_site.php index 73241db5c..0f30ae81e 100644 --- a/htdocs/web_portal/views/admin/move_site.php +++ b/htdocs/web_portal/views/admin/move_site.php @@ -26,4 +26,4 @@
    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/move_site_select_old_ngi.php b/htdocs/web_portal/views/admin/move_site_select_old_ngi.php index 6e2a279bc..432c3c734 100644 --- a/htdocs/web_portal/views/admin/move_site_select_old_ngi.php +++ b/htdocs/web_portal/views/admin/move_site_select_old_ngi.php @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/moved_service_end_point.php b/htdocs/web_portal/views/admin/moved_service_end_point.php index d1a799006..4e4ded933 100644 --- a/htdocs/web_portal/views/admin/moved_service_end_point.php +++ b/htdocs/web_portal/views/admin/moved_service_end_point.php @@ -13,4 +13,4 @@ . " "; } ?> - \ No newline at end of file + diff --git a/htdocs/web_portal/views/admin/moved_site.php b/htdocs/web_portal/views/admin/moved_site.php index 1374f4be5..f70d36f27 100644 --- a/htdocs/web_portal/views/admin/moved_site.php +++ b/htdocs/web_portal/views/admin/moved_site.php @@ -13,4 +13,4 @@ . " "; } ?> - \ No newline at end of file + diff --git a/htdocs/web_portal/views/downtime/add_downtime.php b/htdocs/web_portal/views/downtime/add_downtime.php index 35508c0d2..50b255cb0 100644 --- a/htdocs/web_portal/views/downtime/add_downtime.php +++ b/htdocs/web_portal/views/downtime/add_downtime.php @@ -631,21 +631,3 @@ function getURLParameter(name) { }*/ - - - - - - - - - - - - - - - - - - diff --git a/htdocs/web_portal/views/downtime/added_downtime.php b/htdocs/web_portal/views/downtime/added_downtime.php index 563515a0c..68ed49348 100644 --- a/htdocs/web_portal/views/downtime/added_downtime.php +++ b/htdocs/web_portal/views/downtime/added_downtime.php @@ -2,4 +2,4 @@

    Success


    New Downtime successfully created.
    View new downtime - \ No newline at end of file + diff --git a/htdocs/web_portal/views/downtime/confirm_add_downtime.php b/htdocs/web_portal/views/downtime/confirm_add_downtime.php index 6ecebd831..84583afb1 100644 --- a/htdocs/web_portal/views/downtime/confirm_add_downtime.php +++ b/htdocs/web_portal/views/downtime/confirm_add_downtime.php @@ -99,4 +99,3 @@ - diff --git a/htdocs/web_portal/views/downtime/custom_json_encode.php b/htdocs/web_portal/views/downtime/custom_json_encode.php index ed9ec8b2f..57dbac537 100644 --- a/htdocs/web_portal/views/downtime/custom_json_encode.php +++ b/htdocs/web_portal/views/downtime/custom_json_encode.php @@ -59,4 +59,4 @@ function __json_encode( $data ) { $json = strtolower(var_export( $data, true )); } return $json; -} \ No newline at end of file +} diff --git a/htdocs/web_portal/views/downtime/deleted_downtime.php b/htdocs/web_portal/views/downtime/deleted_downtime.php index 7366bca59..d60c2efc9 100644 --- a/htdocs/web_portal/views/downtime/deleted_downtime.php +++ b/htdocs/web_portal/views/downtime/deleted_downtime.php @@ -3,4 +3,4 @@ Downtime deleted.
    Go Home - \ No newline at end of file + diff --git a/htdocs/web_portal/views/downtime/downtimes_calendar.php b/htdocs/web_portal/views/downtime/downtimes_calendar.php index b3ad0e7c1..e46196e55 100644 --- a/htdocs/web_portal/views/downtime/downtimes_calendar.php +++ b/htdocs/web_portal/views/downtime/downtimes_calendar.php @@ -676,4 +676,4 @@ function updateDate(time) { changeViewMode(); }) - \ No newline at end of file + diff --git a/htdocs/web_portal/views/downtime/edited_downtime.php b/htdocs/web_portal/views/downtime/edited_downtime.php index befc0212d..c9d94370f 100644 --- a/htdocs/web_portal/views/downtime/edited_downtime.php +++ b/htdocs/web_portal/views/downtime/edited_downtime.php @@ -3,4 +3,4 @@ Downtime updated.
    View downtime - \ No newline at end of file + diff --git a/htdocs/web_portal/views/downtime/ended_downtime.php b/htdocs/web_portal/views/downtime/ended_downtime.php index 32932746b..049cab3dd 100644 --- a/htdocs/web_portal/views/downtime/ended_downtime.php +++ b/htdocs/web_portal/views/downtime/ended_downtime.php @@ -3,4 +3,4 @@ Downtime will end within the next 60 seconds.
    View downtime - \ No newline at end of file + diff --git a/htdocs/web_portal/views/error.php b/htdocs/web_portal/views/error.php index 0f9dd5898..d7dea0975 100644 --- a/htdocs/web_portal/views/error.php +++ b/htdocs/web_portal/views/error.php @@ -10,4 +10,4 @@ } ?> - \ No newline at end of file + diff --git a/htdocs/web_portal/views/exportProperties.php b/htdocs/web_portal/views/exportProperties.php index e3ddb11d5..6bb7bcde1 100644 --- a/htdocs/web_portal/views/exportProperties.php +++ b/htdocs/web_portal/views/exportProperties.php @@ -6,4 +6,3 @@ echo(PHP_EOL); } ?> - diff --git a/htdocs/web_portal/views/my_sites.php b/htdocs/web_portal/views/my_sites.php index 36428d88f..938ccfd8e 100644 --- a/htdocs/web_portal/views/my_sites.php +++ b/htdocs/web_portal/views/my_sites.php @@ -93,4 +93,3 @@ - diff --git a/htdocs/web_portal/views/ngi/edit_ngi.php b/htdocs/web_portal/views/ngi/edit_ngi.php index ceefa63d3..49f86dbbb 100644 --- a/htdocs/web_portal/views/ngi/edit_ngi.php +++ b/htdocs/web_portal/views/ngi/edit_ngi.php @@ -85,4 +85,4 @@ '#optionalScopeCheckBoxDIV', true); }); - \ No newline at end of file + diff --git a/htdocs/web_portal/views/ngi/ngi_updated.php b/htdocs/web_portal/views/ngi/ngi_updated.php index 5a4062123..24212102f 100644 --- a/htdocs/web_portal/views/ngi/ngi_updated.php +++ b/htdocs/web_portal/views/ngi/ngi_updated.php @@ -3,4 +3,4 @@ NGI updated.
    View NGI - \ No newline at end of file + diff --git a/htdocs/web_portal/views/political_role/new_request.php b/htdocs/web_portal/views/political_role/new_request.php index 88a3e43b3..735041563 100644 --- a/htdocs/web_portal/views/political_role/new_request.php +++ b/htdocs/web_portal/views/political_role/new_request.php @@ -3,4 +3,4 @@
    Role requested - View your pending role requests on the Manage Roles page.
    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/political_role/request_accepted.php b/htdocs/web_portal/views/political_role/request_accepted.php index 791bacc4c..2c5f8868a 100644 --- a/htdocs/web_portal/views/political_role/request_accepted.php +++ b/htdocs/web_portal/views/political_role/request_accepted.php @@ -1,4 +1,4 @@

    Success

    Role request accepted -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/political_role/request_denied.php b/htdocs/web_portal/views/political_role/request_denied.php index b819527c9..dbbaf4c80 100644 --- a/htdocs/web_portal/views/political_role/request_denied.php +++ b/htdocs/web_portal/views/political_role/request_denied.php @@ -1,4 +1,4 @@

    Success

    Role request denied -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/political_role/request_role.php b/htdocs/web_portal/views/political_role/request_role.php index ed2042dd3..f34fe4f22 100644 --- a/htdocs/web_portal/views/political_role/request_role.php +++ b/htdocs/web_portal/views/political_role/request_role.php @@ -22,4 +22,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/political_role/role_revoked.php b/htdocs/web_portal/views/political_role/role_revoked.php index 5faf0864b..7174ce985 100644 --- a/htdocs/web_portal/views/political_role/role_revoked.php +++ b/htdocs/web_portal/views/political_role/role_revoked.php @@ -4,4 +4,3 @@
    Back to Manage Role Requests - diff --git a/htdocs/web_portal/views/political_role/role_self_revoked.php b/htdocs/web_portal/views/political_role/role_self_revoked.php index 2a2d894a8..7a2149456 100644 --- a/htdocs/web_portal/views/political_role/role_self_revoked.php +++ b/htdocs/web_portal/views/political_role/role_self_revoked.php @@ -4,4 +4,3 @@
    Back to Manage Role Requests - diff --git a/htdocs/web_portal/views/project/add_ngis.php b/htdocs/web_portal/views/project/add_ngis.php index e787e3bde..89d6bb021 100644 --- a/htdocs/web_portal/views/project/add_ngis.php +++ b/htdocs/web_portal/views/project/add_ngis.php @@ -40,4 +40,3 @@ - diff --git a/htdocs/web_portal/views/project/added_ngis.php b/htdocs/web_portal/views/project/added_ngis.php index 25c7eb159..f61f5747d 100644 --- a/htdocs/web_portal/views/project/added_ngis.php +++ b/htdocs/web_portal/views/project/added_ngis.php @@ -12,4 +12,4 @@ . " "; } ?> - \ No newline at end of file + diff --git a/htdocs/web_portal/views/project/deleted_project.php b/htdocs/web_portal/views/project/deleted_project.php index bc0604de3..589f33aa3 100644 --- a/htdocs/web_portal/views/project/deleted_project.php +++ b/htdocs/web_portal/views/project/deleted_project.php @@ -1,4 +1,4 @@

    Deletion Successful


    The project '' has been successfully removed from GOCDB -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/project/edit_project.php b/htdocs/web_portal/views/project/edit_project.php index de5f05fd6..9b38a9725 100644 --- a/htdocs/web_portal/views/project/edit_project.php +++ b/htdocs/web_portal/views/project/edit_project.php @@ -13,4 +13,4 @@
    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/project/edited_project.php b/htdocs/web_portal/views/project/edited_project.php index 9057a631d..855043a98 100644 --- a/htdocs/web_portal/views/project/edited_project.php +++ b/htdocs/web_portal/views/project/edited_project.php @@ -15,5 +15,3 @@

    - - diff --git a/htdocs/web_portal/views/project/remove_ngis.php b/htdocs/web_portal/views/project/remove_ngis.php index 4d165ca87..2f7c63670 100644 --- a/htdocs/web_portal/views/project/remove_ngis.php +++ b/htdocs/web_portal/views/project/remove_ngis.php @@ -35,4 +35,3 @@ - diff --git a/htdocs/web_portal/views/project/removed_ngis.php b/htdocs/web_portal/views/project/removed_ngis.php index fa5518ef9..ee6f05456 100644 --- a/htdocs/web_portal/views/project/removed_ngis.php +++ b/htdocs/web_portal/views/project/removed_ngis.php @@ -4,4 +4,4 @@ project - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/add_endpoint_properties.php b/htdocs/web_portal/views/service/add_endpoint_properties.php index 17e4612ac..a981edfbd 100644 --- a/htdocs/web_portal/views/service/add_endpoint_properties.php +++ b/htdocs/web_portal/views/service/add_endpoint_properties.php @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/add_endpoint_properties_confirmation.php b/htdocs/web_portal/views/service/add_endpoint_properties_confirmation.php index b318672bb..9c7b933c8 100644 --- a/htdocs/web_portal/views/service/add_endpoint_properties_confirmation.php +++ b/htdocs/web_portal/views/service/add_endpoint_properties_confirmation.php @@ -7,4 +7,4 @@

    Add Endpoint Properties


    -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/add_service_properties.php b/htdocs/web_portal/views/service/add_service_properties.php index 50da4216a..3fe624d24 100644 --- a/htdocs/web_portal/views/service/add_service_properties.php +++ b/htdocs/web_portal/views/service/add_service_properties.php @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/add_service_properties_confirmation.php b/htdocs/web_portal/views/service/add_service_properties_confirmation.php index cf2f7e9e4..0e4115b1f 100644 --- a/htdocs/web_portal/views/service/add_service_properties_confirmation.php +++ b/htdocs/web_portal/views/service/add_service_properties_confirmation.php @@ -7,4 +7,4 @@

    Add Service Properties


    -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/added_endpoint_properties.php b/htdocs/web_portal/views/service/added_endpoint_properties.php index 74b93f9b5..a008464f6 100644 --- a/htdocs/web_portal/views/service/added_endpoint_properties.php +++ b/htdocs/web_portal/views/service/added_endpoint_properties.php @@ -10,4 +10,4 @@ View endpoint - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/added_service_properties.php b/htdocs/web_portal/views/service/added_service_properties.php index a62361886..d35e773c9 100644 --- a/htdocs/web_portal/views/service/added_service_properties.php +++ b/htdocs/web_portal/views/service/added_service_properties.php @@ -10,4 +10,4 @@ View service - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/delete_service_endpoint.php b/htdocs/web_portal/views/service/delete_service_endpoint.php index ef8cbdf7c..46694dbd5 100644 --- a/htdocs/web_portal/views/service/delete_service_endpoint.php +++ b/htdocs/web_portal/views/service/delete_service_endpoint.php @@ -20,4 +20,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/deleted_endpoint_properties.php b/htdocs/web_portal/views/service/deleted_endpoint_properties.php index 11517b36e..91401ad01 100644 --- a/htdocs/web_portal/views/service/deleted_endpoint_properties.php +++ b/htdocs/web_portal/views/service/deleted_endpoint_properties.php @@ -17,4 +17,4 @@ View endpoint

    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/deleted_service_endpoint.php b/htdocs/web_portal/views/service/deleted_service_endpoint.php index ff5ba8d37..2290a4b5d 100644 --- a/htdocs/web_portal/views/service/deleted_service_endpoint.php +++ b/htdocs/web_portal/views/service/deleted_service_endpoint.php @@ -15,4 +15,4 @@ View service

    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/deleted_service_properties.php b/htdocs/web_portal/views/service/deleted_service_properties.php index 93a6623e7..cd9783e19 100644 --- a/htdocs/web_portal/views/service/deleted_service_properties.php +++ b/htdocs/web_portal/views/service/deleted_service_properties.php @@ -17,4 +17,4 @@ View service

    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/edit_endpoint_property.php b/htdocs/web_portal/views/service/edit_endpoint_property.php index 4386ff6f2..1416599ad 100644 --- a/htdocs/web_portal/views/service/edit_endpoint_property.php +++ b/htdocs/web_portal/views/service/edit_endpoint_property.php @@ -22,4 +22,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/edit_service_property.php b/htdocs/web_portal/views/service/edit_service_property.php index f4f193a53..a32f7c619 100644 --- a/htdocs/web_portal/views/service/edit_service_property.php +++ b/htdocs/web_portal/views/service/edit_service_property.php @@ -21,4 +21,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/endpoint_property_updated.php b/htdocs/web_portal/views/service/endpoint_property_updated.php index af8920e57..2800419b1 100644 --- a/htdocs/web_portal/views/service/endpoint_property_updated.php +++ b/htdocs/web_portal/views/service/endpoint_property_updated.php @@ -3,4 +3,4 @@ Endpoint Property updated.
    View endpoint - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/service_deleted.php b/htdocs/web_portal/views/service/service_deleted.php index d0d32aadb..7aab00e81 100644 --- a/htdocs/web_portal/views/service/service_deleted.php +++ b/htdocs/web_portal/views/service/service_deleted.php @@ -3,4 +3,4 @@ Service deleted.
    Go Home - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/service_endpoint_updated.php b/htdocs/web_portal/views/service/service_endpoint_updated.php index 38e14d4b6..741318c8c 100644 --- a/htdocs/web_portal/views/service/service_endpoint_updated.php +++ b/htdocs/web_portal/views/service/service_endpoint_updated.php @@ -6,4 +6,4 @@
    View Service - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/service_property_updated.php b/htdocs/web_portal/views/service/service_property_updated.php index e960f5c4f..e810d2eb4 100644 --- a/htdocs/web_portal/views/service/service_property_updated.php +++ b/htdocs/web_portal/views/service/service_property_updated.php @@ -3,4 +3,4 @@ Service Property updated.
    View service - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/service_updated.php b/htdocs/web_portal/views/service/service_updated.php index 2dbf7753e..c663f09dd 100644 --- a/htdocs/web_portal/views/service/service_updated.php +++ b/htdocs/web_portal/views/service/service_updated.php @@ -3,4 +3,4 @@ Service updated.
    View service - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service/submit_add_service.php b/htdocs/web_portal/views/service/submit_add_service.php index 674eb6cb8..d07c9eefe 100644 --- a/htdocs/web_portal/views/service/submit_add_service.php +++ b/htdocs/web_portal/views/service/submit_add_service.php @@ -3,4 +3,4 @@ New Service successfully created.
    View new service - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/add_new_se_to_service_group.php b/htdocs/web_portal/views/service_group/add_new_se_to_service_group.php index 0a42a4cba..7ba03c24d 100644 --- a/htdocs/web_portal/views/service_group/add_new_se_to_service_group.php +++ b/htdocs/web_portal/views/service_group/add_new_se_to_service_group.php @@ -103,4 +103,4 @@
    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/add_service_group.php b/htdocs/web_portal/views/service_group/add_service_group.php index 0cbfbc74c..26d9efc7e 100644 --- a/htdocs/web_portal/views/service_group/add_service_group.php +++ b/htdocs/web_portal/views/service_group/add_service_group.php @@ -53,4 +53,4 @@ '#optionalScopeCheckBoxDIV', true); }); - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/add_service_group_properties.php b/htdocs/web_portal/views/service_group/add_service_group_properties.php index aa7a76004..2a30bf862 100644 --- a/htdocs/web_portal/views/service_group/add_service_group_properties.php +++ b/htdocs/web_portal/views/service_group/add_service_group_properties.php @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/add_service_group_properties_confirmation.php b/htdocs/web_portal/views/service_group/add_service_group_properties_confirmation.php index 520b921c2..700498b21 100644 --- a/htdocs/web_portal/views/service_group/add_service_group_properties_confirmation.php +++ b/htdocs/web_portal/views/service_group/add_service_group_properties_confirmation.php @@ -7,4 +7,4 @@

    Add Service Group Properties


    -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/added_service_group_properties.php b/htdocs/web_portal/views/service_group/added_service_group_properties.php index ee0d1cd24..4b16eda0e 100644 --- a/htdocs/web_portal/views/service_group/added_service_group_properties.php +++ b/htdocs/web_portal/views/service_group/added_service_group_properties.php @@ -10,4 +10,4 @@ View service group - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/deleted_service_group.php b/htdocs/web_portal/views/service_group/deleted_service_group.php index 195abc534..a024a47f8 100644 --- a/htdocs/web_portal/views/service_group/deleted_service_group.php +++ b/htdocs/web_portal/views/service_group/deleted_service_group.php @@ -3,4 +3,4 @@ Service Group deleted.
    Go Home - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/deleted_service_group_properties.php b/htdocs/web_portal/views/service_group/deleted_service_group_properties.php index 287dfff32..e25f66d25 100644 --- a/htdocs/web_portal/views/service_group/deleted_service_group_properties.php +++ b/htdocs/web_portal/views/service_group/deleted_service_group_properties.php @@ -17,4 +17,4 @@ View service group

    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/edit_service_group_property.php b/htdocs/web_portal/views/service_group/edit_service_group_property.php index af8702b34..5f6106bd1 100644 --- a/htdocs/web_portal/views/service_group/edit_service_group_property.php +++ b/htdocs/web_portal/views/service_group/edit_service_group_property.php @@ -21,4 +21,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/return_removed_se.php b/htdocs/web_portal/views/service_group/return_removed_se.php index d60de058b..6aade1f51 100644 --- a/htdocs/web_portal/views/service_group/return_removed_se.php +++ b/htdocs/web_portal/views/service_group/return_removed_se.php @@ -1,2 +1,2 @@ getId(); \ No newline at end of file +echo $params['se']->getId(); diff --git a/htdocs/web_portal/views/service_group/se_search.php b/htdocs/web_portal/views/service_group/se_search.php index f3ccad330..d3e613003 100644 --- a/htdocs/web_portal/views/service_group/se_search.php +++ b/htdocs/web_portal/views/service_group/se_search.php @@ -1,4 +1,4 @@ \ No newline at end of file +?> diff --git a/htdocs/web_portal/views/service_group/service_group_property_updated.php b/htdocs/web_portal/views/service_group/service_group_property_updated.php index ec462f00e..197cc1ab5 100644 --- a/htdocs/web_portal/views/service_group/service_group_property_updated.php +++ b/htdocs/web_portal/views/service_group/service_group_property_updated.php @@ -3,4 +3,4 @@ Service Group Property updated.
    View service group - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/submit_add_new_se_to_service_group.php b/htdocs/web_portal/views/service_group/submit_add_new_se_to_service_group.php index 9bf9d0d7a..871ecb057 100644 --- a/htdocs/web_portal/views/service_group/submit_add_new_se_to_service_group.php +++ b/htdocs/web_portal/views/service_group/submit_add_new_se_to_service_group.php @@ -3,4 +3,4 @@ New Service successfully created and added to service group .
    View service group - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/submit_add_service_group.php b/htdocs/web_portal/views/service_group/submit_add_service_group.php index 0607b00f8..2ae41ff91 100644 --- a/htdocs/web_portal/views/service_group/submit_add_service_group.php +++ b/htdocs/web_portal/views/service_group/submit_add_service_group.php @@ -3,4 +3,4 @@ New Service group getName()) ?> successfully created.
    View getName()) ?> - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/submit_edited_service_group.php b/htdocs/web_portal/views/service_group/submit_edited_service_group.php index 2276b3f11..2ef747926 100644 --- a/htdocs/web_portal/views/service_group/submit_edited_service_group.php +++ b/htdocs/web_portal/views/service_group/submit_edited_service_group.php @@ -3,4 +3,4 @@ Service group getName()) ?> successfully edited.
    View getName()) ?> - \ No newline at end of file + diff --git a/htdocs/web_portal/views/service_group/submit_service_group_ses.php b/htdocs/web_portal/views/service_group/submit_service_group_ses.php index c5bce2704..ff5f9409d 100644 --- a/htdocs/web_portal/views/service_group/submit_service_group_ses.php +++ b/htdocs/web_portal/views/service_group/submit_service_group_ses.php @@ -3,4 +3,4 @@ Services successfully added to service group.
    View service group - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/add_site_properties.php b/htdocs/web_portal/views/site/add_site_properties.php index 3969a142f..98c125b1a 100644 --- a/htdocs/web_portal/views/site/add_site_properties.php +++ b/htdocs/web_portal/views/site/add_site_properties.php @@ -7,4 +7,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/add_site_properties_confirmation.php b/htdocs/web_portal/views/site/add_site_properties_confirmation.php index b6e82d260..f0a42b79d 100644 --- a/htdocs/web_portal/views/site/add_site_properties_confirmation.php +++ b/htdocs/web_portal/views/site/add_site_properties_confirmation.php @@ -7,4 +7,4 @@

    Add Site Properties


    -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/add_site_property.php b/htdocs/web_portal/views/site/add_site_property.php index 1cfae18fc..055b9609e 100644 --- a/htdocs/web_portal/views/site/add_site_property.php +++ b/htdocs/web_portal/views/site/add_site_property.php @@ -19,4 +19,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/added_site_properties.php b/htdocs/web_portal/views/site/added_site_properties.php index bdf7af744..c3feb8c02 100644 --- a/htdocs/web_portal/views/site/added_site_properties.php +++ b/htdocs/web_portal/views/site/added_site_properties.php @@ -10,4 +10,4 @@ View site - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/added_site_property.php b/htdocs/web_portal/views/site/added_site_property.php index ef1bda414..a3677f099 100644 --- a/htdocs/web_portal/views/site/added_site_property.php +++ b/htdocs/web_portal/views/site/added_site_property.php @@ -3,4 +3,4 @@ New site property successfully created.
    View site - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/cert_status_edited.php b/htdocs/web_portal/views/site/cert_status_edited.php index 545826e7f..006d29379 100644 --- a/htdocs/web_portal/views/site/cert_status_edited.php +++ b/htdocs/web_portal/views/site/cert_status_edited.php @@ -3,4 +3,4 @@ Certification status updated.
    View site - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/delete_site.php b/htdocs/web_portal/views/site/delete_site.php index 0c4f2d75f..ed078722a 100644 --- a/htdocs/web_portal/views/site/delete_site.php +++ b/htdocs/web_portal/views/site/delete_site.php @@ -37,4 +37,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/deleted_site.php b/htdocs/web_portal/views/site/deleted_site.php index 2fd602337..7398c7b3d 100644 --- a/htdocs/web_portal/views/site/deleted_site.php +++ b/htdocs/web_portal/views/site/deleted_site.php @@ -1,4 +1,4 @@

    Deletion Successful


    The site '' and any associated services have been successfully removed from GOCDB -
    \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/deleted_site_properties.php b/htdocs/web_portal/views/site/deleted_site_properties.php index 8f68172f6..d9d6ebde4 100644 --- a/htdocs/web_portal/views/site/deleted_site_properties.php +++ b/htdocs/web_portal/views/site/deleted_site_properties.php @@ -17,4 +17,4 @@ View Site

    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/edit_cert_status.php b/htdocs/web_portal/views/site/edit_cert_status.php index 2b9ebd162..09ef38a21 100644 --- a/htdocs/web_portal/views/site/edit_cert_status.php +++ b/htdocs/web_portal/views/site/edit_cert_status.php @@ -28,4 +28,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/edit_site_property.php b/htdocs/web_portal/views/site/edit_site_property.php index a5feb1e96..75f43f40c 100644 --- a/htdocs/web_portal/views/site/edit_site_property.php +++ b/htdocs/web_portal/views/site/edit_site_property.php @@ -21,4 +21,4 @@ - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/site_property_updated.php b/htdocs/web_portal/views/site/site_property_updated.php index 1d2511eee..7601d8e30 100644 --- a/htdocs/web_portal/views/site/site_property_updated.php +++ b/htdocs/web_portal/views/site/site_property_updated.php @@ -3,4 +3,4 @@ Site Property updated.
    View site - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/site_updated.php b/htdocs/web_portal/views/site/site_updated.php index c597f8166..d778b12a7 100644 --- a/htdocs/web_portal/views/site/site_updated.php +++ b/htdocs/web_portal/views/site/site_updated.php @@ -3,4 +3,4 @@ Site updated.
    View site - \ No newline at end of file + diff --git a/htdocs/web_portal/views/site/submit_new_site.php b/htdocs/web_portal/views/site/submit_new_site.php index 9cdf4062f..45cb5e38c 100644 --- a/htdocs/web_portal/views/site/submit_new_site.php +++ b/htdocs/web_portal/views/site/submit_new_site.php @@ -3,4 +3,4 @@ New Site successfully created.
    View new site - \ No newline at end of file + diff --git a/htdocs/web_portal/views/user/deleted_user.php b/htdocs/web_portal/views/user/deleted_user.php index e55bcc510..cfcfbdb30 100644 --- a/htdocs/web_portal/views/user/deleted_user.php +++ b/htdocs/web_portal/views/user/deleted_user.php @@ -3,4 +3,4 @@ User deleted.
    Go Home - \ No newline at end of file + diff --git a/htdocs/web_portal/views/user/deleted_user_identifier.php b/htdocs/web_portal/views/user/deleted_user_identifier.php index 34f79f761..a6a5141f3 100644 --- a/htdocs/web_portal/views/user/deleted_user_identifier.php +++ b/htdocs/web_portal/views/user/deleted_user_identifier.php @@ -4,4 +4,4 @@ View user - \ No newline at end of file + diff --git a/htdocs/web_portal/views/user/link_identity.php b/htdocs/web_portal/views/user/link_identity.php index 2588e53da..ff5513281 100644 --- a/htdocs/web_portal/views/user/link_identity.php +++ b/htdocs/web_portal/views/user/link_identity.php @@ -158,4 +158,3 @@ class="form-control" - diff --git a/htdocs/web_portal/views/user/link_identity_accepted.php b/htdocs/web_portal/views/user/link_identity_accepted.php index 2d144c51e..2a05753ac 100644 --- a/htdocs/web_portal/views/user/link_identity_accepted.php +++ b/htdocs/web_portal/views/user/link_identity_accepted.php @@ -14,4 +14,4 @@

    If you did not receive an email, please check the above details are correct, and the guidance on identity linking and account recovery.

    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/user/link_identity_rejected.php b/htdocs/web_portal/views/user/link_identity_rejected.php index 471632323..58d7995fb 100644 --- a/htdocs/web_portal/views/user/link_identity_rejected.php +++ b/htdocs/web_portal/views/user/link_identity_rejected.php @@ -17,4 +17,4 @@ please unlink all other identifiers first.

    If you wish to add new identifiers to this account, please access GOCDB while authenticated with the new identifier.

    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/user/linked_identity.php b/htdocs/web_portal/views/user/linked_identity.php index 34a0ce3e7..598ef24e0 100644 --- a/htdocs/web_portal/views/user/linked_identity.php +++ b/htdocs/web_portal/views/user/linked_identity.php @@ -2,4 +2,4 @@

    Success

    Your identifier has been successfully
    - \ No newline at end of file + diff --git a/htdocs/web_portal/views/user/registered.php b/htdocs/web_portal/views/user/registered.php index a23ab75e4..8cd1cfd9b 100644 --- a/htdocs/web_portal/views/user/registered.php +++ b/htdocs/web_portal/views/user/registered.php @@ -6,4 +6,4 @@ New user registered.
    View user - \ No newline at end of file + diff --git a/htdocs/web_portal/views/user/user_updated.php b/htdocs/web_portal/views/user/user_updated.php index 5da2449be..56dc7e87e 100644 --- a/htdocs/web_portal/views/user/user_updated.php +++ b/htdocs/web_portal/views/user/user_updated.php @@ -3,4 +3,4 @@ User updated.
    View user - \ No newline at end of file + diff --git a/lib/Authentication/_autoload.php b/lib/Authentication/_autoload.php index bed78a5a8..1e1ca4e7a 100644 --- a/lib/Authentication/_autoload.php +++ b/lib/Authentication/_autoload.php @@ -73,4 +73,3 @@ function securityLoader($className){ spl_autoload_register(__NAMESPACE__ .'\securityLoader', false); - diff --git a/lib/DAOs/AbstractDAO.php b/lib/DAOs/AbstractDAO.php index b80927402..894585518 100644 --- a/lib/DAOs/AbstractDAO.php +++ b/lib/DAOs/AbstractDAO.php @@ -25,4 +25,4 @@ public function setEntityManager(\Doctrine\ORM\EntityManager $em){ public function getEntityManager(){ return $this->em; } -} \ No newline at end of file +} diff --git a/lib/DAOs/NGIDAO.php b/lib/DAOs/NGIDAO.php index 168784e26..ee87cb3e6 100644 --- a/lib/DAOs/NGIDAO.php +++ b/lib/DAOs/NGIDAO.php @@ -51,4 +51,4 @@ public function addNGIToArchive(\NGI $ngi, \User $user){ $this->em->persist($archievedNgi); } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/CertificationStatus.php b/lib/Gocdb_Services/CertificationStatus.php index 25252a6a9..0ad274572 100644 --- a/lib/Gocdb_Services/CertificationStatus.php +++ b/lib/Gocdb_Services/CertificationStatus.php @@ -160,4 +160,4 @@ public function isChangeValid(\Site $site, \CertificationStatus $newCertStatus) } } } -?> \ No newline at end of file +?> diff --git a/lib/Gocdb_Services/ExtensionsService.php b/lib/Gocdb_Services/ExtensionsService.php index 7930a8d0d..c1f05643a 100644 --- a/lib/Gocdb_Services/ExtensionsService.php +++ b/lib/Gocdb_Services/ExtensionsService.php @@ -58,4 +58,4 @@ public function getServiceGroupExtensionsKeyNames() { return $qb->getQuery()->execute(); } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetCertStatusChanges.php b/lib/Gocdb_Services/PI/GetCertStatusChanges.php index 70a25c889..4835c0644 100644 --- a/lib/Gocdb_Services/PI/GetCertStatusChanges.php +++ b/lib/Gocdb_Services/PI/GetCertStatusChanges.php @@ -354,4 +354,4 @@ public function getPostExecutionPageInfo(){ $pageInfo['count'] = $this->resultSetSize; return $pageInfo; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetCertStatusDate.php b/lib/Gocdb_Services/PI/GetCertStatusDate.php index ae3ad157b..e91f7c6cb 100644 --- a/lib/Gocdb_Services/PI/GetCertStatusDate.php +++ b/lib/Gocdb_Services/PI/GetCertStatusDate.php @@ -345,4 +345,4 @@ public function getPostExecutionPageInfo(){ $pageInfo['count'] = $this->resultSetSize; return $pageInfo; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetNGIContacts.php b/lib/Gocdb_Services/PI/GetNGIContacts.php index 254ac19d1..514eec313 100644 --- a/lib/Gocdb_Services/PI/GetNGIContacts.php +++ b/lib/Gocdb_Services/PI/GetNGIContacts.php @@ -362,4 +362,4 @@ public function getPostExecutionPageInfo(){ $pageInfo['count'] = $this->resultSetSize; return $pageInfo; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetNGIList.php b/lib/Gocdb_Services/PI/GetNGIList.php index 48cc2a768..92271e6e0 100644 --- a/lib/Gocdb_Services/PI/GetNGIList.php +++ b/lib/Gocdb_Services/PI/GetNGIList.php @@ -233,4 +233,4 @@ private function getXML(){ }*/ -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetProjectContacts.php b/lib/Gocdb_Services/PI/GetProjectContacts.php index 56c5b017c..181eaf2b5 100644 --- a/lib/Gocdb_Services/PI/GetProjectContacts.php +++ b/lib/Gocdb_Services/PI/GetProjectContacts.php @@ -342,4 +342,4 @@ public function getPostExecutionPageInfo(){ $pageInfo['count'] = $this->resultSetSize; return $pageInfo; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetServiceGroupRole.php b/lib/Gocdb_Services/PI/GetServiceGroupRole.php index f8b05f1be..03d4a5bff 100644 --- a/lib/Gocdb_Services/PI/GetServiceGroupRole.php +++ b/lib/Gocdb_Services/PI/GetServiceGroupRole.php @@ -377,4 +377,4 @@ public function getPostExecutionPageInfo(){ $pageInfo['count'] = $this->resultSetSize; return $pageInfo; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetServiceTypes.php b/lib/Gocdb_Services/PI/GetServiceTypes.php index 5ff72e1ad..3588ea738 100644 --- a/lib/Gocdb_Services/PI/GetServiceTypes.php +++ b/lib/Gocdb_Services/PI/GetServiceTypes.php @@ -180,4 +180,4 @@ private function getXML(){ return $xmlString; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetSiteContacts.php b/lib/Gocdb_Services/PI/GetSiteContacts.php index f91e290d1..c6af53fc5 100644 --- a/lib/Gocdb_Services/PI/GetSiteContacts.php +++ b/lib/Gocdb_Services/PI/GetSiteContacts.php @@ -390,4 +390,4 @@ public function getPostExecutionPageInfo(){ $pageInfo['count'] = $this->resultSetSize; return $pageInfo; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetSiteSecurityInfo.php b/lib/Gocdb_Services/PI/GetSiteSecurityInfo.php index ac835bca2..73bc69d6b 100644 --- a/lib/Gocdb_Services/PI/GetSiteSecurityInfo.php +++ b/lib/Gocdb_Services/PI/GetSiteSecurityInfo.php @@ -353,4 +353,4 @@ public function getPostExecutionPageInfo(){ $pageInfo['count'] = $this->resultSetSize; return $pageInfo; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/GetSubGridList.php b/lib/Gocdb_Services/PI/GetSubGridList.php index 083cedf55..ef2bac31d 100644 --- a/lib/Gocdb_Services/PI/GetSubGridList.php +++ b/lib/Gocdb_Services/PI/GetSubGridList.php @@ -175,4 +175,4 @@ private function getXML(){ $xmlString = $dom->saveXML (); return $xmlString; } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/IPIQueryPageable.php b/lib/Gocdb_Services/PI/IPIQueryPageable.php index 7d2d0471f..89d56d6b3 100644 --- a/lib/Gocdb_Services/PI/IPIQueryPageable.php +++ b/lib/Gocdb_Services/PI/IPIQueryPageable.php @@ -56,4 +56,4 @@ public function setPageSize($pageSize); */ public function getPostExecutionPageInfo(); -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/PI/QueryBuilders/ExtensionsParser.php b/lib/Gocdb_Services/PI/QueryBuilders/ExtensionsParser.php index 7b4e10c2b..1637694b7 100644 --- a/lib/Gocdb_Services/PI/QueryBuilders/ExtensionsParser.php +++ b/lib/Gocdb_Services/PI/QueryBuilders/ExtensionsParser.php @@ -161,4 +161,4 @@ private function checkLimit($parsedQueries){ } } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/Project.php b/lib/Gocdb_Services/Project.php index 4dea41209..61e55ea29 100644 --- a/lib/Gocdb_Services/Project.php +++ b/lib/Gocdb_Services/Project.php @@ -468,5 +468,3 @@ private function validate($projectData) { } } } - - diff --git a/lib/Gocdb_Services/Scope.php b/lib/Gocdb_Services/Scope.php index 84eafd766..40ddca0ed 100644 --- a/lib/Gocdb_Services/Scope.php +++ b/lib/Gocdb_Services/Scope.php @@ -545,4 +545,4 @@ private function validate($scopeData, $scopeIsNew, $oldScopeName = '') { } } -} \ No newline at end of file +} diff --git a/lib/Gocdb_Services/SecurityContextSource.php b/lib/Gocdb_Services/SecurityContextSource.php index c2dc0a284..618fa8404 100644 --- a/lib/Gocdb_Services/SecurityContextSource.php +++ b/lib/Gocdb_Services/SecurityContextSource.php @@ -20,4 +20,3 @@ public static function getContext(){ return self::$context; } } - diff --git a/lib/MonologConf.php b/lib/MonologConf.php index 40915dcc4..4a69d2439 100644 --- a/lib/MonologConf.php +++ b/lib/MonologConf.php @@ -25,4 +25,3 @@ // You can now use your logger $log1->addDebug('log1 is now ready'); - diff --git a/resources/ApplyScopeTagsToSitesAndServicesRunner.php b/resources/ApplyScopeTagsToSitesAndServicesRunner.php index 9f916206d..2971a4850 100644 --- a/resources/ApplyScopeTagsToSitesAndServicesRunner.php +++ b/resources/ApplyScopeTagsToSitesAndServicesRunner.php @@ -259,5 +259,3 @@ $em->close(); echo $e->getMessage(); } - - diff --git a/resources/QueryPopulateSSO_UsernameRunner.php b/resources/QueryPopulateSSO_UsernameRunner.php index c420e1dfe..e3fae5a18 100644 --- a/resources/QueryPopulateSSO_UsernameRunner.php +++ b/resources/QueryPopulateSSO_UsernameRunner.php @@ -74,5 +74,3 @@ function cleanDN($dn) { return trim(str_replace(' ', '%20', $dn)); } - - diff --git a/tests/miscTests/PI_Extensions_Param_ParsingTest.php b/tests/miscTests/PI_Extensions_Param_ParsingTest.php index d3f57e511..4266529f7 100644 --- a/tests/miscTests/PI_Extensions_Param_ParsingTest.php +++ b/tests/miscTests/PI_Extensions_Param_ParsingTest.php @@ -793,5 +793,3 @@ public function test_ExensionsParser2() { } - - diff --git a/tests/resources/QueryPI_GetXmlOutput.php b/tests/resources/QueryPI_GetXmlOutput.php index dec30ad40..518f2ef2b 100644 --- a/tests/resources/QueryPI_GetXmlOutput.php +++ b/tests/resources/QueryPI_GetXmlOutput.php @@ -177,8 +177,3 @@ else { echo "Error no valid arg given\n"; } - - - - - diff --git a/unused_resources/ParseAtlasDataRunner.php b/unused_resources/ParseAtlasDataRunner.php index 7161da8f1..b848607a0 100644 --- a/unused_resources/ParseAtlasDataRunner.php +++ b/unused_resources/ParseAtlasDataRunner.php @@ -51,4 +51,3 @@ foreach($siteArray as $siteName){ echo $siteName."\n"; } - From 3fb6c54b6f2aa993460c0b8b5352a76f95e0d490 Mon Sep 17 00:00:00 2001 From: Sae126V Date: Fri, 8 Sep 2023 13:13:06 +0000 Subject: [PATCH 41/42] [GT-181] Add last logged in field for admins --- .../web_portal/controllers/user/view_user.php | 1 + htdocs/web_portal/views/user/view_user.php | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/htdocs/web_portal/controllers/user/view_user.php b/htdocs/web_portal/controllers/user/view_user.php index 17d479045..772d41acb 100644 --- a/htdocs/web_portal/controllers/user/view_user.php +++ b/htdocs/web_portal/controllers/user/view_user.php @@ -156,6 +156,7 @@ function view_user() $params['ShowEdit'] = false; } + $params['callingUser'] = $callingUser; $params['idString'] = $userService->getDefaultIdString($user); $params['projectNamesIds'] = $projectNamesIds; $params['role_ProjIds'] = $roleProjectIds; diff --git a/htdocs/web_portal/views/user/view_user.php b/htdocs/web_portal/views/user/view_user.php index fb42ca29f..866ab9637 100644 --- a/htdocs/web_portal/views/user/view_user.php +++ b/htdocs/web_portal/views/user/view_user.php @@ -72,7 +72,9 @@ - + isAdmin(); + ?>
    @@ -127,6 +129,21 @@
    Last Logged In + getLastLoginDate()) { + xecho( + $params['user']->getLastLoginDate() + ->format('Y-m-d H:i:s') + ); + } + ?> +
    From 7b858311766f5ee1298788ffe010972b29821be4 Mon Sep 17 00:00:00 2001 From: Sae126V Date: Fri, 8 Sep 2023 12:29:30 +0000 Subject: [PATCH 42/42] [GT-182] Add restriction on who can create SG's --- .../service_group/add_service_group.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/htdocs/web_portal/controllers/service_group/add_service_group.php b/htdocs/web_portal/controllers/service_group/add_service_group.php index 9f5d46455..d7277c92c 100644 --- a/htdocs/web_portal/controllers/service_group/add_service_group.php +++ b/htdocs/web_portal/controllers/service_group/add_service_group.php @@ -22,6 +22,8 @@ * See the License for the specific language governing permissions and * limitations under the License. /*====================================================== */ +use Exception; + require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php'; require_once __DIR__ . '/../../components/Get_User_Principle.php'; require_once __DIR__ . '/../utils.php'; @@ -74,6 +76,20 @@ function draw($user) { throw new \Exception("Unregistered users can't create service groups."); } + $hasAdminCredentials = $user->isAdmin(); + $roleService = \Factory::getRoleService(); + $userRoles = $roleService->getUserRoles($user); + + $isUserValid = $hasAdminCredentials ? true : !empty($userRoles); + + if (!$isUserValid) { + throw new Exception( + "You do not have permission to add a new " + . "Service Group. To add a new Service Group, you require " + . "at least one role assigned over an entity in GOCDB." + ); + } + // can user assign reserved scopes ? $disableReservedScopes = true; if ($user->isAdmin()) {