Merge pull request #10704 from nupplaphil/bug/notices

Fix various Notices
This commit is contained in:
Michael Vogel 2021-09-18 13:08:37 +02:00 committed by GitHub
commit 9e3cfc3d8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 25 additions and 13 deletions

View file

@ -1461,8 +1461,12 @@ class Database
$row = $this->fetchFirst($sql, $condition); $row = $this->fetchFirst($sql, $condition);
// Ensure to always return either a "null" or a numeric value if (!isset($row['count'])) {
return is_numeric($row['count']) ? (int)$row['count'] : $row['count']; $this->logger->notice('Invalid count.', ['table' => $table, 'row' => $row, 'expression' => $expression, 'condition' => $condition_string, 'callstack' => System::callstack()]);
return 0;
} else {
return (int)$row['count'];
}
} }
/** /**

View file

@ -2757,12 +2757,14 @@ class Contact
return null; return null;
} }
public static function removeFollower($importer, $contact) public static function removeFollower(array $contact)
{ {
if (($contact['rel'] == self::FRIEND) || ($contact['rel'] == self::SHARING)) { if (in_array($contact['rel'] ?? [], [self::FRIEND, self::SHARING])) {
DBA::update('contact', ['rel' => self::SHARING], ['id' => $contact['id']]); DBA::update('contact', ['rel' => self::SHARING], ['id' => $contact['id']]);
} else { } elseif (!empty($contact['id'])) {
self::remove($contact['id']); self::remove($contact['id']);
} else {
DI::logger()->info('Couldn\'t remove follower because of invalid contact array', ['contact' => $contact, 'callstack' => System::callstack()]);
} }
} }

View file

@ -290,13 +290,19 @@ class Contact extends BaseModule
$contact_id = $data['user']; $contact_id = $data['user'];
} }
$contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => [0, local_user()], 'deleted' => false]); if (!empty($data)) {
$contact = DBA::selectFirst('contact', [], [
'id' => $contact_id,
'uid' => [0, local_user()],
'deleted' => false
]);
// Don't display contacts that are about to be deleted // Don't display contacts that are about to be deleted
if ($contact['network'] == Protocol::PHANTOM) { if (DBA::isResult($contact) && !empty($contact['network']) && $contact['network'] == Protocol::PHANTOM) {
$contact = false; $contact = false;
} }
} }
}
if (DBA::isResult($contact)) { if (DBA::isResult($contact)) {
if ($contact['self']) { if ($contact['self']) {

View file

@ -1102,7 +1102,7 @@ class Processor
return; return;
} }
Contact::removeFollower($owner, $contact); Contact::removeFollower($contact);
Logger::info('Undo following request', ['contact' => $cid, 'user' => $uid]); Logger::info('Undo following request', ['contact' => $cid, 'user' => $uid]);
} }

View file

@ -1584,7 +1584,7 @@ class DFRN
} }
if ($activity->match($item["verb"], Activity::UNFOLLOW)) { if ($activity->match($item["verb"], Activity::UNFOLLOW)) {
Logger::log("Lost follower"); Logger::log("Lost follower");
Contact::removeFollower($importer, $contact, $item); Contact::removeFollower($contact);
return false; return false;
} }
if ($activity->match($item["verb"], Activity::REQ_FRIEND)) { if ($activity->match($item["verb"], Activity::REQ_FRIEND)) {

View file

@ -2211,7 +2211,7 @@ class Diaspora
return true; return true;
} else { } else {
Logger::log("Author ".$author." doesn't want to follow us anymore.", Logger::DEBUG); Logger::log("Author ".$author." doesn't want to follow us anymore.", Logger::DEBUG);
Contact::removeFollower($importer, $contact); Contact::removeFollower($contact);
return true; return true;
} }
} }

View file

@ -471,7 +471,7 @@ class OStatus
if ($item["verb"] == Activity::O_UNFOLLOW) { if ($item["verb"] == Activity::O_UNFOLLOW) {
$dummy = null; $dummy = null;
Contact::removeFollower($importer, $contact, $item, $dummy); Contact::removeFollower($contact);
continue; continue;
} }