Permisos:dueño, espacio personal y nuevos roles

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

Permisos:dueño, espacio personal y nuevos roles

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
10 Replies
pjcaracuel_2349
Active Member II

Re: Permisos:dueño, espacio personal y nuevos roles

Hola Maria,

No soy yo quien para dar consejos pero me da que te estas complicando un poco el tema con la distincion entre espacio personal y espacio de trabajo.

Primer consejo, espacio personal, crea uno dentro de UserHomes para cada usuario. No tiene nada de malo, es normal que cada usuario tenga su propio "Espacio Personal".

Segundo como buien dices, puedes asignarles a los usuarios un espacio de Trabajo, perfecto, ahi defines el primer nivel de permisos. Y asi todos los usuarios tendran acceso a dicho espacio con los permisos que tu definas.

A partir de aqui, empiezo a mirar el resto del post. Pero comentarte que el tema de los roles alumno y profesor, quedaria muy bien ancajado con Lector (que menos no? para el alumno) y para profesor creo que el rol minimo que deberias darle es el de Colaborador en los espacios que se requieran.

Otro consejo, antes de pensar en los roles, deberias definir como van a gestionar la documentacion en los espacios tanto los profesores como los alumnos. Una vez claro, entonces puedes empezar a implementar nuevos roles que te interesen.

¿Has visto que parrafada para no resolverte ninguna duda?  :lol:

Saludos
mgomarg
Member II

Re: Permisos:dueño, espacio personal y nuevos roles

Hola Pedro:

Gracias por la respuesta. Se me había pasado por la mente lo de crear los espacios personales aunque no los usaran. Lo de crear el espacio de trabajo comun, de acuerdo, lo de dar el primer nivel de permisos ahí, no lo entendí bien. Que le dé en esa carpeta los permisos correspondientes, no?. Aparte del asunto de los permisos de los espacios "padre", no?

Gracias, María
pjcaracuel_2349
Active Member II

Re: Permisos:dueño, espacio personal y nuevos roles

Correcto Maria,

Pues a ver si con este ejemplo lo entiendes un poco mejor

Espacio Clase de Microeconomia (por decir algo) Pues aqui le asignamos a nivel raiz el rol de Colaborador al grupo de profesores de esa clase, y el rol de lector a los alumnos. A partir de aqui y para abajo, puedes crear mas espacios y dotarlos de sus permisos en funcion de lo que te interese.

O mejor aun, dime que tienes pensado y yo te hago una propuesta. Hoy tengo tiempo asi que aprovecha.

Saludos
mgomarg
Member II

Re: Permisos:dueño, espacio personal y nuevos roles

Hola Pedro:

Aprovecho entonces para exponerte cómo lo había pensado.

La estructura de los espacios es:

Company Home> Universidad> Documentos Docentes>Profesor 1 / Profesor 2 / Profesor N
                                                                           

donde inicialmente en el espacio Profesor 1, acceden los usuarios profesor1 y alumno1. Todos los alumnos del profesor1 usarán el usuario alumno1 para acceder a los documentos de ese profesor. Si el profesor desea separar los contenidos por asignatura, pues el administrador del espacio Documentos Docentes (Admin_CIC_DOC) crearía nuevos subespacios, y para cada subespacio un usuario (alumnox).

El profesor por ejemplo, sólo debe poder crear contenido y subirlo, pero no en Mas acciones, importar, ni crear espacios, ni asistente, ni ejecute scripts, ni cambie aspectos, ni abra flujos, ni foro  ni nada por el estilo, bastante limitado.

El alumno sólo quiero que pueda acceder al contenido, verlo y descargarselo a su ordenador. No necesita  Copiar, ni crear nada, porque en principio NO va a usar SU espacio personal,  y no quiero que ande duplicando documentos, ni creando enlaces, ni ejecutando scripts, ni nada por el estilo.

Por eso había pensado que si hacía que funcionase con CIFs, pues sería más sencillo teniendo la unidad mapeada, que accediesen directamente a su carpeta, y listos, y no complicarme con quitar cosas de la interfazm, sino si acaso quitar algún enlace de CIFs, para simplificar, si se pudiese sólo a esos usuarios para que otros usuarios si pudiesen tener todas las aplicaciones u opciones de alfresco en CIFs.



Saludos, María
pjcaracuel_2349
Active Member II

Re: Permisos:dueño, espacio personal y nuevos roles

¿Has contemplado el uso de webdav?

http://localhost:8080/alfresco/webdav

Por otro lado, la estructura me parece bien, enfocada a profesores. Correcto.

Has contemplado la opcion de mandar notificaciones a los alumnos de forma que al recibir el correo, en el enlace que les pongas solo puedan acceder al contenido del pdf? (Esto te lo tendria que cobrar ehhh  Smiley Very Happy )

Saludos
mgomarg
Member II

Re: Permisos:dueño, espacio personal y nuevos roles

Hola Pedro:

Haciendo pruebas, y teniendo en los espacios padres el grupo EVERYONE el permiso de Lector,

- si por ejemplo el alumno1 tiene como espacio inicial "Profesor 1", y tiene permisos "Atraviesa" en dicho espacio, y como Lector en el resto, por su mismo usuario o por el grupo, no logra logarse correctamente, da error:

javax.faces.FacesException: Cannot get value for expression '#{NavigationBean.location}'
caused by:
org.apache.jasper.JasperException: Cannot get value for expression '#{NavigationBean.location}'
caused by:
javax.faces.el.EvaluationException: Cannot get value for expression '#{NavigationBean.location}'
caused by:
javax.faces.el.EvaluationException: Exception getting value of property location of base of type : org.alfresco.web.bean.NavigationBean
caused by:
javax.faces.el.EvaluationException: Bean: org.alfresco.web.bean.NavigationBean, property: location
caused by:
java.lang.reflect.InvocationTargetException
caused by:
org.alfresco.repo.security.permissions.AccessDeniedException: Acceso denegado. No tiene los permisos apropiados para realizar esta operación.
caused by:
net.sf.acegisecurity.AccessDeniedException: Access is denied.

- Pero si el mismo usuario tiene permisos de "Consumer" en el espacio "Profesor 1", y rol "Atraviesa" en Documentos Docentes,  entonces se loga bien, y en la interfaz web,
  - en Personal, se muestra el espacio bien,
  - en Empresa no (se queda en la Universidad),
  - buscándolo sí  lo encuentra ,
  - pero en CIFs no lo muestra (se queda en la universidad), es más da error al intentar ver los detalles (Not a valid Alfresco CIFs folder) .

Con lo cual llego a la siguiente cuestión : ¿para que un usuario pueda ver un espacio, debe tener como mínimo el rol de Consumer ? , lo digo porque la única diferencia entre el rol Consumer y Atraviesa es que Consumer incluye además "ReadProperties". 


Yo no quería que el alumno viera los detalles, para evitar otras acciones, y que tampoco copie… 

Y aunque Atraviesa sirve para algunas cosas en la interfaz web, con CIFS para no ser suficiente y necesitar el rol Consumer tambien en los espacios padres.


-  Si el mismo usuario "alumno1" tiene permisos de "Consumer" en el espacio "Profesor 1", y  en "Documentos Docentes",  entonces se loga bien, y en la interfaz web,
  - en Personal, se muestra el espacio bien,
  - en Empresa también llega bien ,
  - en CIFs lo muestra, y puede accedera a los documentos (PERO sigue dando el error con los enlaces como Ver detalles o Check in-out con el mensaje :  Not a valid Alfresco CIFs folder) .

Respecto a tu último post :

- Puede ser una buena solución lo de webdav, voy  a probarlo.
- Y lo de las notificaciones con un enlace también , supongo que podría crear una cuenta de correo al grupo de alumnos , pero cómo envío el enlace al documento sin que accedan por la aplicación?


MUCHAS GRACIAS,  :lol:     María  …
pjcaracuel_2349
Active Member II

Re: Permisos:dueño, espacio personal y nuevos roles

oki, para el tema de los permisos, necesito algo mas de tiempo. Si hay algo que no me gusta, bueno algo y algo mas de alfresco es la gestion de la seguridad tan "joia" que tiene, es un infierno enterarte de que va el tema.

Para las notificaciones te hago un resumen, aqui en el foro hay ya post con casos especificos, pero seria basicamente definir una regla en el espacio del profesor, que cuando subiera un documento nuevo, mandara un mail a una lista de distribucion ya predeterminada. Es decir una regla que ejecute un script en el cual compongas el correo y lo mandes a los usuarios de la lista. En el si incluyes una url tal como esta, http://alfresco/alfresco${document.url}
Al hacer click sobre el enlace, lo que veras una vez te valides, es el contenido del fichero.

Saludos
pjcaracuel_2349
Active Member II

Re: Permisos:dueño, espacio personal y nuevos roles

Necesito mas pistas, como por ejemplo los permisos de cada espacio por el que se navega.

A ver leyendo la wiki, tal cual literal viene esto :

_ReadProperties
    Restrict read access to the properties of a node. Access to content is controlled separately. All properties have the same access retrictions.

_ReadChildren
    Restrict read access to children. The permissions set on individual children will be respected. If this permission is not granted you can not see any children when browsing. You could find children to which you have access during a search. To view a node there is no requirement that you can see its parent. This constraint can be added in the configuration.
_ReadContent
    Restrict access to read all content for a node.

Lo cual nos dice que apriori tu definicion de permisos esta bien, para ver un nodo hijo, solo necesitas permisos de ReadChildren y en el caso de que ese nodo sea un documento y quieras ver su contenido el de ReadContent.

Si alguien ve que estoy equivocado, pues me alegraria saber de las posibles correcciones.

Saludos
mgomarg
Member II

Re: Permisos:dueño, espacio personal y nuevos roles

Hola Pedro:

- Perdona la tardanza en contestar , pero me surgió otro asunto.

- Estoy probando WebDav, me parece bien para el alumno, en cuanto que accede a los documentos. En principio le pasa como con CIFs, que necesita tener permisos en los espacios padres (con rol Consumer, con Atraviesa no muestra el subespacio de trabajo, Profesor1).

Para el profesor creo que no se ajusta, al menos con la configuración actual, porque no he conseguido añadir nuevo contenido o editarlo para guardarlo en el servidor.  Pensaba que con WebDav podría editar, modificar, añadir o incluso eliminar, siempre que tenga los permisos adecuados, pero o no lo tengo bien configurado, o ando equivocada. Voy a revisarlo.

- Respecto a los permisos de los espacios por los que navega, en general desde el espacio "Company Home"  hacia abajo tiene el grupo EVERYONE el rol de Consumer, y lo único que pruebo a cambiar es el rol en la carpeta padre "Documentos Docentes", que pruebo con el rol "Atraviesa".

- Aún tengo que probar lo de las notificaciones con los enlaces a los documentos, y también estoy revisando el tema de https con tomcat y redireccionar la URL para ocultar el puerto.

Saludos