Improvements to signature check, private posts do work now again

This commit is contained in:
Michael 2018-09-21 22:31:33 +00:00
parent 4c224fbddd
commit b44fc62708
5 changed files with 166 additions and 97 deletions

View file

@ -40,11 +40,26 @@ class JsonLD
return $data;
}
private static function objectify($element)
{
if (is_array($element)) {
$keys = array_keys($element);
if (is_int(array_pop($keys))) {
return array_map('objectify', $element);
} else {
return (object)array_map('objectify', $element);
}
} else {
return $element;
}
}
public static function normalize($json)
{
jsonld_set_document_loader('Friendica\Util\JsonLD::documentLoader');
$jsonobj = json_decode(json_encode($json));
// $jsonobj = array_map('Friendica\Util\JsonLD::objectify', $json);
$jsonobj = json_decode(json_encode($json, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
return jsonld_normalize($jsonobj, array('algorithm' => 'URDNA2015', 'format' => 'application/nquads'));
}
@ -59,11 +74,11 @@ class JsonLD
'vcard' => (object)['@id' => 'http://www.w3.org/2006/vcard/ns#', '@type' => '@id'],
'uuid' => (object)['@id' => 'http://schema.org/identifier', '@type' => '@id']];
$jsonobj = json_decode(json_encode($json));
$jsonobj = json_decode(json_encode($json, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
$compacted = jsonld_compact($jsonobj, $context);
return json_decode(json_encode($compacted), true);
return json_decode(json_encode($compacted, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), true);
}
public static function fetchElement($array, $element, $key, $type = null, $type_value = null)