Hi devs, I just introduced a new GroupManager API (and related script service and new modules).
The idea (for now) is just to provide two new clean entry points to: * get the members of a group * get the groups of a member Right, yet another one but here is what's new: * it's a component * you can use it without depending on oldcore * it support groups of groups * there is a cache behind the scene for all that Main Java entry point: https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-user/xwiki-platform-user-api/src/main/java/org/xwiki/user/group/GroupManager.java Script service ($services.user.group): https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-user/xwiki-platform-user-script/src/main/java/org/xwiki/user/script/GroupScriptService.java Also to start actually using it I added in the profile a new section which display all the groups (including groups of groups) the user belongs to. I also needed the feature in a 8.4.5 wiki so I published a contrib extension you can use before 10.8: https://extensions.xwiki.org/xwiki/bin/view/Extension/User%20membership%20in%20the%20profile/ (this is the application but the API is available too, look at the application dependencies). TODO: * remove the cache from group service and recommend using the new component instead (the new component is still based on the group service since people might implement this service another way so it's safer to keep going trough the configured service for now, also it's not that based to separate caching and groups of groups handling from storage anyway) * track down all uses of the group service and the old rightmanager plugin group membership related methods and replace them with the new API FUTURE: The module name is xwiki-platform-user-api and there is a (empty except from the sub script service bridge) user script service, the idea being that we will want to add other user related APIs there in the future but I did not had time to work on the big picture so I left room for it. Thanks, -- Thomas Mortagne

