kopia lustrzana https://github.com/friendica/friendica
Merge remote-tracking branch 'upstream/2020.06-rc' into valid-feed
commit
e5a336ff77
|
@ -79,7 +79,7 @@ function salmon_post(App $a, $xml = '') {
|
|||
// stash away some other stuff for later
|
||||
|
||||
$type = $base->data[0]->attributes()->type[0];
|
||||
$keyhash = $base->sig[0]->attributes()->keyhash[0];
|
||||
$keyhash = $base->sig[0]->attributes()->keyhash[0] ?? '';
|
||||
$encoding = $base->encoding;
|
||||
$alg = $base->alg;
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ class Nav
|
|||
'name' => $a->user['username'],
|
||||
];
|
||||
} else {
|
||||
DI::logger()->warning('Empty $a->user for local user'. ['local_user' => local_user(), '$a' => $a]);
|
||||
DI::logger()->warning('Empty $a->user for local user', ['local_user' => local_user(), '$a' => $a]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -256,7 +256,7 @@ class Nav
|
|||
}
|
||||
|
||||
// The following nav links are only show to logged in users
|
||||
if (local_user()) {
|
||||
if (local_user() && !empty($a->user)) {
|
||||
$nav['network'] = ['network', DI::l10n()->t('Network'), '', DI::l10n()->t('Conversations from your friends')];
|
||||
|
||||
$nav['home'] = ['profile/' . $a->user['nickname'], DI::l10n()->t('Home'), '', DI::l10n()->t('Your posts and conversations')];
|
||||
|
|
|
@ -1077,7 +1077,6 @@ class Contact
|
|||
}
|
||||
|
||||
if (DBA::isResult($r)) {
|
||||
$authoritativeResult = true;
|
||||
// If there is more than one entry we filter out the connector networks
|
||||
if (count($r) > 1) {
|
||||
foreach ($r as $id => $result) {
|
||||
|
@ -1088,7 +1087,10 @@ class Contact
|
|||
}
|
||||
|
||||
$profile = array_shift($r);
|
||||
}
|
||||
|
||||
if (!empty($profile)) {
|
||||
$authoritativeResult = true;
|
||||
// "bd" always contains the upcoming birthday of a contact.
|
||||
// "birthday" might contain the birthday including the year of birth.
|
||||
if ($profile["birthday"] > DBA::NULL_DATE) {
|
||||
|
|
|
@ -59,7 +59,7 @@ class Fetch extends BaseModule
|
|||
if (empty($item)) {
|
||||
$condition = ['guid' => $guid, 'network' => [Protocol::DFRN, Protocol::DIASPORA]];
|
||||
$item = Item::selectFirst(['author-link'], $condition);
|
||||
if (empty($item)) {
|
||||
if (!empty($item["author-link"])) {
|
||||
$parts = parse_url($item["author-link"]);
|
||||
if (empty($parts["scheme"]) || empty($parts["host"])) {
|
||||
throw new HTTPException\InternalServerErrorException();
|
||||
|
|
|
@ -57,7 +57,7 @@ class Objects extends BaseModule
|
|||
['order' => ['origin' => true]]
|
||||
);
|
||||
// Valid items are original post or posted from this node (including in the case of a forum)
|
||||
if (!DBA::isResult($item) || !$item['origin'] && !strstr($item['author-link'], DI::baseUrl()->get())) {
|
||||
if (!DBA::isResult($item) || !$item['origin'] && (parse_url($item['author-link'], PHP_URL_HOST) != parse_url(DI::baseUrl()->get(), PHP_URL_HOST))) {
|
||||
throw new HTTPException\NotFoundException();
|
||||
}
|
||||
|
||||
|
|
|
@ -79,6 +79,11 @@ class Acl extends BaseModule
|
|||
|
||||
$contacts = [];
|
||||
foreach ($r as $g) {
|
||||
if (empty($g['name'])) {
|
||||
DI::logger()->warning('Wrong result item from Search::searchGlobalContact', ['$g' => $g, '$search' => $search, '$mode' => $mode, '$page' => $page]);
|
||||
continue;
|
||||
}
|
||||
|
||||
$contacts[] = [
|
||||
'photo' => ProxyUtils::proxifyUrl($g['photo'], false, ProxyUtils::SIZE_MICRO),
|
||||
'name' => htmlspecialchars($g['name']),
|
||||
|
|
|
@ -834,7 +834,7 @@ class Transmitter
|
|||
}
|
||||
}
|
||||
|
||||
$data = ActivityPub\Transmitter::createActivityFromItem($item_id);
|
||||
$data = self::createActivityFromItem($item_id);
|
||||
|
||||
DI::cache()->set($cachekey, $data, Duration::QUARTER_HOUR);
|
||||
return $data;
|
||||
|
@ -873,8 +873,21 @@ class Transmitter
|
|||
$conversation = DBA::selectFirst('conversation', ['source'], $condition);
|
||||
if (DBA::isResult($conversation)) {
|
||||
$data = json_decode($conversation['source'], true);
|
||||
if (!empty($data)) {
|
||||
return $data;
|
||||
if (!empty($data['type'])) {
|
||||
if (in_array($data['type'], ['Create', 'Update'])) {
|
||||
if ($object_mode) {
|
||||
unset($data['@context']);
|
||||
unset($data['signature']);
|
||||
}
|
||||
return $data;
|
||||
} elseif (in_array('as:' . $data['type'], Receiver::CONTENT_TYPES)) {
|
||||
if (!empty($data['@context'])) {
|
||||
$context = $data['@context'];
|
||||
unset($data['@context']);
|
||||
}
|
||||
unset($data['actor']);
|
||||
$object = $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -882,7 +895,7 @@ class Transmitter
|
|||
}
|
||||
|
||||
if (!$object_mode) {
|
||||
$data = ['@context' => ActivityPub::CONTEXT];
|
||||
$data = ['@context' => $context ?? ActivityPub::CONTEXT];
|
||||
|
||||
if ($item['deleted'] && ($item['gravity'] == GRAVITY_ACTIVITY)) {
|
||||
$type = 'Undo';
|
||||
|
@ -909,7 +922,7 @@ class Transmitter
|
|||
$data = array_merge($data, self::createPermissionBlockForItem($item, false));
|
||||
|
||||
if (in_array($data['type'], ['Create', 'Update', 'Delete'])) {
|
||||
$data['object'] = self::createNote($item);
|
||||
$data['object'] = $object ?? self::createNote($item);
|
||||
} elseif ($data['type'] == 'Add') {
|
||||
$data = self::createAddTag($item, $data);
|
||||
} elseif ($data['type'] == 'Announce') {
|
||||
|
|
Ładowanie…
Reference in New Issue