From fcceac45a183d9111be7727368c78e3750cdb603 Mon Sep 17 00:00:00 2001 From: Richard Steinmetz Date: Tue, 3 Sep 2024 09:39:56 +0200 Subject: [PATCH] fixup! fix: respect advanced group sharing settings in frontend --- .../Settings/SettingsAddressbookShare.vue | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/AppNavigation/Settings/SettingsAddressbookShare.vue b/src/components/AppNavigation/Settings/SettingsAddressbookShare.vue index 5e5ff24a5..ee91bfaa7 100644 --- a/src/components/AppNavigation/Settings/SettingsAddressbookShare.vue +++ b/src/components/AppNavigation/Settings/SettingsAddressbookShare.vue @@ -101,20 +101,25 @@ export default { this.usersOrGroups = [] if (query.length > 0) { const results = await client.principalPropertySearchByDisplayname(query) - this.usersOrGroups = results.reduce((list, result) => { - if (['GROUP', 'INDIVIDUAL'].indexOf(result.calendarUserType) > -1 - && !this.addressbook.shares.some((share) => share.uri === result.principalScheme)) { + this.usersOrGroups = results + .filter((result) => { + const allowedCalendarUserTypes = ['INDIVIDUAL'] + if (this.isGroupSharingEnabled) { + allowedCalendarUserTypes.push('GROUP') + } + return allowedCalendarUserTypes.includes(result.calendarUserType) + && !this.addressbook.shares.some((share) => share.uri === result.principalScheme) + }) + .map((result) => { const isGroup = result.calendarUserType === 'GROUP' - list.push({ + return { user: urldecode(result[isGroup ? 'groupId' : 'userId']), displayName: result.displayname, icon: isGroup ? 'icon-group' : 'icon-user', uri: urldecode(result.principalScheme), isGroup, - }) - } - return list - }, []) + } + }) this.isLoading = false this.inputGiven = true } else {