templates y permissions via java

cancel
Showing results for 
Search instead for 
Did you mean: 
javigon
Member II

templates y permissions via java

Buenas,
Voy bastante perdido por lo que a templates y permisos se refiere. Estoy desarrollando una aplicación Java que "ataca" contra el repositorio del Alfresco. Así, necesito crear un espacio siguiendo un template (space_template) de tal manera que copie la estructura (con aspects, permissions,etc.) del template al nuevo espacio (he estado mirando via CMLCopy pero no he tenido mucho éxito).
Mi otra gran cruz son los permisos: ¿cómo puedo establecer permisos en un folder?

¿Alguna pista?

Muchas gracias por vuestro tiempo!
5 Replies
pjcaracuel_2349
Active Member II

Re: templates y permissions via java

Buenas,

Por partes, para la copia de espacios en base a templates, via java no he encontrado nada,bueno esta entrada en JIRA
https://issues.alfresco.com/jira/browse/ARCHIVE-613

Via webscript he encontrado un post que puede serte de utilidad:
http://forums.alfresco.com/en/viewtopic.php?f=36&t=13151

Para la gestion de los permisos de un espacio, tienes dos opciones via jacvascript
http://wiki.alfresco.com/wiki/JavaScript_API_For_Alfresco_2.1#Permission_and_Security_API

o via java usando
org.alfresco.service.ServiceRegistry

Saludos
javigon
Member II

Re: templates y permissions via java

Muchas gracias por tu respuesta!!!
Al final he utilizado Access Control Web Service. Dejo aquí código para todos aquellos que vayan tan perdidos como yo, por si les puede servir.



Store STORE = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
AuthenticationUtils.startSession(user, password);
AccessControlServiceSoapBindingStub accessControlService = WebServiceFactory.getAccessControlService();

Reference reference = new Reference(STORE, stringNodeUuid, null);
Predicate predicate = new Predicate(new Reference[] {reference}, STORE, null);

ACL[] acl = accessControlService.getACLs(predicate, null);
ACE[] ace = acl[0].getAces();
AccessStatus accessStatus = ace[0].getAccessStatus();

System.out.println(ace[0].getAuthority()); //Retorna 1r usuario que tiene permisos sobre el nodo
System.out.println(ace[0].getPermission()); //Retorna el permiso especificado para el usuario anterior
System.out.println(accessStatus.getValue()); //Retorna si tiene acceso o no al nodo


//Añadir permisos
ACE[] aces1 = new ACE[]{
                    new ACE(userToAdd, Constants.READ, AccessStatus.acepted),
                   };

ACL[] acls1 = accessControlService.addACEs(predicate, aces1);

Cualquier cosa que le veáis, soy todo oídos.

Un saludo y gracias por todo.
javigon
Member II

Re: templates y permissions via java

Tengo dudas sobre lo que he puesto de "AccessStatus". ¿Qué especifica exactamente? He comprovado que si está "allowed" és gestionable desde la interficie web del alfresco (aparece en permisos del espacio), pero si está "deny" no aparece en la lista (permisos ocultos??).
¿Es así?

Saludos.
pjcaracuel_2349
Active Member II

Re: templates y permissions via java

javigon
Member II

Re: templates y permissions via java

Gracias, ha sido de gran ayuda!

Un saludo