AnsweredAssumed Answered

Permisos:dueño, espacio personal y nuevos roles

Question asked by mgomarg on May 21, 2009
Latest reply on May 25, 2009 by mgomarg
Hola a todos :

He observado que al crear un nuevo usuario con el asistente:

-  Obligatoriamente se le asigna un espacio personal (nuevo o ya existente).
-  Se le asigna como dueño de ese espacio a ese usuario (teniendo por ello permisos sobre dicho espacio, y además dichos permisos no se reflejen en la "gestión de usuarios").

Tengo la versión Community Network - v2.1.0 (482) de Alfresco en una máquina con Linux (con kernel 2.6), tomcat 5.5.26 y jdk 1.6.

A mi me gustaría poder asignar un espacio a varios usuarios, de modo que unos tengan más permisos, y otros menos (ej. profesor /alumno). Y además no me interesa ni que el profesor ni el alumno sean dueño de ese espacio, porque quiero limitarles lo que pueden hacer en él, de modo que uno, sólo pueda añadir y quitar contenido, y el otro verlo, bajarlo a su ordenador.

He podido modificar el dueño de un espacio modificando sus propiedades, o  tomando posesión, pero me interesa cambiar el comportamiento que trae por defecto Alfresco, de ahí que me plantee las siguientes dudas o problemas:

1. _ He tratado de cambiar el dueño de un espacio nuevo o asignado modificando el fichero authentication-services-context.xml en   <tomcat>/webapps/alfresco/WEB-INF/classes/alfresco/authentication-services-context.xml para intentar asignar al usuario “admin” como el dueño por defecto de los espacios nuevos y de los que se reasignen, y quitando los permisos a los usuarios (comentándolos), y quitando el permiso del usuario guest .Luego he parado y reiniciado tomcat, pero no funciona como esperaba en cuanto a que sigue poniendo al usuario que creo nuevo con el asistente como dueño de la carpeta. Obtuve la información del post 

viewtopic.php?f=6&t=1428 .

Código del fichero:
    <bean name="homeFolderManager" class="org.alfresco.repo.security.person.HomeFolderManager">
        <property name="nodeService">
            <ref bean="nodeService" />
        </property>
        <property name="policyComponent">
            <ref bean="policyComponent" />
        </property>
        <property name="defaultProvider">
            <ref bean="personalHomeFolderProvider" />
        </property>
    </bean>
   
    <bean name="companyHomeFolderProvider" class="org.alfresco.repo.security.person.ExistingPathBased
HomeFolderProvider">
        <property name="serviceRegistry">
            <ref bean="ServiceRegistry" />
        </property>

      <property name="path">
           <value>/${spaces.company_home.childname}</value>
        </property>
        <property name="storeUrl">
           <value>${spaces.store}</value>
        </property>
        <property name="homeFolderManager">
            <ref bean="homeFolderManager" />
        </property>
    </bean>
   
    <bean name="guestHomeFolderProvider" class="org.alfresco.repo.security.person.ExistingPathBasedHo
meFolderProvider">
        <property name="serviceRegistry">
            <ref bean="ServiceRegistry" />
        </property>
        <property name="path">
           <value>/${spaces.company_home.childname}/${spaces.guest_home.childname}</value>
        </property>
        <property name="storeUrl">
           <value>${spaces.store}</value>
        </property>
        <property name="homeFolderManager">
            <ref bean="homeFolderManager" />
        </property>

        <!– Le quito los permisos al usuario guest comentando esta propiedad

        <property name="userPemissions">
            <set>
                <value>Consumer</value>
            </set>
        </property>
        –>

    </bean>

    <bean name="bootstrapHomeFolderProvider" class="org.alfresco.repo.security.person.BootstrapHomeFo
lderProvider">
        <property name="homeFolderManager">
            <ref bean="homeFolderManager" />
        </property>
    </bean>
   
    <bean name="personalHomeFolderProvider" class="org.alfresco.repo.security.person.UIDBasedHomeFold
erProvider">
        <property name="serviceRegistry">
            <ref bean="ServiceRegistry" />
        </property>
        <property name="path">
           <value>/${spaces.company_home.childname}</value>
        </property>
        <property name="storeUrl">
           <value>${spaces.store}</value>
        </property>
        <property name="homeFolderManager">
            <ref bean="homeFolderManager" />
        </property>
        <property name="inheritsPermissionsOnCreate">
            <value>false</value>
        </property>

        <!– El propietario del espacio sera el usuario admin  –>
        <property name="ownerOnCreate">
            <value>admin</value>
        </property>

        <property name="ownerPemissionsToSetOnCreate">
            <set>
                <value>All</value>
            </set>
        </property>

        <!–  Le quitamos los permisos al usuario comentando esta propiedad

        <property name="userPemissions">
            <set>
                <value>All</value>
            </set>
        </property>

        –>

    </bean>

2._ Respecto al tema del espacio personal, quisiera saber la forma de asignar un espacio “de trabajo”, que no sea el personal, de modo que por ejemplo varios usuarios puedan compartir el mismo espacio de trabajo (sea su espacio inicial) y ninguno sea dueño del mismo.
Hay usuarios que no necesitan tener un espacio personal para ellos, sino acceder al espacio de otros. ¿cómo puedo NO asignarle un espacio personal?, y ¿cómo puedo asignarle el espacio de trabajo? . Ahora mismo al crear un usuario No encuentro la forma de evitar que se le asocie un espacio. Sí he conseguido cambiarle el espacio luego, en la Gestión de los Usuarios, de  modo que asi podría asignarle el “espacio de trabajo”, la dificultad la encuentro con el “espacio personal”.

3._ Estoy tratando de crear un nuevo rol que permita que un usuario acceda al espacio hijo, pero no pueda modificar, ni añadir por los espacios del  “camino”. Un rol con menos permisos que Consumer, que permita “atravesar” los espacios intermedios (para acceder a los espacios hijos en los que sí tenemos permisos para trabajar), pero no me funciona. En el fichero <tomcat>/webapps/alfresco/WEB-INF/classes/alfresco/model/ permissionDefinitions.xml añado las líneas:


Código del fichero:

      <permissionGroup name="LeeHijos"  expose="true" allowFullControl="false">
           <includePermissionGroup type="sys:base" permissionGroup="ReadChildren"/>
           <includePermissionGroup type="sys:base" permissionGroup="ReadContent"/>

      </permissionGroup>

      <permissionGroup name="Atraviesa" allowFullControl="false" expose="true" >
          <includePermissionGroup permissionGroup="LeeHijos" type="sys:base" />
      </permissionGroup>

Y en el fichero  <tomcat>/webapps/alfresco/WEB-INF/classes/ alfresco/messages/webclient.properties añado la etiqueta para el nuevo rol “Atraviesa”, para que aparezca bien la etiqueta en la interfaz:

Atraviesa=Atraviesa

Debido a la necesidad de los permisos de lectura (o ReadChildren?)  en los espacios intermedios antes del “espacio personal” o “de trabajo”, CIFs puede no mostrar el espacio de trabajo del usuario. De ahí mi interés en crear el rol de “Atraviesa”.


4._ Me interesa también crear dos nuevos roles, profesor y alumno, de modo que ambos estén bastante limitados. Que el “profesor” pueda añadir contenido en un espacio (y poquito más, que no cree nuevos espacios, ni ejecute acciones) y el “alumno” para que pueda acceder al contenido subido por el profesor (un nuevo rol con menos permisos que el Lector). No me aclaro con los permisos de los roles, estoy tratando de configurar “Atraviesa” y creo que el rol del alumno se parecerá a ése, pero no doy con la tecla.

¿Alguien se ha encontrado en estas o parecidas circunstancias?, ¿cómo lo ha resuelto?, ¿se os ocurre algo?

Saludos, María

Outcomes