Esempio n. 1
0
 private function _addCertificateMetaData(&$parsedMetaData)
 {
     $encryptionEnabled = $this->_config->getBoolean('encryption.enable');
     $certKeys = array('keys:0:', 'keys:1:', 'keys:2:', 'keys:3:', 'keys:4:', 'keys:5:', 'keys:6:', 'keys:7:', 'keys:8:');
     $certDataKeys = array('certData', 'certData2', 'certData3');
     $certificates = array();
     foreach ($certKeys as $certKey) {
         if (!isset($parsedMetaData[$certKey . 'X509Certificate'])) {
             continue;
         }
         // Skip encryption keys (key with no signing use) if we don't support encryption usage.
         if (!$parsedMetaData[$certKey . 'signing'] && !$encryptionEnabled) {
             continue;
         }
         $certData = $parsedMetaData[$certKey . 'X509Certificate'];
         /*
          * We don't want an empty certData if keys:0 is an encryption key and encryption is not enabled. So we
          * ensure that we fill the $certDataKeys in the right order.
          */
         foreach ($certDataKeys as $certDataKey) {
             if (!isset($certificates[$certDataKey])) {
                 $certificates[$certDataKey] = str_replace(array(" ", "\r\n", "\n", "\r", "\t", "\t"), '', $certData);
                 if (!$this->_validatePublicCertificate($certificates[$certDataKey])) {
                     return 'error_not_valid_certData';
                 }
                 break;
             }
         }
     }
     foreach ($certDataKeys as $certDataKey) {
         if (!isset($certificates[$certDataKey]) && $this->_entityController->hasMetadata($certDataKey)) {
             $this->_entityController->removeMetadata($certDataKey);
             $this->_updated = true;
         }
     }
     $parsedMetaData = array_merge($parsedMetaData, array_unique($certificates));
     return false;
 }
                         $newkey = substr($newkey, 0, -6);
                         $value = false;
                     }
                 }
                 if ($mcontroller->updateMetadata($newkey, $value)) {
                     $update = TRUE;
                     $note .= 'Metadata edited: ' . $newkey . ' => ' . $value . '<br />';
                 }
             }
         }
     }
 }
 // Delete metadata
 if (isset($_POST['delete-metadata']) && $guard->hasPermission('deletemetadata', $entity->getWorkflow(), $user->getType())) {
     foreach ($_POST['delete-metadata'] as $data) {
         if ($mcontroller->removeMetadata($data)) {
             $update = TRUE;
             $note .= 'Metadata deleted: ' . $data . '<br />';
         }
     }
 }
 // Add metadata from a URL.
 // NOTE. This will overwrite everything paster to the XML field
 if (isset($_POST['add_metadata_from_url']) && $guard->hasPermission('importmetadata', $entity->getWorkflow(), $user->getType())) {
     if (!empty($_POST['meta_url'])) {
         if ($mcontroller->setMetadataURL($_POST['meta_url'])) {
             $update = TRUE;
             $note .= 'Metadata URL set: ' . $_POST['meta_url'] . '<br />';
         }
         try {
             $res = @file_get_contents($_POST['meta_url']);