by passing the userid to this method, you can get all the uaergroups for that user id:
import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.Group;
import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.sling.api.resource.ResourceResolver;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public Map<String, String> getAllUserGroups(String userId, ResourceResolver resourceResolver) {
Map<String, String> userGroups = new HashMap<>();
try {
UserManager userManager = resourceResolver.adaptTo(UserManager.class);
if (userManager != null) {
Authorizable authorizable = userManager.getAuthorizable(userId);
if (authorizable instanceof User) {
Iterator<Group> groups = ((User) authorizable).memberOf();
while (groups.hasNext()) {
Group group = groups.next();
userGroups.put(group.getID(), group.getProperty("./profile/givenName")[0].getString());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return userGroups;
}
-Get the UserManager instance from the ResourceResolver.
-Use the UserManager to get the Authorizable object for the user.
-Check if the Authorizable is a User.
-If it is a User, get the groups it is a member of.