Page 1 of 2
Incapaz de Asignar un Script en el repositorio
PostPosted:Wed Mar 14, 2012 11:58 am
by rcarracedo
Hola:
Estoy intentando asignar un script en el repositorio.
Tengo una jerarquía de carpetas creada y navego por el repositorio hasta una de ellas. Al intentar hacer "Set script" me da el siguiente error:
Application error
Class: com.openkm.core.AccessDeniedException
Message: Sorry, only for admin user
El caso es que tengo la aplicación configurada para loguearse por ldap.
Veo sin problemas los usuarios en la pestaña de usuarios de la administración. Entro con el usuario admin que tiene AdminRole.
No sé si este script puede dar una pista:
Code: Select allimport javax.jcr.*;
import com.openkm.core.*;
import com.openkm.bean.*;
String token = JcrSessionManager.getInstance().getSystemToken();
Session session = JcrSessionManager.getInstance().get(token);
Node okmroot = session.getRootNode().getNode(Repository.ROOT);
print("UserId: "+session.getUserID()+"<br/>");
Al ejecutarlo desde la ventana de Scripting devuelve:
UserId: system
El resultado lógico sería admin, igual no estoy consultando correctamente el usuario y lo que me devuelve este script es el usuario interno que accede al repositorio.
¿Puede alguien echarme una mano?
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Thu Mar 15, 2012 6:34 pm
by pavila
En qué carpeta quieres asignar el script? Puede adjuntar una captura de pantalla?
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Fri Mar 16, 2012 8:37 am
by rcarracedo
Gracias por la respuesta!:
Intento asignarlo desde el repositorio donde pone "Set script":
y me da el siguiente error:

Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Fri Mar 16, 2012 8:56 am
by pavila
La seguridad la tienes por LDAP, verdad? El usuario administrador pertenece al rol AdminRole, supongo pq si no no podrías acceder a la administación. Por temas de seguridad sólo el usuario okmAdmin puede realizar esta acción.
En OpenKM 6.0 esta comprobación se hace a nivel de rol, por lo que no es necesario que sea un usuario en concreto si no cualquiera que sea administrador.
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Fri Mar 16, 2012 9:16 am
by rcarracedo
Acabo de crear el usuario OkmAdmin y asignarle el rol AdminRole.
¡Ahora ya funciona! Muchas gracias.
¿no sería lógico que esto estuviese a nivel de Role en vez de Usuario?
Saludos.
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Fri Mar 16, 2012 10:08 am
by pavila
He hecho una mejora en la rama 5.1 y ahora funciona a nivel de rol. Puedes probar la night build disponible en
http://integration.openkm.com/5.1.x/, a partir de esta noche que es cuando se hace (como su propio nombre indica).
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Tue Mar 20, 2012 9:20 am
by rcarracedo
Ya lo probé, y ahora sí que deja con cualquier usuario que tenga permisos de AdminRole
Lo que no veo son los resultados de la ejecución de los scripts que trae por defecto definidos en la pestaña de administración ni de un holamundo. ¿donde salen los print que se ejecutan aquí? ¿Hay alguna forma de abrir una ventana para mostrar mensajes desde los scripts, por ejemplo para implementar asistentes para el usuario?
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Wed Mar 21, 2012 9:16 am
by pavila
Los prints de esos scripts salen en en log de JBoss y en la terminal si es que lo has arrancado manualmente desde una.
Para implementar asistentes se tendría que hacer una extensión del interfaz de usuario (
http://wiki.openkm.com/index.php/Frontend_extensions).
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Wed Mar 21, 2012 10:41 am
by rcarracedo
¿y sería posible de algún modo ejecutar una ventanita así:
com.google.gwt.user.client.Window.alert("Hola, mundo!");
asignando un script sin necesidad de tener que modificar la aplicación compilándola?
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Wed Mar 21, 2012 6:00 pm
by pavila
La parte hecha en GWT debe compilarse pq se genera código Javascript a partir de las clases en Java.
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Thu Mar 22, 2012 7:55 am
by jllort
Lo que puedes ejecutar es un print("hola mundo"); y eso te aparecerá en la consola
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Thu Mar 22, 2012 5:05 pm
by rcarracedo
Ok, gracias pavila, he intentado ejecutar código que abriese una ventana desde la consola beanshell, pero el error que devuelve indica que es "headless", con lo que supongo que esta consola ha sido configurada así a propósito.
jllort, efectivamente, en la consola salen los resultados, pero lo que yo buscaba es una forma más interactiva de tratar con los scripts y los documentos, es decir, poder ver mensajes de algún tipo en algún sitio de la aplicación cuando se ejecuta alguno de los scripts que se asignan en el repositorio.

Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Fri Mar 23, 2012 6:39 pm
by jllort
Lo ultimo que hemos hecho es un sistema de notificacion ( administrador ) que peude enviar mensajes a los usuarios. Lo que en este momento no se hace es discriminar que sea para un usuario concreto. A partir de esto algo se podría hacer en este sentido que nos indicas.
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Sun Mar 25, 2012 1:54 pm
by pavila
Podrías adjuntar el código de algún script de esos que dices? Me gustaría ver qué haces para que de el mensaje de "headless".
Re: Incapaz de Asignar un Script en el repositorio
PostPosted:Mon Mar 26, 2012 8:58 am
by rcarracedo
por ejemplo, pegando esto en la consola de beanshell:
javax.swing.JOptionPane.showMessageDialog(null, "A long and boring message","Danger Danger", JOptionPane.ERROR_MESSAGE);
devuelve:
Target exception: java.awt.HeadlessException
Supongo que tiene que ver con la forma en la que se integró el beanshell en la aplicación, que no permite abrir ventanas, sólo ejecutar código "internamente".