Crear carpetas al crear un usuario

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

Crear carpetas al crear un usuario

Hola a todos!
Tengo sincronizado alfresco con el servidor LDAP y funciona perfecto, se crean los usuarios y grupos correctamente, y mi pregunta es: es posible que al crearse los usuarios en su espacio personal se creen una serie de carpetas que yo defina???. No se si es posible mediante una acción (he estado probando y no he conseguido nada) o con un webscript…

Gracias!
5 Replies
titanikoktf
Member II

Re: Crear carpetas al crear un usuario

Hola,

no se si te servirá, pero se pueden hacer templates de un espacio, de modo que cuando creas un espacio se genera toda una estructura de carpetas. No recuerdo exactamente como se hacía, pero aquí dan más información. http://forums.alfresco.com/en/viewtopic.php?t=4767.

Un saludo!
david_6914
Member II

Re: Crear carpetas al crear un usuario

Ok, voy a echar una ojeada a ver si me sirve.

Gracias!
david_6914
Member II

Re: Crear carpetas al crear un usuario

Pues sigo sin conseguirlo…
Ahora me he creado una regla que se ejecuta cuando se crea una carpeta en el espacio de usuarios. Esta regla llama al siguiente script:

var parentNodeId = 'User Homes/',
spaceName = 'facturas',
spaceTitle = "Carpeta de pruebas" ,
spaceDescription = "Descripcion de la carpeta de pruebas"

var nodeNew;
var nodeParent = search.findNode("workspace://SpacesStore/" + parentNodeId);
nodeNew = nodeParent.createFolder(spaceName);

// Always add title & description, default icon
nodeNew.properties["cm:title"] = spaceTitle;
nodeNew.properties["cm:description"] = spaceDescription;
nodeNew.properties["app:icon"] = "space-icon-default";
nodeNew.save();

Me enfrento a dos problemas:
- Que no se crea la carpeta, me da error al crearla y mirando en el firebug la respuesta del servidor aparece:

"message" : "04100347 Failed to execute script 'workspace:\/\/SpacesStore\/6b697df7-38b1-4a87-804d-5426c80d8b1c': 04100346 TypeError: Cannot call method \"createFolder\" of null (workspace:\/\/SpacesStore\/6b697df7-38b1-4a87-804d-5426c80d8b1c#8)",  
  "exception" : "org.alfresco.scripts.ScriptException - 04100347 Failed to execute script 'workspace:\/\/SpacesStore\/6b697df7-38b1-4a87-804d-5426c80d8b1c': 04100346 TypeError: Cannot call method \"createFolder\" of null (workspace:\/\/SpacesStore\/6b697df7-38b1-4a87-804d-5426c80d8b1c#8)",

- Que al crear la carpeta no se como pasarle el nombre de su carpeta padre, ahora mismo está fijo en el user homes.

Alguna idea?
yakon_8894
Member II

Re: Crear carpetas al crear un usuario

Hola David,

veo un error en la linea:

var nodeParent = search.findNode("workspace://SpacesStore/" + parentNodeId);

el valor de parentNodeId es 'User Homes/' pero para buscar un nodo con la función findNode necesitas saber el uuid de ese nodo, no su nombre.

Si la regla de contenido la aplicas sobre el espacio User Homes, puedes hacer referencia a ese espacio con la variable space.

Más info aquí
david_6914
Member II

Re: Crear carpetas al crear un usuario

Bueno, al final conseguí que en el alfresco instalado en mi ordenador funcionase (gracias Yakon!), aquí está el código:

var num=space.children.length;

var nodeNew1;
nodeNew1 = space.children[num-1].createFolder('facturas');
nodeNew1.properties["cm:title"] = "Facturas";
nodeNew1.properties["cm:description"] = "Carpeta para las facturas";
nodeNew1.properties["app:icon"] = "space-icon-default";
nodeNew1.save();

Pero no caí en la cuenta que al ser javascript no funcionaría en un servidor "normal", creo que realizando una acción se puede hacer lo que quiero, pero se me ocurre una pregunta: se puede asignar a un espacio, en este caso el espacio de usuarios, que los subespacios que se creen en el utilicen como modelo una plantilla de espacios?