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
Solved! Go to Solution.
Views
Replies
Total Likes
In js, you can get the user as Granite.author.ContentFrame.getUserID()
Please refer to the function getUserGroups() here:
I would suggest using the service user to get the details of AEM user/groups. Make use of Authorizable API
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;
}
In js, you can get the user as Granite.author.ContentFrame.getUserID()
Please refer to the function getUserGroups() here:
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;
}
Views
Likes
Replies