diff options
author | Pytal <24800714+Pytal@users.noreply.github.com> | 2024-01-17 10:39:16 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-17 10:39:16 -0800 |
commit | e42f511412c3dee98e843d215f6f74d65b8a5120 (patch) | |
tree | 5cae0d5945ed5dfc9b4f53b111d5ff4c73839acf | |
parent | efe35517f77cbddada091a031aaaaf7f539dc096 (diff) | |
parent | 36e0b027121e05070e71a06752f4e942d2b72217 (diff) | |
download | nextcloud-server-e42f511412c3dee98e843d215f6f74d65b8a5120.tar.gz nextcloud-server-e42f511412c3dee98e843d215f6f74d65b8a5120.zip |
Merge pull request #42860 from nextcloud/jr/fix/i42858
Update ContactsStore: Avoid exceptions on empties
-rw-r--r-- | lib/private/Contacts/ContactsMenu/ContactsStore.php | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/private/Contacts/ContactsMenu/ContactsStore.php b/lib/private/Contacts/ContactsMenu/ContactsStore.php index eeb6ae56bc1..25a90e5f0f7 100644 --- a/lib/private/Contacts/ContactsMenu/ContactsStore.php +++ b/lib/private/Contacts/ContactsMenu/ContactsStore.php @@ -334,14 +334,15 @@ class ContactsStore implements IContactsStore { private function contactArrayToEntry(array $contact): Entry { $entry = new Entry(); - if (isset($contact['UID'])) { + if (!empty($contact['UID'])) { $uid = $contact['UID']; $entry->setId($uid); $entry->setProperty('isUser', false); + // overloaded usage so leaving as-is for now if (isset($contact['isLocalSystemBook'])) { $avatar = $this->urlGenerator->linkToRouteAbsolute('core.avatar.getAvatar', ['userId' => $uid, 'size' => 64]); $entry->setProperty('isUser', true); - } elseif (isset($contact['FN'])) { + } elseif (!empty($contact['FN'])) { $avatar = $this->urlGenerator->linkToRouteAbsolute('core.GuestAvatar.getAvatar', ['guestName' => $contact['FN'], 'size' => 64]); } else { $avatar = $this->urlGenerator->linkToRouteAbsolute('core.GuestAvatar.getAvatar', ['guestName' => $uid, 'size' => 64]); @@ -349,23 +350,23 @@ class ContactsStore implements IContactsStore { $entry->setAvatar($avatar); } - if (isset($contact['FN'])) { + if (!empty($contact['FN'])) { $entry->setFullName($contact['FN']); } $avatarPrefix = "VALUE=uri:"; - if (isset($contact['PHOTO']) && str_starts_with($contact['PHOTO'], $avatarPrefix)) { + if (!empty($contact['PHOTO']) && str_starts_with($contact['PHOTO'], $avatarPrefix)) { $entry->setAvatar(substr($contact['PHOTO'], strlen($avatarPrefix))); } - if (isset($contact['EMAIL'])) { + if (!empty($contact['EMAIL'])) { foreach ($contact['EMAIL'] as $email) { $entry->addEMailAddress($email); } } // Provide profile parameters for core/src/OC/contactsmenu/contact.handlebars template - if (isset($contact['UID']) && isset($contact['FN'])) { + if (!empty($contact['UID']) && !empty($contact['FN'])) { $targetUserId = $contact['UID']; $targetUser = $this->userManager->get($targetUserId); if (!empty($targetUser)) { |