AnsweredAssumed Answered

setInheritParentPermissions not applied

Question asked by amandine.b on Aug 6, 2015
Latest reply on Dec 7, 2015 by mrogers

I'm working on a java code which create a new PDF and modify permissions of it.

I try to set the inherit permissions to false but it's not applied. The PDF still have inheritance at the end of the execution.

private void droitsDuPDF() {
   PermissionService permissionService = getServiceRegistry().getPermissionService();

   // Suppression des droits sur le fichier
   permissionService.setInheritParentPermissions(nodePDF, false);

   // Récupération du répertoire parent
   ChildAssociationRef caRepertoire = nodeService.getPrimaryParent(nodeOrigine);
   NodeRef repertoire = caRepertoire.getParentRef();

   // Récupération des groupes ayant des droits sur l'espace
   Set<AccessPermission> droitsRepertoire = permissionService.getAllSetPermissions(repertoire);

   // Ajout des droits en lecture sur le PDF, pour chaque groupe récupéré du répertoire
   for (AccessPermission permission : droitsRepertoire) {
      permissionService.setPermission(nodePDF,permission.getAuthority(),PermissionService.CONSUMER, true);

I try to use RetryingTransactionCallback to commit the PDF when it's created, but it doesn't change anything.

   private NodeRef convertToPdf() throws Exception  {
      RetryingTransactionCallback<Object> txnWork = new RetryingTransactionCallback<Object>() {
         public Object execute() throws Exception
            //mon traitement
      TransactionService transactionService = getServiceRegistry().getTransactionService();
      NodeRef child = (NodeRef) transactionService.getRetryingTransactionHelper().doInTransaction(txnWork, true);
      return child;

Also, I use "AuthenticationUtil.runAsSystem" to execute the code.

I work on Alfresco 4.0.2 Enterprise.

Do you have some ideas to fix this issue ?

Thanks !