Open Business Intelligence

La red del Business Intelligence

hola a todo el mundo.

quisiera hacer lo siguiente, cuando unos determinados usuarios accedan al mantle (el frontend de pentaho), estos no puedan usar unos determinados botones del mantle, hay alguna funcion o variable que devuelva el usuario logueado?, y lo mismo a cuanto sus roles?.

muchas gracias por adelantado.

Visitas: 1185

Responde a esto

Respuestas a esta discusión

Hola Joaquim,

sí es posible obtener esta información.

Para obtener el usuario puedes usar algo como esto:

IPentahoSession userSession = PentahoHttpSessionHelper.getPentahoSession( request );

String userName= userSession.getName();

y para obtener los roles, por ejemplo:

String[] validMondrianRolesForUser = mondrianUserRoleMapper.mapConnectionRoles(PentahoSessionHolder.getSession(), catalogUri);
if ( (validMondrianRolesForUser != null) && (validMondrianRolesForUser.length>0) ) {
StringBuffer buff = new StringBuffer();
String aRole = null;
for (int i=0; i<validMondrianRolesForUser.length; i++) {
aRole = validMondrianRolesForUser[i];
// According to http://mondrian.pentaho.org/documentation/configuration.php
// double-comma escapes a comma
if (i>0) {
buff.append(",");
}
buff.append(aRole.replaceAll(",", ",,"));
}

El código lo he copiado del fichero Pivot.jsp.

También, con una xaction es mucho más fácil porque a la hora de definir los parámetros de entrada en Design Studio, puedes elegir este tipo de datos (user y roles).

Lo difícil será usar esta información para hacer lo que quieres.

Si lo consigues, por favor, publica la solución.

Saludos.

Gracias Edu.

Ya dire por aqui como me ha ido, en foros antiguas se dice que hay que modificar los ficheros fuente del mantle y compilarlos ya os comentare si consigo algo.

Hola joaqum,

he encontrado un código más sencillo:

<%@ page import="java.util.*,java.util.List,
org.pentaho.platform.engine.core.system.PentahoSystem,
org.pentaho.platform.api.engine.IPentahoSession,
org.pentaho.platform.util.messages.LocaleHelper,
org.pentaho.platform.web.http.PentahoHttpSessionHelper,
org.pentaho.platform.api.engine.IUserDetailsRoleListService"
%><%
response.setCharacterEncoding(LocaleHelper.getSystemEncoding());
String baseUrl = PentahoSystem.getApplicationContext().getBaseUrl();
IPentahoSession userSession = PentahoHttpSessionHelper.getPentahoSession( request );
String usuario = userSession.getName();
IUserDetailsRoleListService roleListService = PentahoSystem.getUserDetailsRoleListService();
List roles = roleListService.getRolesForUser(usuario);
 

for (int i = 0; i < roles.size(); i++) {
String rol_temp = (String)roles.get(i);
System.out.println("\nRol :"+rol_temp);
}
}
%>

Este pedazo de código obtiene el usuario autenticado dentro de Pentaho y devuedlve el listado de roles de ese usuario.

Espero que te sirva.

Hola Edu, perdona por el retraso a responder.

Primero gracias por las ayudas prestadas. He conseguido al fin tener un cierto control con una solucion a medias compilando el mantle de pentaho, explico he conseguido esconder ciertas opciones del menu de barras principal teniendo en cuenta si el usuario es administrador, pero el la barra principal de herramientas no lo he conseguido (aun), por lo tanto ciertas opciones del menu de herramientas las he desactivado editando el fichero /biserver-ce/tomcat/webapps/pentaho/mantle/xul/main_toolbar.xul, y añadiendo la propiedad disabled="true" en la definicion del boton a mostrar.
 Pero para controlar las opciones del menu de barra principal he seguido el siguiente metodo:

1. Instalar el entorno de compilacion Eclipse, y descargar los codigos fuente siguiendo el siguiente articulo:

http://www.prashantraju.com/2010/03/customising-the-pentaho-user-co...

2. editar el metodo buildMenuBar de la clase MantleMainMenuBar, a este metodo se le pasa un parametro que indica si el usuario es administrador o no (argumento isAdministrator), poniendo un if en los lugares donde se generan los Item de las opciones de menu de barras principal, se puede controlar dichas opciones aparezcan o no segun, se sea o no se sea administrador.

3 se compila el todo toda la aplicacion de pentaho segun se describe el articulo, esto generara varios ficheros en el directorio dist del mantle en directorio de worbench de eclipse (ejemplo /home/ipsom/workspace_Eclipse/pentaho/3.10.0-stable/mantle/dist) de aqui nos interesara el fichero mantle_***.jar que no tenga en su nombre source, el fichero mantle-package-***.zip or  mantle-package-***.tar.gz que contiene el directorio Mantle recompilado.

4 se debera parar el servidor pentaho, sustituir el /biserver-ce/tomcat/webapps/pentaho/WEB-INF/libmantle_***.jar

de pentaho por el nuevo creado durante la compilacion, y el directorio /biserver-ce/tomcat/webapps/pentaho/mantle de pentaho, por el directorio mantle que se encuentra dentro del fichero .zip o .tar.gz creados en la compilacion (antes de realizar las sustituciones se recomienda hacer un backup del fichero y directorio a sustituir). Por ultimo se pondra en marcha de nuevo el servidor pentaho, y borrar la cache del navegador para probar los cambios realizados.

Nota: si en el directorio mantle de la aplicacion se modifico algun fichero css, jsp, etc, para cambiar por ejemplo el aspecto de mantle, estos se deberan copiar en el nuevo mantle compilado para no perder dichos cambios.

Bueno espero que esto se pueda ser de ayuda a alguien, y aunque estoy haciendo mis primeros pinitos, si teneis alguna duda preguntar, que yo respondere en medida de mis conocimientos.

Me pueden decir donde puedo encontrar el código fuente de pentaho 3.7  para bajarlo que lo necesito y no lo he podido encontrar. Lo necesito para recompilarlo y poder esconder esas opciones de las que hablas.

Saludos.

El codigo fuente esta en el siguiente link:

http://source.pentaho.org/svnroot/

tendras que navegar por la web del link hasta encontrar los codigos fuentes que te hacen falta, y luego descargar dichos codigos fuentes con el Eclipse, tal como se explica en el articulo:

http://www.prashantraju.com/2010/03/customising-the-pentaho-user-co...

por ejemplo el primer paquete de codigos fuentes que tienes que descargar es:

svn://source.pentaho.org/svnroot/bi-platform-v2/tags/3.7.0-stable/

Nota. la URL raiz es http://www.prashantraju.com/2010/03/customising-the-pentaho-user-co...

tienes que cambiar el http por svn.

Joaquim, muchas gracias por compartir.

Joaquim Garcia dijo:

Hola Edu, perdona por el retraso a responder.

Primero gracias por las ayudas prestadas. He conseguido al fin tener un cierto control con una solucion a medias compilando el mantle de pentaho, explico he conseguido esconder ciertas opciones del menu de barras principal teniendo en cuenta si el usuario es administrador, pero el la barra principal de herramientas no lo he conseguido (aun), por lo tanto ciertas opciones del menu de herramientas las he desactivado editando el fichero /biserver-ce/tomcat/webapps/pentaho/mantle/xul/main_toolbar.xul, y añadiendo la propiedad disabled="true" en la definicion del boton a mostrar.
 Pero para controlar las opciones del menu de barra principal he seguido el siguiente metodo:

1. Instalar el entorno de compilacion Eclipse, y descargar los codigos fuente siguiendo el siguiente articulo:

http://www.prashantraju.com/2010/03/customising-the-pentaho-user-co...

2. editar el metodo buildMenuBar de la clase MantleMainMenuBar, a este metodo se le pasa un parametro que indica si el usuario es administrador o no (argumento isAdministrator), poniendo un if en los lugares donde se generan los Item de las opciones de menu de barras principal, se puede controlar dichas opciones aparezcan o no segun, se sea o no se sea administrador.

3 se compila el todo toda la aplicacion de pentaho segun se describe el articulo, esto generara varios ficheros en el directorio dist del mantle en directorio de worbench de eclipse (ejemplo /home/ipsom/workspace_Eclipse/pentaho/3.10.0-stable/mantle/dist) de aqui nos interesara el fichero mantle_***.jar que no tenga en su nombre source, el fichero mantle-package-***.zip or  mantle-package-***.tar.gz que contiene el directorio Mantle recompilado.

4 se debera parar el servidor pentaho, sustituir el /biserver-ce/tomcat/webapps/pentaho/WEB-INF/libmantle_***.jar

de pentaho por el nuevo creado durante la compilacion, y el directorio /biserver-ce/tomcat/webapps/pentaho/mantle de pentaho, por el directorio mantle que se encuentra dentro del fichero .zip o .tar.gz creados en la compilacion (antes de realizar las sustituciones se recomienda hacer un backup del fichero y directorio a sustituir). Por ultimo se pondra en marcha de nuevo el servidor pentaho, y borrar la cache del navegador para probar los cambios realizados.

Nota: si en el directorio mantle de la aplicacion se modifico algun fichero css, jsp, etc, para cambiar por ejemplo el aspecto de mantle, estos se deberan copiar en el nuevo mantle compilado para no perder dichos cambios.

Bueno espero que esto se pueda ser de ayuda a alguien, y aunque estoy haciendo mis primeros pinitos, si teneis alguna duda preguntar, que yo respondere en medida de mis conocimientos.

Responder a debate

RSS

Distintivo

Cargando…

© 2021   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio