It is possible to use group folder like the following scenario. This can be extremely handy when you have a lot of groups configured (like us).
+ groupfolder1 (hipposys:groupfolder)
+ group1 (hipposys:group)
+ groupfolder2 (hipposys:groupfolder)
+ group2 (hipposys:group)
- hipposys:dirlevels = 1
In this scenario the user is not assigned to the second group (group2) due to a bug in AbstractGroupManager#getMembershipsByPath(String userId, String providerId, Node groupFolder, int level).
In this method the construct level++ is used to pass the level, however this also causes the current level to be increased which then gets passed to the next groupfolder it encounters.
I have supplied a patch that fixes this issue.
Right now we circumvent the issue by setting the hipposys:dirlevels value to an arbitrary large number (100 in our case), but it would be nicer if this issue gets fixed in the future.
The problem occurs in our current version (3.2.7), but is also there in the latest version.