Page 1 of 1

Desbloquear archivo

PostPosted:Fri Jun 04, 2010 11:01 am
by Pepito
Bueno he bloqueado mediante un workflow un documento y lamentablemente falló la instrucción siguiente que lo desbloqueaba, además perdí la sesión...
He visto muchos post en el foro tratando este tema pero todos trataban de desbloquear y a mí me basta con borrar el archivo ya que es un archivo de pruebas. He visto en el foro que se puede ir en repository view al archivo y desbloquearlo pero no me deja porque no estoy con la sesión que lo bloqueó, decir que lo bloqueé con system ya que lo hice con un workflow que cogía el token de system.... :/, ¿es un usuario normal? (yo no hice la instalación, por eso no tengo ni idea).

EDITO: también usé String locker = JCRUtils.getLockToken("330a6aaa-26ab-4190-a18e-3961f13fbfca"); pero si se lo añado a system, ¿puedo loguear con él?

Re: Desbloquear archivo

PostPosted:Sat Jun 05, 2010 9:54 am
by jllort
El system es un usuario interno de jackrabbit un super usuario. En principio se debe intentar no utilizar el usuario system ( siempre que sea posible ).

Re: Desbloquear archivo

PostPosted:Mon Jun 07, 2010 7:50 am
by Pepito
Gracias por responder.
Entonces, ¿no es posible eliminar el archivo o desbloquearlo?.

He probado lo siguiente:
Añado el LockToken al usuario system y ejecuto el siguiente código:
Code: Select all
String usuario = SessionManager.getInstance().getTokenByUserId("system");
DirectDocumentModule.class.newInstance().unlock(usuario, "/okm:root/pruebas/valido/prueba.txt");
Pero nada, me dice que la sesión "/okm:root/pruebas/valido/prueba.txt" no fue la que bloqueó el nodo.

El código que utilicé para bloquear el archivo fue:
Code: Select all
String usuario= SessionManager.getInstance().getSystemToken();
OKMDocument.getInstance().checkout(usuario, "/okm:root/pruebas/valido/prueba.txt")
EDIT: ¿ejecutando el shutdown.bat o sh y luego el start se arreglaría?

Gracias de antemano.

Re: Desbloquear archivo

PostPosted:Mon Jun 07, 2010 9:38 am
by jllort
No es un tema de shutdown, eliminar un bloqueo de estos tiene su complicación.

Hay que entrar en el repositorio, crear un token para el documento bloqueado, asignarlo al documento y después con el usuario desbloquearlo. Los documentos se bloquean con un token y los usuarios tienen estos token asignados que les permiten desbloquearlos.

Esta es precisamente la parte mas xunga del mantenimiento que te puedes encontrar.

Re: Desbloquear archivo

PostPosted:Mon Jun 07, 2010 9:53 am
by Pepito
Gracias por responder.

Yo usé lo siguiente :

String variable= JCRUtils.getLockToken("330a6aaa-26ab-4190-a18e-3961f13fbfca");

Esa id es la del documento y me devolvió "330a6aaa-26ab-4190-a18e-3961f13fbfca-Z", después cogí esa cadena y se la añadí al usuario "system" (el que está editando) en LockToken.
Por último mediante un workflow uso:
DirectDocumentModule.class.newInstance().unlock("1076405872688050575297472881900", ruta);
Ese código es el token de system y "ruta" es la ruta al archivo bloqueado. El workflow lo ejecuto desde una cuenta de administración pero obviamente no desde system porque no sé como se entra en esa cuenta si es que se puede.

¿No se puede hacer así?.

Espero tu ayuda porque esto es un problema gordo teniendo en cuenta la cantidad de usuarios que van a utilizar el programa y los posibles bloqueos que pueden surgir...
Gracias de antemano.

EDITO: Al final me cargué el contenido de la carpeta a saco desde el repositorio con remove contents, aunque no creo que sea lo más recomendable....

Re: Desbloquear archivo

PostPosted:Mon Jun 07, 2010 9:18 pm
by jllort
Este token de lock lo puedes asignar a otro usuario que no sea el system, no tiene por que ser el mismo. La idea es que el usuario que lo puede desbloquear, sea el que sea es el que tiene este token de lock en la lista.

Yo intentaria volver a reproducir el problema.

Re: Desbloquear archivo

PostPosted:Tue Jun 08, 2010 3:41 pm
by Pepito
Gracias por responder, pensaba que había que desbloquear obligatoriamente el nodo con el usuario que lo bloqueó pero viendo que no es necesario probaré a reproducir nuevamente el problema e intentaré asignarle el token a otro usuario y desbloquear el nodo con él, a ver si funciona, gracias nuevamente :).

Re: Desbloquear archivo

PostPosted:Wed Apr 27, 2011 12:31 am
by roycal93
Buenas tardes!
Tengo este mismo problema, y veo que en varios Foros usan este mEtodo:
SessionManager sessions = SessionManager.getInstance();
String oldToken = sessions.getTokenByUserId(session.getUserID());

Este cOdigo no es reconocido en mi aplicaciOn (c# .net) y es exactamente lo que necesito, yo estoy entrando con mi usuario (el mismo que tiene el lock del archivo) pero no puedo hacerle checkin-cancel checkout porque no estoy trabajando con el mismo token y me muestra el error de "Node Locked". Yo necesito tomar el token por lo mismo que explica el experto: "Los documentos se bloquean con un token y los usuarios tienen estos token asignados que les permiten desbloquearlos."

COmo puedo hacer para sacar del openkm ese token que estA ligado a mi usuario? Tengo que importar alguna librerIa o assembly para poder usar ese mEtodo o cOmo lo puedo hacer?

Muchas gracias por la ayuda brindada!!!

Saludos,
RC.

Re: Desbloquear archivo

PostPosted:Wed Apr 27, 2011 6:36 am
by jllort
desde la version 5.x el usuario okmAdmin ( únicamente este ) puede desbloquear cualquier documento, prueba con este.

Re: Desbloquear archivo

PostPosted:Wed Apr 27, 2011 4:17 pm
by roycal93
Hmmm, gracias por tu ayuda. Pero resulta que tengo integrado el sistema con el ldap y ya no tengo un okmAdmin, de igual manera lo que ocupo es poder obtener el token con el que fue lockeado el archivo para poder trabajarlo con el mismo usuario que lo bloqueO , no con otro. Por lo que eso del okmadmin no es una opciOn :)

Lo que ocupo es obtener ese token pero no sE como hacerlo.

Muchas gracias de nuevo por la ayuda.

Re: Desbloquear archivo

PostPosted:Wed Apr 27, 2011 9:00 pm
by jllort
1- lo mas sencillo es crear el usuario okmamin, te autentificas un momento, desbloquear el fichero y si quieres eliminas el usuario
2- En el trunk estamos actualizando para que cualquier usuario con el AdminRole pueda desbloquear un documento etc...

Sobre el código fuente para desbloquear un locked node el usuario pavila te lo posteará cuando tenga un momento.

Re: Desbloquear archivo

PostPosted:Thu Apr 28, 2011 6:10 pm
by pavila
roycal93 wrote:Hmmm, gracias por tu ayuda. Pero resulta que tengo integrado el sistema con el ldap y ya no tengo un okmAdmin, de igual manera lo que ocupo es poder obtener el token con el que fue lockeado el archivo para poder trabajarlo con el mismo usuario que lo bloqueO , no con otro. Por lo que eso del okmadmin no es una opciOn :)
Un usuario que bloquea un documento debe poder desbloquearlo él mismo aunque lo haya bloqueado hace una semana. Esto que te está pasando no es normal. Lo puedes reproducir en la demo online?