Modifier les permissions à la création d'un NodeRef
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-03-2015 07:36 AM
Bonjour,
Je développe actuellement un traitement permettant de générer un PDF à partir d'un NodeRef existant, puis de modifier les droits sur le NodeRef du PDF généré.
Lors de la modification des droits, une partie n'est pas réalisé : je souhaite ajouter des droits en lecture et supprimer les droits d'héritage, mais à l'exécution, les droits en lecture sont bien ajoutés mais l'héritage n'est pas désactivé.
Voici ma fonction de modification des droits :
Lors de l'exécution, le nodePDF contient bien une référence de NodeRef. Néanmoins, toujours pendant l'exécution, quand je recherche ce nodeRef via le navigateur de noeud, je n'obtiens pas de résultat (il ne trouve pas mon nodeRef). Une fois le traitement global terminé, je relance la recherche et là le nodeRef apparaît dans le navigateur de noeud.
J'ai tenté de lancer ma fonction de génération de PDF dans un transaction helper, afin de commit le nodeRef quand il est créé, mais sans amélioration :
Je précise également que mon traitement global est lancé avec "AuthenticationUtil.runAsSystem".
Auriez-vous une idée pour résoudre ce problème ?
Je travaille sur la version 4.0.2 Entreprise d'Alfresco.
Merci d'avance !
Je développe actuellement un traitement permettant de générer un PDF à partir d'un NodeRef existant, puis de modifier les droits sur le NodeRef du PDF généré.
Lors de la modification des droits, une partie n'est pas réalisé : je souhaite ajouter des droits en lecture et supprimer les droits d'héritage, mais à l'exécution, les droits en lecture sont bien ajoutés mais l'héritage n'est pas désactivé.
Voici ma fonction de modification des droits :
private void droitsDuPDF() { PermissionService permissionService = getServiceRegistry().getPermissionService(); // Suppression des droits sur le fichier permissionService.deletePermissions(nodePDF); 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); }}
Lors de l'exécution, le nodePDF contient bien une référence de NodeRef. Néanmoins, toujours pendant l'exécution, quand je recherche ce nodeRef via le navigateur de noeud, je n'obtiens pas de résultat (il ne trouve pas mon nodeRef). Une fois le traitement global terminé, je relance la recherche et là le nodeRef apparaît dans le navigateur de noeud.
J'ai tenté de lancer ma fonction de génération de PDF dans un transaction helper, afin de commit le nodeRef quand il est créé, mais sans amélioration :
private NodeRef convertToPdf() throws Exception { RetryingTransactionCallback<Object> txnWork = new RetryingTransactionCallback<Object>() { @Override public Object execute() throws Exception { //mon traitement } }; TransactionService transactionService = getServiceRegistry().getTransactionService(); NodeRef child = (NodeRef) transactionService.getRetryingTransactionHelper().doInTransaction(txnWork, true); return child; }
Je précise également que mon traitement global est lancé avec "AuthenticationUtil.runAsSystem".
Auriez-vous une idée pour résoudre ce problème ?
Je travaille sur la version 4.0.2 Entreprise d'Alfresco.
Merci d'avance !
Labels:
- Labels:
-
Archive
2 REPLIES 2
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-07-2015 04:51 AM
Bonjour,
Le problème est toujours existant. Je n'ai toujours pas de solutions.
Si vous avez une idée, n'hésitez pas !
Merci d'avance.
Le problème est toujours existant. Je n'ai toujours pas de solutions.
Si vous avez une idée, n'hésitez pas !
Merci d'avance.
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-07-2015 06:18 AM
Bonjour,
A la lecture de votre code, rien ne m'appraît comme choquant.
Pouvez-vous essayer en simplifiant "droitsDuPDF" pour ne laisser que la désactivation de l'héritage ?
Vérifiez également qu'il n'y a pas d'exception de générée et qui serait catchée sans traitement.
Cordialement,
Charles Le Seac'h
A la lecture de votre code, rien ne m'appraît comme choquant.
Pouvez-vous essayer en simplifiant "droitsDuPDF" pour ne laisser que la désactivation de l'héritage ?
Vérifiez également qu'il n'y a pas d'exception de générée et qui serait catchée sans traitement.
Cordialement,
Charles Le Seac'h
