Filtrar tipo de contenido en función del espacio y/o usuario

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

Filtrar tipo de contenido en función del espacio y/o usuario

Buenas,

Tengo un pequeño problema al que no le encuentro una solución sencilla.

Tras analizar los documentos que maneja una organización me he encontrado con alrededor de 70 tipos distintos. De esos 70 documentos hay unos 30 que comparten todos los departamentos, pero los otros 40 son específicos de cada uno de ellos, por lo que no tiene sentido mostrárselos todos en los combos de selección de tipos.

Ahí va mi pregunta ¿se puede extender/configurar Alfresco para  filtrar los tipos que se muestran a un usuario en función del perfil del usuario o del espacio donde se encuentra?

Un saludo y gracias,
Xian
5 Replies
pjcaracuel_2349
Active Member II

Re: Filtrar tipo de contenido en función del espacio y/o usuario

Buenas,

Esta es una idea a nivel teorico, espero tenerlo resuelto en un par de meses, pero a dia de hoy solo manejo la idea.

Dar de alta los tipos documentales y sus correspondientes asociaciones a usuarios/espacios en una tabla de bbdd:

Ejem
tipo_documento_1,usuario,espacio…..

A continuacion, buscar el componente que muestra los tipos de contenidos disponibles y sobreescribirlo de forma que en lugar de tirar del xml de configuracion del modelo, tire de la tabla de bbdd donde has declarado las relaciones.

Para esto te adjunto un post que te puede servir:
http://forums.alfresco.com/es/viewtopic.php?f=6&t=843&p=2983

Saludos
xian_5749
Member II

Re: Filtrar tipo de contenido en función del espacio y/o usuario

Buenas,

Muchas gracias por responder. La idea que apuntas es buena, te cuento lo que yo estaba pensando.

Por lo que he podido ver en el código la clase que proporciona la lista de tipos para los diálogos de edición de propiedades y añadir contenido es org.alfresco.web.bean.content.BaseContentWizard. En concreto el método que accede al diccionario es el método getObjectTypes. Mi idea pasa por implementar mi propia clase, que herede de la original y sobreescriba el método.

En el método sobreescrito lo que haría sería:
1. Llamar al método original de la clase padre y leer todos los tipos
2. Realizar el filtrado de la lista devuelta por el padre en función del usuario/grupo/espacio actual.
3. Devolver la lista filtrada.

Para realizar el 2do paso (el filtrado) estaba pensando en crear una carpeta dentro del Diccionario de Datos donde tendría un fichero de texto plano para cada grupo, en cada línea del mismo tendría los tipos a mostrar para el grupo en cuestión. De esta manera evito tener una tabla en base de datos y permito la edición directamente desde Alfresco de la lista de tipos a mostrar.

Seguiré avanzando a ver cómo concreto todo esto.

Muchas gracias
ajv
Member II

Re: Filtrar tipo de contenido en función del espacio y/o usuario

Hola xian,

Me parece un buen enfoque, aunque para el filtrado yo preferiría usar una tabla de BBDD con todos los tipos/usuarios.
Si optas por los ficheros en el Diccionario de Datos, ten en cuenta incorporar seguridad a esos ficheros para que ningún usuario pueda tocarlos (podría asignarse más tipos de los que le corresponde).
Y después, en función de la cantidad de restricciones que haya miraría de hacer la diferencia o no. Es decir, la tabla (o en tu caso, el fichero) podría contener los tipos que NO puede acceder el usuario (por lo que la secuencia sería como la has indicado antes: Del total resto el fichero) o bien, podría contener los tipos a los que únicamente tiene acceso, obteniendo directamente de la BBDD (o del fichero) los tipos accesibles.
Ambos enfoques tienen ventajas y desventajas, depende del número de tipos que tengas actualmente y de cuánto se prevea el crecimiento de tipos…

Saludos!!
xian_5749
Member II

Re: Filtrar tipo de contenido en función del espacio y/o usuario

Efectivamente, los ficheros sólo podría tocarlos el administrador.

A mi también me gusta más la opción de la bbdd, pero lo malo (o lo bueno si se lo puedo facturar Smiley Wink ) de utilizar una bbdd es que después el cliente me pedirá que le haga una interfaz de mantenimiento de la misma…

Salu2
pjcaracuel_2349
Active Member II

Re: Filtrar tipo de contenido en función del espacio y/o usuario

Miralo por el lado bueno, si no lo facturas se lo regalas al cliente y quedas como Dios. Ademas para futuros desarrollos que realizes en otros clientes ya lo tendras disponible y se lo puedes vender como un valor añadido. Todo sea por quedar bien con la mano que nos da de comer.

Saludos