Développer ma barre des réalisations de la Communauté.

Submissions are now open for the 2026 Adobe Experience Maker Awards.

Mark Solution

Cette conversation a été verrouillée en raison de son inactivité. Veuillez créer une nouvelle publication.

RÉSOLU

How to get group in sightly?

Avatar

Level 7

Hi Team,

 

I have to get the user's group in sightly. Please help.

 

Thanks and Regards,

AryA

1 solution acceptée

Avatar

Réponse correcte par
Employee Advisor

Hi,

 

please don't do that. Imagine what happens if the result of such a request is stored in the dispatcher cache and returned to the next user requesting the same page.

Voir la solution dans l'envoi d'origine

7 Replies

Avatar

Community Advisor

Avatar

Level 7

Thank you. But I have to get current user's(whoever is logged in) group . @Himanshu_Jain 

Avatar

Community Advisor

Hi,

You cannot get it in HTL. You need to write a java or javascript use api for https://github.com/arunpatidar02/aem63app-repo/blob/master/java/SimpleGetGroup.java 

User currentUser = request.getResourceResolver().adaptTo(User.class);

and you make sure the page/content is not cached in case of logged in user otherwise you will have same version of content for all the users (cached version)

Arun Patidar

AEM LinksLinkedIn

Avatar

Level 7

Avatar

Level 7

Hi @Dinu_Arya ,
You can get user information using "UserManagementService" in sling model and then in sightly.

Consider this code is written in sling model.

 

Declare or Inject required variables and Services

private String userID;

private String userName;
private List<String> userGroupsList =new ArrayList<>();

@SlingObject
ResourceResolver resourceResolver;

@OSGiService
UserManagementService userManagementService;

 In @PostConstruct use this code to get User and User's Groups information

String anonymousID = userManagementService != null ? userManagementService.getAnonymousId() : UserConstants.DEFAULT_ANONYMOUS_ID;
userID=resourceResolver.getUserID();
UserManager userManager=resourceResolver.adaptTo(UserManager.class);

if(userManager!=null){
Iterator<Group> userGroups= userManager.getAuthorizable(userID).memberOf();
while (userGroups.hasNext()){
Group group=userGroups.next();
userGroupsList.add(group.getID());
}

}
UserPropertiesManager userPropertiesManager=resourceResolver.adaptTo(UserPropertiesManager.class);
if (userPropertiesManager != null) {
UserProperties userProperties = userPropertiesManager.getUserProperties(userID, "profile");
for (String userProperty : userProperties.getPropertyNames()) {
LOG.info("\n User Properties {} : {} ",userProperty,userProperties.getProperty(userProperty));
}
userName=userProperties.getDisplayName();

}

Get working demo code from get.
https://github.com/aemgeeks1212/aemgeeks/blob/master/core/src/main/java/com/aem/geeks/core/models/im...

https://github.com/aemgeeks1212/aemgeeks/blob/master/core/src/main/java/com/aem/geeks/core/models/Us...

https://github.com/aemgeeks1212/aemgeeks/blob/master/ui.apps/src/main/content/jcr_root/apps/aemgeeks...

 

Avatar

Réponse correcte par
Employee Advisor

Hi,

 

please don't do that. Imagine what happens if the result of such a request is stored in the dispatcher cache and returned to the next user requesting the same page.

Avatar

Level 7

Agree @Jörg_Hoh