Alfresco – Acciones y detalle de documentos personalizado por Grupo de Usuario

En este artículo se muestra cómo ocultar acciones y detalles de documento a los usuarios que no sean de un grupo de Alfresco. En concreto, en el ejemplo se utiliza el grupo ALFRESCO_PERMISSIONS, la acción Administrar Permisos y el detalle Permisos.

alfresco-permissions-document-detail

1. Crear el grupo ALFRESCO_PERMISSIONS en el interfaz de Alfresco Share

alfresco-create-group
2. Definir la extensión del template document-details (p.e. /document-details/src/main/amp/config/alfresco/web-extension/site-data/extensions/document-details.xml)

<extension>
  <modules>
    <module>
      <id>Hide document detail permissions</id>
      <version>1.0</version>
      <auto-deploy>true</auto-deploy>
      <components>
        <component>
          <scope>template</scope>
          <region-id>document-permissions</region-id>
          <source-id>document-details</source-id>
          <sub-components>
            <sub-component id="default">
              <evaluations>
                <evaluation id="hide">
                  <evaluators>
                    <evaluator type="group.component.evaluator">
                      <params>
                        <groups>GROUP_ALFRESCO_PERMISSIONS</groups>
                        <negate>true</negate>
                      </params>
                    </evaluator>
                  </evaluators>
                  <render>false</render>
                </evaluation>
              </evaluations>
            </sub-component>
          </sub-components>
        </component>
      </components>
    </module>
  </modules>
</extension>

3. Personalizar las acciones (share-config-custom.xml)

<config evaluator="string-compare" condition="DocLibActions">
 <actions>
   <action id="document-manage-granular-permissions" type="link" 
       icon="document-manage-permissions" label="actions.document.manage-permissions">
      <param name="href">{managePermissionsUrl}</param>
     <permissions>
       <permission allow="true">ChangePermissions</permission>
     </permissions>
     <evaluator>evaluator.doclib.action.siteBased</evaluator>
     <evaluator negate="true">evaluator.doclib.action.isWorkingCopy</evaluator>
     <evaluator negate="true">es.keensoft.evaluator.doclib.action.isPermissionManager</evaluator>
   </action>
 </actions>
</config>  

4. Incluir el bean para evaluador de acción (p.e. /document-details/src/main/amp/config/alfresco/module/document-details/context/service-context.xml)

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 
   'http://www.springframework.org/dtd/spring-beans.dtd'>
   
<beans>
    <bean id="es.keensoft.evaluator.doclib.action.isPermissionManager" 
    	parent="evaluator.doclib.action.groupMembership">
        <property name="groups">
            <list>
                <value>GROUP_ALFRESCO_PERMISSIONS</value>
            </list>
        </property>   
   </bean>
</beans>

A partir de este momento, la acción Administrar Permisos y el detalle Permisos solo aparecerán en el interfaz de Alfresco Share para los usuarios del grupo ALFRESCO_PERMISSIONS.

En muchas ocasiones no es necesario desarrollar ninguna línea de código para personalizar el comportamiento de Alfresco.

8 comentarios en “Alfresco – Acciones y detalle de documentos personalizado por Grupo de Usuario

  1. Hola buenas, Angel

    Una pregunta, hemos hecho una prueba con la acción de permisos y con la de “iniciar workflow” y con estas no hay problemas.
    En cambio queremos ver si es posible controlar de esta manera las acciones “cambiar tipo” y “gestionar aspectos”. Y no hemos sido capaces.

    En la ruta /alfrescoX/tomcat/webapps/share/components/document-details tenemos donde apunta la extensión para los permisos y workflow pero no se encuentran las otras dos acciones. Tienes alguna pista o información?

    PS: Por cierto el código con los negate=”true” hace que los usuarios que no ven la acción son justo los que están dentro del grupo. Que puede ser justo lo contrario a lo que querías o explicabas.

    Un Saludo, Sergio

  2. En “document-details” se incluye la referencia para “Etiquetas”, “Compartir”, “Propiedades”, “Permisos”, “Flujos de Trabajo” e “Histórico de versiones”.

    La referencia a las acciones (“Descargar”, “Ver en el navegador”…) está en el fichero share-documentlibrary-config.xml

  3. Hola disculpa pero he visto como das soporte en varias páginas y me gustaria saber si podrias ayudarme con este tema… He habilitado y sincronizado el AD con Alfresco mediante una cadena de autenticación en Alfresco-global.properties. Seguidamente lo he configurado en webapps\alfresco\WEB-INF\classes\alfresco\subsystems\authentication. He copiado exactamente mi archivo en mi entorno de calidad (que me funciona perfecto) a mi entorno de desarrollo… Pero ahora en desarrollo cuando ingreso como usuario no puedo visualizar mis ficheros compartidos que si me salen como ADM. Y en mi entorno de calidad me funciona perfectamente tanto para usuarios como para administrador…
    Quisiera saber si por medio de algún correo o skype o algo te pudiera enviar mis capturas de pantalla a ver en que está fallando la sincronización.

  4. Hola Ángel,
    Estoy intentando esto y tengo una duda:
    En el punto 4. no entiendo la ruta donde debo poner el fichero, el ejemplo pone “(p.e. /document-details/src/main/amp/config/alfresco/module/document-details/context/service-context.xml)” y no sé como trasladarlo a mi estructura “alfresco-community/tomcat/….”
    Deben ser cosas de novato, pero no consigo enterarme si esa ruta debe ya existir o a partir de cuál subdirectorio debo generarla.
    Muchas gracias.
    Saludos.

    • Las rutas hacen referencia a un proyecto de arquetipo Repo estándar creado con la Alfresco SDK.

      mvn archetype:generate -Dfilter=org.alfresco:

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s