diff --git a/changelog/unreleased/enhancement-admin-settings-users-role-graph-api-usage b/changelog/unreleased/enhancement-admin-settings-users-role-graph-api-usage index 7bbbce2d5e7..ecf6b052251 100644 --- a/changelog/unreleased/enhancement-admin-settings-users-role-graph-api-usage +++ b/changelog/unreleased/enhancement-admin-settings-users-role-graph-api-usage @@ -4,3 +4,5 @@ We've switched over to utilizing user role assignments data from the graph api i Especially for the list view this leads to improved performance. https://github.com/owncloud/web/pull/8261 +https://github.com/owncloud/web/pull/8322 +https://github.com/owncloud/web/issues/8319 diff --git a/packages/web-app-admin-settings/src/components/Users/SideBar/EditPanel.vue b/packages/web-app-admin-settings/src/components/Users/SideBar/EditPanel.vue index d2b48c63845..bc8fd5bd41a 100644 --- a/packages/web-app-admin-settings/src/components/Users/SideBar/EditPanel.vue +++ b/packages/web-app-admin-settings/src/components/Users/SideBar/EditPanel.vue @@ -123,7 +123,7 @@ export default defineComponent({ const groupOptions = computed(() => { const { memberOf: selectedGroups } = unref(editUser) return props.groups - .filter((g) => !selectedGroups.some((s) => s.id === g.id)) + .filter((g) => !selectedGroups?.some((s) => s.id === g.id)) .sort((a, b) => a.displayName.localeCompare(b.displayName)) }) diff --git a/packages/web-app-admin-settings/src/views/Users.vue b/packages/web-app-admin-settings/src/views/Users.vue index a4b8274514c..ae7f372f250 100644 --- a/packages/web-app-admin-settings/src/views/Users.vue +++ b/packages/web-app-admin-settings/src/views/Users.vue @@ -437,13 +437,15 @@ export default defineComponent({ } }, async updateUserGroupAssignments(user, editUser) { - const groupsToAdd = editUser.memberOf.filter((editUserGroup) => { - return !user.memberOf.some((g) => g.id === editUserGroup.id) - }) - - const groupsToDelete = user.memberOf.filter((editUserGroup) => { - return !editUser.memberOf.some((g) => g.id === editUserGroup.id) - }) + const groupsToAdd = + editUser.memberOf?.filter((editUserGroup) => { + return !user.memberOf?.some((g) => g.id === editUserGroup.id) + }) || [] + + const groupsToDelete = + user.memberOf?.filter((editUserGroup) => { + return !editUser.memberOf?.some((g) => g.id === editUserGroup.id) + }) || [] for (const groupToAdd of groupsToAdd) { await this.graphClient.groups.addMember(groupToAdd.id, user.id, this.configuration.server)