Merge pull request #7251 from annando/fix-fatal
Avoid fatal error when AP contact has no photo
This commit is contained in:
commit
f4d20c577b
3 changed files with 19 additions and 7 deletions
|
@ -152,7 +152,13 @@ class APContact extends BaseObject
|
||||||
$apcontact['alias'] = JsonLD::fetchElement($compacted['as:url'], 'as:href', '@id');
|
$apcontact['alias'] = JsonLD::fetchElement($compacted['as:url'], 'as:href', '@id');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($apcontact['url']) || empty($apcontact['inbox'])) {
|
// Quit if none of the basic values are set
|
||||||
|
if (empty($apcontact['url']) || empty($apcontact['inbox']) || empty($apcontact['type'])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quit if this doesn't seem to be an account at all
|
||||||
|
if (!in_array($apcontact['type'], ActivityPub::ACCOUNT_TYPES)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,11 +234,13 @@ class APContact extends BaseObject
|
||||||
|
|
||||||
DBA::update('contact', $contact_fields, ['nurl' => Strings::normaliseLink($url)]);
|
DBA::update('contact', $contact_fields, ['nurl' => Strings::normaliseLink($url)]);
|
||||||
|
|
||||||
|
if (!empty($apcontact['photo'])) {
|
||||||
$contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]);
|
$contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]);
|
||||||
while ($contact = DBA::fetch($contacts)) {
|
while ($contact = DBA::fetch($contacts)) {
|
||||||
Contact::updateAvatar($apcontact['photo'], $contact['uid'], $contact['id']);
|
Contact::updateAvatar($apcontact['photo'], $contact['uid'], $contact['id']);
|
||||||
}
|
}
|
||||||
DBA::close($contacts);
|
DBA::close($contacts);
|
||||||
|
}
|
||||||
|
|
||||||
// Update the gcontact table
|
// Update the gcontact table
|
||||||
// These two fields don't exist in the gcontact table
|
// These two fields don't exist in the gcontact table
|
||||||
|
|
|
@ -413,7 +413,11 @@ class Photo extends BaseObject
|
||||||
$photo_failure = false;
|
$photo_failure = false;
|
||||||
|
|
||||||
$filename = basename($image_url);
|
$filename = basename($image_url);
|
||||||
|
if (!empty($image_url)) {
|
||||||
$img_str = Network::fetchUrl($image_url, true);
|
$img_str = Network::fetchUrl($image_url, true);
|
||||||
|
} else {
|
||||||
|
$img_str = '';
|
||||||
|
}
|
||||||
|
|
||||||
if ($quit_on_error && ($img_str == "")) {
|
if ($quit_on_error && ($img_str == "")) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -436,7 +436,7 @@ class Transmitter
|
||||||
$data['to'][] = $profile['url'];
|
$data['to'][] = $profile['url'];
|
||||||
} else {
|
} else {
|
||||||
$data['cc'][] = $profile['url'];
|
$data['cc'][] = $profile['url'];
|
||||||
if (!$item['private']) {
|
if (!$item['private'] && !empty($actor_profile['followers'])) {
|
||||||
$data['cc'][] = $actor_profile['followers'];
|
$data['cc'][] = $actor_profile['followers'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue