- $prov = $dom->createElementNS(MagicEnvelope::NS, 'me:provenance');
- $prov->setAttribute('xmlns:me', MagicEnvelope::NS);
- $data = $dom->createElementNS(MagicEnvelope::NS, 'me:data', $env['data']);
- $data->setAttribute('type', $env['data_type']);
- $prov->appendChild($data);
- $enc = $dom->createElementNS(MagicEnvelope::NS, 'me:encoding', $env['encoding']);
- $prov->appendChild($enc);
- $alg = $dom->createElementNS(MagicEnvelope::NS, 'me:alg', $env['alg']);
- $prov->appendChild($alg);
- $sig = $dom->createElementNS(MagicEnvelope::NS, 'me:sig', $env['sig']);
- $prov->appendChild($sig);
-
- $dom->documentElement->appendChild($prov);
-
- return $dom->saveXML();
- }
-
- public function getAuthor($text) {
- $doc = new DOMDocument();
- if (!$doc->loadXML($text)) {
- return FALSE;
- }
-
- if ($doc->documentElement->tagName == 'entry') {
- $authors = $doc->documentElement->getElementsByTagName('author');
- foreach ($authors as $author) {
- $uris = $author->getElementsByTagName('uri');
- foreach ($uris as $uri) {
- return $this->normalizeUser($uri->nodeValue);
- }
+ switch ($this->data_type) {
+ case 'application/atom+xml':
+ if ($dom->documentElement->namespaceURI !== Activity::ATOM
+ || $dom->documentElement->tagName !== 'entry') {
+ throw new ServerException(_m('Salmon post must be an Atom entry.'));