AEM6.5 How to get the workflow initator user-group
Hi All,
I have to check a condition where I need to get the user who initiated the workflow and then find it's user group.
if user-group belongs to "allowed-managers" then execute the piece of code, so how to get the user-group.??
public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap metaDataMap) throws WorkflowException {
String payload = workItem.getWorkflowData().getPayload().toString();
ResourceResolver resourceResolver = resourceResolverUtil.getResourceResolver();
Session session = resourceResolver.adaptTo(Session.class);
String workflowInitiator = workItem.getWorkflow().getInitiator();
//get the User-group for the person who has trigered the workflow.
//check if user belongs to "allowed-managers" then execute the piece of code
if(usergroup == "allowed-managers"){
//execute code
}
}
I have tried a way getting null:
public void execute(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap metaDataMap) throws WorkflowException {
String payload = workItem.getWorkflowData().getPayload().toString();
ResourceResolver resourceResolver = resourceResolverUtil.getResourceResolver();
Session session = resourceResolver.adaptTo(Session.class);
String workflowInitiator = workItem.getWorkflow().getInitiator();
String usergroup = getUserGroup(resourceResolver, workflowInitiator);
if(usergroup == "allowed-managers"){
//execute code
}
}
private String getUserGroup(ResourceResolver resourceResolver, String userId) {
String userGroup = null;
try {
UserManager userManager = resourceResolver.adaptTo(UserManager.class);
Authorizable authorizable = userManager.getAuthorizable(userId);
if (authorizable != null) {
Iterator<Group> groups = authorizable.memberOf();
while (groups.hasNext()) {
Group group = groups.next();
if (group.getID().equals("allowed-managers")) {
userGroup = group.getID();
break;
}
}
}
} catch (RepositoryException e) {
// Handle exception
}
return userGroup;
}