• Desbloquear archivo

  • 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.
 #5256  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?
 #5268  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 ).
 #5296  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.
 #5300  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.
 #5302  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....
 #5316  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.
 #5330  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 :).
 #10838  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.
 #10839  by jllort
 
desde la version 5.x el usuario okmAdmin ( únicamente este ) puede desbloquear cualquier documento, prueba con este.
 #10847  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.
 #10852  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.
 #10864  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?

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.