Curioso comportamiento de permisos sobre grupos

cancel
Showing results for 
Search instead for 
Did you mean: 
venzia
Senior Member

Curioso comportamiento de permisos sobre grupos

Hola a todos, os detallo a continuación un comportamiento que acabo de detectar en Alfresco (3.1) que me ha dejado un poco perplejo :shock: (y más despues de no encontrar la explicación/solución por ninguna de las vias normales cotidianas, es decir, el wiki, jira y el foro en inglés, que por cierto tiene poca actividad para el número de usuarios que maneja :mrgreenSmiley Happy.
Tengo creada la siguiente estructura de grupos :

                            GROUP-A
                       _________________
                      |                 |
               Group-A-A              Group-A-B
                 |                           |
           Group-A-A-A                    Group-A-B-A

Caso :
-Un usuario del GROUP-A-A-A sube un documento a un espacio general accesible para todos los usuarios de todos los grupos.
-Al subir el documento Alfresco lanza una regla de tipo entrante la cual ejecuta el siguiente codigo javascript :

        //corto la herencia que recoge el documento de su carpeta padre
        document.setInheritsPermissions(false);

        //obtengo los grupos a los que pertenece el usuario (en nuestro caso si el usuario pertenece al Group-A-A-A la funcion devuelve Group-A-A-A,Group-A-A and Group-A )
        var arr=people.getContainerGroups(person);
        var i;
        for(i=0;i<arr.length;i++)//asigno a estos grupos permisos de lectura
          document.setPermission("Read",arr[i].properties["usr:authorityName"] );

        document.save();

Tras esta acción, el explorador de nodos muestra la siguiente información referente a los permisos del documento :

        Permissions
        Inherit:   false
        Assigned Permission   To Authority     Access
        Read              GROUP_GROUP-A-A-A   ALLOWED
        Read              GROUP_GROUP-A-A     ALLOWED
        Read              GROUP_GROUP-A       ALLOWED

El problema, y es ahi donde radica el comportamiento extraño (al menos eso entiendo yo), es que dicho documento también es accesible para cualquier usuario del GROUP-A-B y GROUP-A-B-A!!
Creo que esto es debido a que al asignar permisos de lectura al GROUP-A este propaga dichos permisos hacia sus hijos (pero estos permisos no aparecen en el explorador de nodos).
En cambio, si no comparten ningun grupo raiz, es decir, si tenemos una estructura independiente tipo GROUP-B, GROUP-B-A .. estos no pueden acceder.

La cuestión es que necesito evitar este comportamiento, y antes de meternos a modificar o extender el core quiero valorar todas las posibilidades.
Lo que quiero es que "si un usuario del GROUP-A-A-A sube un documento, solo los de su mismo grupo y superiores de su misma rama pueden acceder a el".

A ver si con un poco de brainstorming le damos la vuelta a la tortilla (que estos dias ando un poco espeso :? ).
Gracias de antemano.
Saludos,
4 Replies
venzia
Senior Member

Re: Curioso comportamiento de permisos sobre grupos

Vale, ya entiendo. El comportamiento viene desde el api de Alfresco.
En resumen, al revisar los permisos sobre el documento para el usuario autenticado, Alfresco realiza una comprobación tanto a nivel de usuarios como de grupos (lee los noderef referenciados en la coleccion de authoritys del contenido, aunq la verdad q este punto sigo sin tenerlo muy claro :?: ). Pues bien, si el usuario en cuestion pertenece a alguno de esos grupos (en mi ejemplo, tanto GROUP-A-A-A como GROUP-A-B y GROUP-A-B-A pertencen al GROUP-A), este obtiene los permisos del rol asignado al grupo.
Por si le sirve a alguien, ahí queda.
Ahora toca agudizar el ingenio para implementar la lógica deseada (puesto que no valoramos modificar el api a ese nivel para una característica más bien de usabilidad). Lo bueno es que en este caso el repositorio va a ser utilizado, a excepción de los administradores, desde un front desarrollado con ExtJs que interactua con Alfresco a través de Web Scripts (similar a Docasu).
Saludos
pjcaracuel_2349
Active Member II

Re: Curioso comportamiento de permisos sobre grupos

Hola Javier,

Hasta hoy no he podido darte mi vision del problema. A mi modo de ver el comportamiento es normal ya que por contra de la herencia de permisos en los espacios, en los grupos esto no sucede asi.

La solucion que a mi se me ocurre y que para evitar esto utilizan otros gestores documentales es implementar un permiso del tipo NONE, es decir nada de nada que se aplicarian a los grupos que aunque dependan jerarquicamente de uno superior, no tienen porque acceder a su scontenidos.

Por cierto gracias por tu codigo que me servira de mucho en desarrollos posteriores.

Saludos
venzia
Senior Member

Re: Curioso comportamiento de permisos sobre grupos

Gracias a ti Pedro, ahora ya tengo dos opciones.
Voy a probarlas, a ver cual de ellas me convence  :wink:.
Saludos,
pjcaracuel_2349
Active Member II

Re: Curioso comportamiento de permisos sobre grupos

De nada hombre, pero aunque no sea para este caso, yo seguiria con el tema del permiso NONE. Creo que soluciona muchos problemas a la hora de gestionar la seguridad.

Saludos y gracias por el puntito pero me da que ya no tocan mas chumbbys, bueno si me registro de nuevo quien sabeeeeee