Proyecto

General

Perfil

Definir usuarios para ejecutar una transición, con un metadato del documento.

Información

Autor David Henriquez
Sitio Web http://www.facebook.com/adapting-lab
Repositorio source:Guardas-America/trunk/src/IsUserInRoleLink
Código fuente http://svn-community.adapting.com:8080/svn/Community/Plugins/Guardas-America/trunk/src/IsUserInRoleLink
Versión Actual v1.0
Compatible con Abox 2.6.5

Resumen

Verifica que el usuario que esta ejecutando la transición tenga permisos para ejecutarla. Estos usuarios se definen en un metadato RoleLink.

Notas de instalación

Descargue el código fuente del plugin y compílelo usando Visual Studio 2010. Luego dependiendo si lo va a integrar en una instalación de Abox o en un proyecto de extensión de Abox sigua las siguientes instrucciones.
En una instalación de Abox

Copiar la dll que genera el proyecto, en principio se debe llamar Adapting.IsUserInRoleLinkGuard.dll, en la carpeta /bin del sitio web donde esta Abox.

Incluya el proyecto en su proyecto para extender Abox, añada una referencia en Adapting.Web al proyecto que acaba de incluir.

Guía de uso

Una vez incluida la clase en el proyecto y recompilado el proyecto, tiene que modificar el XML del workflow para añadir esta guarda que ejecuta el worlflow antes de cambiar de estado. Para hacer esto incluya este código en las acciones de la transición en la que quiere que se ejecute.

      <guard type="IsUserInRoleLink">
        <param name="roleLinkCode">UsersMetadataCode</param>
        <param name="intersectionOperator">OR</param>
      </guard>

roleLinkCode: Código del metadato roleLink que contiene los usuarios que pueden ejecutar la transición.
intersectionOperator: parámetro que define operación a realizar cuando hallan varios grupos de usuarios definidos. Las operaciones pueden ser: Unión (OR) o Intersección (AND). Este parámetro es opcional y por defecto es OR.

Histórico

01/03/2012
  • No se evalúa esta guarda si se esta logeado con el usuario partner o super.
  • Se ha incluido un nuevo parámetro intersectionOperator, para definir la operación entre conjunto de usuarios (Intersección (AND) y Unión (OR)). Este parámetro es opcional y al no definirse se toma como Unión por defecto.
  • Se ha variado la lógica para evaluar la guarda:
    Unión: Se pasa la guarda solo si: Usuario ∈ org1 ∪ org2 ∪ orgN ∪ rol1 ∪ rol2 ∪ rolN ∪ usu1 ∪ usu2 ∪ usuN.
    Intersección: Se pasa la guarda solo si: Usuario ∈ org1 ∩ org2 ∩ orgN ∩ rol1 ∩ rol2 ∩ rolN ∪ usu1 ∪ usu2 ∪ usuN.
07/06/2013 (2.7.8+):
  • Se ha incluido un nuevo parámetro para negar la guarda "Negation" con este se busca impedir que el usuario pueda ejecutar la transición si se encuentra en el roleLink o uno de sus roles según se configure.
      <guard type="IsUserInRoleLink">
        <param name="roleLinkCode">UsersMetadataCode</param>
        <param name="intersectionOperator">OR</param>

        <!-- Nuevo parámetro -->
        <param name="negation">true</param>
      </guard>
  • Añadir este parámetro en el archivo de recursos (guards_actions_keywords) del hotEditor.
     <param code="negation" minOccurs="0" maxOccurs="1">
    <type>bool</type>
    <name>Negación</name>
    <description>Se utiliza para negar la guarda</description>
     </param>
Volver al inicio
Agregar imagen desde el portapapeles (Tamaño máximo: 10 MB)