diff options
author | Josh <josh.t.richards@gmail.com> | 2024-01-16 23:57:58 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-16 23:57:58 -0500 |
commit | 36e0b027121e05070e71a06752f4e942d2b72217 (patch) | |
tree | b40446098d7e16b7553e7debaccc2292467b0cff /lib | |
parent | ad12af8d06dfffe3e8d6b4a255aa96fc2c719136 (diff) | |
download | nextcloud-server-36e0b027121e05070e71a06752f4e942d2b72217.tar.gz nextcloud-server-36e0b027121e05070e71a06752f4e942d2b72217.zip |
Update ContactsStore: Avoid exceptions on empties
Fixes #42858 and makes things more robust
Signed-off-by: Josh <josh.t.richards@gmail.com>
Diffstat (limited to 'lib')
-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)) { |