From 65cf3230ee874ffaca05717b08e12e82f6fbab58 Mon Sep 17 00:00:00 2001 From: tshenry Date: Tue, 26 Jan 2021 10:22:05 -0800 Subject: [PATCH] FIX: Can't remove selection from group chooser in tag group settings (#11822) This change fixes an issue with the user group chooser of a tag group's settings. It was impossible to clear any selected groups through the UI. The `setPermissionsGroups` function determines which groups appear selected in the group-chooser based on the passed-in `groupIds` array. It starts with `updatedPermissions` being set to the group permissions as they were prior to the action that called the function. From there, we were correctly adding a group permission to `updatedPermissions` whenever a group appeared in `groupIds`. This addressed newly added groups and also maintained any group permissions that had been set before. The problem was that there was no logic to remove a group permission when the associated group no longer appeared in `groupIds`. If a group isn't included in `groupIds`, we can simply attempt to delete an associated group permission if it exists. --- .../javascripts/discourse/app/components/tag-groups-form.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/javascripts/discourse/app/components/tag-groups-form.js b/app/assets/javascripts/discourse/app/components/tag-groups-form.js index d9ba0fff3b..d701fb300c 100644 --- a/app/assets/javascripts/discourse/app/components/tag-groups-form.js +++ b/app/assets/javascripts/discourse/app/components/tag-groups-form.js @@ -107,6 +107,8 @@ export default Component.extend(bufferedProperty("model"), { this.allGroups.forEach((group) => { if (groupIds.includes(group.id)) { updatedPermissions[group.name] = PermissionType.FULL; + } else { + delete updatedPermissions[group.name]; } });