/** * Notifies managing contact about updated metadata of entity * * @param sspmod_janus_Entity $entity * @param string $metadataXml * @return void */ protected function _mailUpdatedMetaData(sspmod_janus_Entity $entity, $metadataXml) { $config = SimpleSAML_Configuration::getInstance(); $time = date(DATE_RFC822); $entityName = $entity->getPrettyname(); $entityId = $entity->getEntityId(); $message = <<<MESSAGE <h1>Metadata Change detected</h1> <p>Cron ran at {$time}</p> <p>Name: {$entityName}</p> <p>EntityId: {$entityId}</p> MESSAGE; $toAddress = $config->getString('managingcontact_email'); if (empty($toAddress)) { SimpleSAML_Logger::error('Cron - Could not send email. [managingcontact_email] not set in config.'); } $fromAddress = '*****@*****.**'; $subject = "Metadata Change detected for entity " . $entity->getPrettyname() . " (" . $entity->getEntityId() . "])"; $email = new SimpleSAML_XHTML_EMail($toAddress, $subject, $fromAddress); $email->setBody($message); // Add gzipped metadata $attachmentContent = gzencode($metadataXml); $attachmentFileName = 'metadata-' . $entityName . '.xml.gz'; $email->addAttachment($attachmentContent, $attachmentFileName, 'application/zip'); $email->send(); }
if (isset($remoteEntityName)) { if (is_array($remoteEntityName)) { if (array_key_exists($language, $remoteEntityName)) { $remoteEntityFormatted['name'][$language] = $remoteEntityName[$language]; } else { reset($remoteEntityName); $remoteEntityFormatted['name'][$language] = 'No name in current language (' . current($remoteEntityName) . ')'; } } else { $remoteEntityFormatted['name'][$language] = $remoteEntityName; } } else { $remoteEntityFormatted['name'][$language] = 'No name given'; } // Format the description for the remote entity $remoteEntityDescription = $remoteEntity->getEntityId(); if (isset($remoteEntityDescription)) { if (is_array($remoteEntityDescription)) { if (array_key_exists($language, $remoteEntityDescription)) { $remoteEntityFormatted['description'][$language] = $remoteEntityDescription[$language]; } else { reset($remoteEntityDescription); $remoteEntityFormatted['description'][$language] = 'No description in current language (' . current($remoteEntityDescription) . ')'; } } else { $remoteEntityFormatted['description'][$language] = $remoteEntityDescription; } } else { $remoteEntityFormatted['description'][$language] = 'No description given'; } // Pass along a text color if available
} } } } // Get metadatafields $mfc = $janus_config->getArray('metadatafields.' . $entity->getType()); $mb = new sspmod_janus_MetadatafieldBuilder($mfc); $et->data['metadatafields'] = $mb->getMetadatafields(); $remote_entities = array(); // Only parse name and description in current language foreach ($loaded_entities as $entityRow) { $instance = new sspmod_janus_Entity($janus_config); $instance->setEid($entityRow["eid"]); $instance->setRevisionid($entityRow["revisionid"]); $instance->load(); $value = array("name" => $instance->getPrettyName(), "description" => $instance->getEntityId()); $key = $instance->getEntityId(); unset($value2); if (isset($value['name'])) { if (is_array($value['name'])) { if (array_key_exists($language, $value['name'])) { $value2['name'][$language] = $value['name'][$language]; } else { reset($value['name']); $value2['name'][$language] = 'No name in current language (' . current($value['name']) . ')'; } } else { $value2['name'][$language] = $value['name']; } } else { $value2['name'][$language] = 'No name given';