AnsweredAssumed Answered

Curioso comportamiento de permisos sobre grupos

Question asked by venzia on May 13, 2009
Latest reply on May 14, 2009 by pjcaracuel_2349
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 :mrgreen:).
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,

Outcomes