Restringir tipos dentro de un folder

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

Restringir tipos dentro de un folder

Hola a tod@s.

En primer lugar, dar la enhorabuena a todo el mundo por la ayuda que este foro nos presta a todos los que estamos empezando con Alfresco.

Os cuento mi situación a ver si me podéis echar una mano: estamos creando una aplicación con struts2 y que utiliza Alfresco (community edition 3.3.0) como base de datos y repositorio documental. El acceso a Alfresco lo estamos haciendo mediante el API de OpenCMIS. Actualmente estamos creando nuestro propio modelo de negocio con varios tipos que heredan de los básicos de Alfresco. Uno de estos tipos hereda de cm:folder, y lo que necesitamos es que dentro de este tipo sólo se puedan crear objetos de otro tipo propio que también hemos creado. Para que quede más claro pongo un ejemplo: imaginad que tenemos un tipo que hereda de cm:folder y que se llame colores. Por otro lado, tenemos otro tipo propio que se llama color. Bien, pues lo que necesitamos es que dentro del folder colores sólo se puedan crear objetos del tipo color. ¿Es esto posible?

Muchas gracias por la ayuda.

Un saludo!
5 Replies
yakon_8894
Member II

Re: Restringir tipos dentro de un folder

Hola danipixel,

se me ocurren dos posibles soluciones que pueden servirte para tu caso (seguro que hay más):

- Crear una regla de contenido en tu espacio de tipo 'colores' que tipifique todo el contenido que se añada a ese espacio al tipo 'color'
- Crear un behaviour para tu tipo de contenido 'colores' que salte cuando se añadan hijos al espacio, y compruebe si son de tipo 'color'. En caso de no serlo se podría lanzar una excepción, cancelar el proceso, etc. A mi me resultó muy útil este documento sobre behaviours por si no estás familiarizado con ellos.

Un saludo
danipixel
Member II

Re: Restringir tipos dentro de un folder

Gracias por la respuesa Yakon!

Voy a investigar sobre las dos opciones y te cuento.
danipixel
Member II

Re: Restringir tipos dentro de un folder

Creo que la mejor opción (y la que veo más simple para mí) sería la de crear una regla de contenido para el folder: la condición sería aplicarla a cualquier item, y que la acción a realizar fuera ejecutar un script propio (guardado bajo Data Dictionary -> Scripts) que comprobara el tipo del hijo. ¿Es correcto?

Pensando en esto, también se me ha ocurrido otra posible opción pero que no sé si es posible. ¿Se pueden definir para cada folder los tipos que aparecen en la pantalla del wizard para crear un espacio nuevo desde cero (Advanced Space Wizard y seleccionar la opción from scratch)?

Gracias de antemano.

Un saludo.
yakon_8894
Member II

Re: Restringir tipos dentro de un folder

Buenas,

yo el problema que le veo a ejecutar un script es que no te permite notificar al usuario que no puede añadir un documento que no sea del tipo X, o al menos eso creo. Supongo que lo que tendría que hacer tu script es comprobar que el nodo tenga el tipo esperado y si no lo tiene aplicárselo antes de añadirlo a la carpeta. Algo como:

if (!document.isContainer){
  if (!document.isSubType('colores:color')){
      document.specializeType('colores:color');
   }
}

Sobre lo de definir tipos para la pantalla del wizard, nunca lo he hecho, pero supongo que si en el web-client realizar una configuración específica para tu tipo, por ejemplo:
 <config evaluator="node-type" condition="colores:folder">
</config>

y dentro de la tag configuras los tipos del wizard puede que te funcione.

Un saludo
danipixel
Member II

Re: Restringir tipos dentro de un folder

Muchas gracias! el ejemplo del script me viene genial.

Un saludo.