El problema: Obtener los grupos de usuario a los que pertenece el Usuario logueado al portal. Todo ello desde un portlet. En mi caso, me sirve porque de acuerdo al grupo de usuario que pertenezca, debo o no mostrar ciertos controles en mi portlet.
Aqui el codigo:
Método init
public void init() throws PortletException{
try {
InitialContext ctx = new InitialContext();
Object homectx.lookup("portletservice/com.ibm.portal.um.portletservice.PumaHome");
if(home != null)
serviceHome = (PortletServiceHome)home;
} catch (Exception e) {
System.out.println("No se encontro el objeto home");
}
}
Método doView
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException {
response.setContentType(request.getResponseContentType());
if(serviceHome != null){
PumaHome service = (PumaHome) serviceHome.getPortletService(PumaHome.class);
PumaProfile profile = service.getProfile(request);
PumaLocator plocator = service.getLocator( request );
try {
// Obtenemos el usuario actualmente en la sesion
User usuario = profile.getCurrentUser();
// Preparamos una lista de los atributos deseados
List attributes = new ArrayList();
attributes.add("cn");
// Obtenemos los grupos a los que pertenece el usuario
List
Iterator group_itr = groups.iterator();
System.out.println( "EL USUARIO PERTENECE A LOS SIGUIENTES GRUPOS: " );
while( group_itr.hasNext() ) {
Group group = ( Group )group_itr.next();
Map group_attributes = profile.getAttributes( group, attributes );
String group_cn = ( String )group_attributes.get( ( Object ) "cn" );
System.out.println( " - " + group_cn );
}
} catch (Exception e) {
e.printStackTrace();
}
}
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/jsp/html/view.jsp");
rd.include(request,response);
}
Gracias a mi amigo Kenneth por el enlace que me recomendó. Fue muy útil
A mi me sirvió. Ahora necesito esta misma funcionalidad pero implementarla para su uso en Portlet Factory. Estaré colgando la solución en cuanto la tenga.
Prueben este código. Puede ser útil quien sabe cuando!
Que tal Andres, muy interesante el tema, ya lo hiciste para WebSphere Portlet Factory?
ResponderEliminar