User Group Management - Audit Client-side State Management
I tried renaming a group and reducing the number of users with access to it. (Basically cutting out all of the odd users from Domo/3rd part implementation that get added by default to everything.) I ended up with some really odd and sticky behavior with regard to parts of the UI that are displaying information about a group.
* Adding members to a group fails to update the client data store's number of users when switching to the page management to start attaching the group to pages. A page refresh fixes this so I believe it is a bad data bind in the angular application
* Renaming a group and reducing membership to a strict subset causes issues that do not go away with a page refresh. The page group list continued to display the old name with all of the original members. The link to the group itself was broken because the group no longer exists under that name (the url seems to indicate a text search based on the name of the group, which makes sense but is not a link to a specific group as I had assumed).
What is more concerning is that removing the group and adding it back under the new name continually resulted in the original group with the original membership showing up, even though that group name/membership combination no longer exists in the system. I'm not sure where the original group membership is being cached, but the only way to achieve what I want (attaching just the members of the new group to each page) seems to be to start a completely new group and attach it to each page individually. This could be cumbersome for users with very large numbers of pages, and I imagine it would be a headache to audit the access implications in an organization that took isolation of data seriously here.
I'm not sure where the specific issues are in the implementation, but the behavior here could cause some serious problems if an admin trusted the combination of group rename/membership reduction to work reliably. I'd hope someone working with the implementation could reproduce this behavior and think of ways to make it more reliable.