Para descobrir no Liferay 6.2 quais sites um usuário tem acesso de publicação, o código abaixo resolve
var companyID = [your_company_id];
var userMail = 'fabio.chicout@contoso.com';
// Get user Object
var user = Packages.com.liferay.portal.service.UserLocalServiceUtil.getUserByEmailAddress(companyID, userMail);
var groups = user.getGroups();
for(var i = 0; i < groups.size() ; i++) {
out.println(user.emailAddress + '; ' + groups.get(i).friendlyURL + '; ' + groups.get(i).name + '; ' + groups.get(i).description);
}
Vamos analisar:
O método getUserByEmailAddress retorna o objeto de usuário que tem o email dado. No objeto retornado, tem o método getGroups que retorna os grupos para os quais o usuário tem acesso como publicador, e cada grupo tem seu site.
É preciso entender que esse JavaScript dá acesso a código e objetos Java do próprio Liferay, e portanto o modelo de programação é na verdade um Java, mas com a sintaxe JavaScript. Isso posto, o retorno do método getGroups é um List<Group> cujo javadoc está aqui.
Lâ, é possível perceber o método get(index) para buscar um objeto na lista. É por aí que conseguimos acessar o objeto e seus membros diretamente, pois aparentemente, a API não usou encapsulamento por vias de getters/setters como é comum em código Java.