• Incapaz de Asignar un Script en el repositorio

  • Hemos intentado hacer de OpenKM una aplicación lo más intuitiva posible, sin embargo siempre viene bien algún consejo.
Hemos intentado hacer de OpenKM una aplicación lo más intuitiva posible, sin embargo siempre viene bien algún consejo.
Forum rules: Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
 #14502  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 all
import 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?
 #14541  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.
 #14543  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.
 #14855  by rcarracedo
 
Ya lo probé, y ahora sí que deja con cualquier usuario que tenga permisos de AdminRole :D

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?
 #14885  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?
 #14916  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. :)
 #14929  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.
 #14962  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".

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.