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.
- 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>