AnsweredAssumed Answered

[RESOLU] Déverrouillage de tous les fichiers d'un site

Question asked by jlocke on Nov 25, 2012
Latest reply on Nov 27, 2012 by jlocke
Bonjour.

Je veux déverrouiller tous les fichiers d'un site site Alfresco (verrous d'édition hors-ligne par d'autres utilisateurs) que je ne peux pas déverrouiller manuellement un par un car trop long…

N'ayant pas trouvé de moyens existants pour faire ça (voir mon précédent post : https://forums.alfresco.com/fr/viewtopic.php?f=8&t=5894 ), j'ai décidé de créer un web script java backed. Ce que j'ai essayé de faire exactement :

Je récupère l'espace documentaire d'un site (documentLibrary), représenté par un NodeRef. Je fais appel à la méthode unlock du service LockService qui peut déverrouiller des fichiers et ses enfants.
Cependant, j'ai l'erreur : Accès réfusé, vous n'avez pas les permissions pour effectuer cette opération.
Pourtant, je me connecte via AuthenticationUtils en administrateur, donc je devrais avoir tous les droits .

J'ai même essayé de déverrouiller un seul fichier, toujours la même erreur.

Voici le code Java intéressant (dans ce code, je récupère le noeud de documentLibrary, et parcourt tous ses fils directs pour les déverrouiller un par un, j'ai essayé cette méthode car je me suis dit qu'on ne pouvait peut-être pas appliquer directement la méthode unlock sur le noeud documentLibrary).

public void execute(WebScriptRequest req, WebScriptResponse res) throws IOException
{
      String resUnlock;

      AuthenticationUtils.startSession("admin", "admin");

      SiteInfo siteInfo = site.getSite("site1");
      NodeRef docLib = site.getContainer(siteInfo.getShortName(), "documentlibrary");

      List<ChildAssociationRef> children = nodeService.getChildAssocs(docLib);
      for (ChildAssociationRef childAssoc : children)
      {
            NodeRef childNodeRef = childAssoc.getChildRef();
            
            try
            {
               lockService.unlock(childNodeRef, true);
            }
            catch (UnableToReleaseLockException exception)
            {
               System.out.println(exception.getMessage());
            }
      }
}

Quel est le problème ?

Merci d'avance.

Outcomes