-
Bug
-
Resolution: Timed out
-
Low
-
None
-
2.1
-
None
-
Severity 3 - Minor
-
The DirectoryManagerGeneric.isUserNestedGroupMember iterates nested groups downwards from the target group, rather than upward from the starting user, which requires significantly more DAO operations (many of which are not currently cached in Confluence). It should instead iterate upward from the direct memberships of the user, and then the memberships of those groups. This will allow the isUserDirectGroupMember/isGroupDirectGroupMember calls to reuse the same cached data as the recursive calls do. This will also make the cached values much smaller, and less likely to become invalidated on a sync, since they will be the short list of groups a user or group is in, rather than the potentially vast list of groups or users that are in a group.
Raised CWD-2465 to cover improving support for name caching of memberships.
Leaving this as is, so you can decide whether to call findNestedGroupMembershipsOfUser inside isUserNestedGroupMember if/when the former is known to perform well.