cancel
Showing results for 
Search instead for 
Did you mean: 

templates y permissions via java

javigon
Champ in-the-making
Champ in-the-making
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 5

pjcaracuel_2349
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ

javigon
Champ in-the-making
Champ in-the-making
Gracias, ha sido de gran ayuda!

Un saludo