Quantcast
Channel: Alfresco Forums - Webscripts / Javascript / Surf
Viewing all articles
Browse latest Browse all 32

Modifier les permissions à la création d'un NodeRef

$
0
0

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 :

privatevoid 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()throwsException{
 
RetryingTransactionCallback<Object> txnWork =new RetryingTransactionCallback<Object>(){
@Override
publicObject execute()throwsException
{
//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 !

4.0

Viewing all articles
Browse latest Browse all 32

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Love with Heart Breaking Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Smile Quotes


Letting Go Quotes


Love Song lyrics that marks your Heart


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Long Distance Relationship Tagalog Love Quotes