Expand my Community achievements bar.

SOLVED

AEM6.5 how to get user details and the groups the user is associated to in author environment

Avatar

Level 8

Hi,

 

Once any user  logs in to the author environment how could I get the details of the groups the user is member of.

 

I am using js so wanted to check if there is any json available through which I could get this details. Instead of me building a new code for this.

 

I noticed that for authorizables.json  we need to provide the username.

http://localhost:4502/bin/security/authorizables.json?filter=username&_charset_=utf-8

 

Now if is the case i would need a way to find the user name in the js and then again send the request. 

 

Please let me know as I could resolve this in a better way .

 

 

Thanks

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

@srinivas_chann1 

In js, you can get the user as Granite.author.ContentFrame.getUserID()

Please refer to the function getUserGroups() here:

http://experience-aem.blogspot.com/2019/09/aem-6510-authoring-restrict-msm-rollout-to-specific-user-...

View solution in original post

3 Replies

Avatar

Community Advisor

@srinivas_chann1 

I would suggest using the service user to get the details of AEM user/groups. Make use of Authorizable API

https://helpx.adobe.com/experience-manager/6-5/sites/developing/using/reference-materials/javadoc/or... 

 

see the following code snippet

 

 

public static Group getGroup(String userId, UserManager userManager) {
    try {
      return (Group) userManager.getAuthorizable(userId);
    } catch (RepositoryException e) {
      logger.error("Error {}", e);
    }
    return null;
  }

 

 

Avatar

Correct answer by
Employee Advisor

@srinivas_chann1 

In js, you can get the user as Granite.author.ContentFrame.getUserID()

Please refer to the function getUserGroups() here:

http://experience-aem.blogspot.com/2019/09/aem-6510-authoring-restrict-msm-rollout-to-specific-user-...

Avatar

Level 8

I did the below to solve the issue 

 

 

function getLoggedInUserID() {
var currentUserId = "";
var currentUserInfo;
var CURRENT_USER_JSON_PATH = Granite.HTTP.externalize('/libs/granite/security/currentuser.json');
var result = Granite.$.ajax({
type: "GET",
async: false,
url: CURRENT_USER_JSON_PATH
});

if (result.status === 200) {
currentUserInfo = JSON.parse(result.responseText);
currentUserId = currentUserInfo.authorizableId;
}
return currentUserId;
}

 

 

function getUserGroups(userID){

var isMemberOfGroupEveryOne=false;

$.ajax({
url: "/bin/security/authorizables.json?filter=" + userID +'&_charset_=utf-8',
async: false,
success: function(result) {


if (result) {
$.each(result.authorizables,function(index,authObj){


if( (authObj.id !== userID)){
return;
}else {

$.each(authObj.memberOf,function(index,memberOf){
if(memberOf.id === 'everyone'){
isMemberOfGroupEveryOne=true;
}
});


}

});
}

}
});

 


return isMemberOfGroupEveryOne;
}