Conceder acceso a casos

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Automatización de Procesos con poco código > Studio Cloud -ambiente de autoría > Bizagi Studio > Definición de Seguridad > Seguridad del caso > Manejar los privilegios a través de reglas >

Conceder acceso a casos

Expresión para agregar un jefe del usuario creador

En un proceso de Solicitud de Compras se desea restringir la información de forma que sólo puedan acceder a los casos creados el usuario creador y su jefe. De acuerdo a lo explicado anteriormente, los usuarios que sean asignados durante el proceso del caso  tendrán acceso.

 

El usuario creador, por definición, automáticamente será adicionado a la lista de usuarios con privilegios. Sin embargo, el jefe del usuario debe ser agregado por medio de una regla para que también pueda tener acceso al caso desde la primera actividad. Para lograr lo anterior se debe configurar el proceso para que tenga seguridad de caso Privado, y luego agregar una expresión que incluya al jefe del creador como usuario privilegiado.

 

1. En la vista de Experto, ingrese a las propiedades del Proceso dando clic sobre su versión.

 

CaseSecurity4

 

2. Seleccione la opción Privado (Private) en el menú de Seguridad del caso (Case security) para restringir el acceso de los casos y dé clic en OK.

 

CaseSecurity8

 

3. En el paso número 4 (cuatro) del Asistente de Procesos, diríjase a Acciones de la Actividad para crear una expresión Al entrar en la actividad de registro. La regla debe agregar a la lista de usuarios privilegiados al jefe del usuario que crea la solicitud.

 

CaseSecurity9

 

CaseSecurity10

 

//Obtain the direct supervisor

Boss=Me.Case.WorkingCredential.UserProperties['idbossuser'];

//Grant Access to the supervisor

CHelper.GrantCaseAccess(Me.Case.Id,Boss);

 

Ahora probemos si la expresión funciona. Suponga que tenemos tres usuarios:

 

Usuario Creador (CreatorUser): Será el usuario que crea el caso.

Jefe (Boss): El supervisor del creador del caso.

Usuario Restringido (RestrictedUser): El usuario al cual se debe restringir el acceso.

 

CaseSecurity11

 

Ingrese con el usuario Creador del caso (CreatorUser) y cree un nuevo caso de Solicitud de Compras.

 

CaseSecurity12

 

El Usuario creador se incluirá automáticamente como usuario privilegiado y por lo tanto podrá consultar el caso en cualquier momento. Ingrese el número de caso en el campo de búsqueda. Para este ejemplo será 1905.

 

CaseSecurity13

 

Si da clic en el Número de Caso usted podrá ver su información.

 

CaseSecurity27

 

De forma similar, el usuario jefe (Boss), a quien se concedieron permisos previamente como supervisor del Creador del caso, también tendrá acceso.

 

CaseSecurity14

 

Si ingresamos con el usuario restringido (RestrictedUSer), no podremos acceder al caso. Cuando realicemos la búsqueda, aparecerá como si el caso no existiera.

 

CaseSecurity28

 

Agregar un usuario privilegiado usando una expresión

En un proceso de Solicitud de Compras se desea restringir la información de forma que sólo puedan acceder a los casos creados los usuarios privilegiados (creador y asignados) y adicionalmente el Vicepresidente Comercial, quien no tiene asignaciones en dichos casos.

 

Por lo anterior, es necesario añadir al usuario vicepresidente a los usuarios privilegiados utilizando una expresión. Para ello, creamos una tabla paramétrica en donde guardaremos el Usuario Vicepresidente Comercial, de forma que podamos acceder fácilmente al identificador del usuario y que éste pueda ser administrado en caso de que cambie. Esta entidad paramétrica esta asociada con el Proceso de Solicitud de Compras.

 

CaseSecurity18

 

En el paso número 4 del Asistente de procesos, diríjase a Acciones de la Actividad para crear una expresión al entrar en la actividad de registro.

 

CaseSecurity19

 

La expresión agrega a la lista de usuarios privilegiados al Vicepresidente. Se encuentra el registro del Vicepresidente en la tabla paramétrica creada, y se guarda su ID en una variable. Luego, esta variable es registrada en la función que adiciona a los usuarios privilegiados.

 

CaseSecurity20

 

//Obtain VicePresident User

var parameters = new FilterParameters();

parameters.AddParameter("@Code", "CVP");

ViceId=CHelper.getEntityAttrib("Userwithaccess","Usertograntaccess","Code = @Code",parameters);

//Grant access to VicePresident

CHelper.GrantCaseAccess(Me.Case.Id,ViceId);

 

Agregar múltiples usuarios privilegiados usando una expresión

En un proceso de Solicitud de Compras se desea restringir la información de forma que sólo puedan acceder a los casos creados los usuarios privilegiados (creador y asignados). Adicionalmente, el Vicepresidente Comercial y el Presidente quienes no tienen ninguna asignación en este caso, como usuarios privilegiados. Por lo tanto, es necesario añadirlos a los usuarios privilegiados utilizando una expresión. Para ello, se creará una tabla paramétrica en donde se almacenarán los dos usuarios: Vicepresidente Comercial y Presidente, de forma que sea posible acceder fácilmente a sus identificadores y puedan ser administrados en caso de que cambien.

 

CaseSecurity21

 

En el paso número 4 del Asistente de procesos, vaya a Acciones de la Actividad para crear una expresión al entrar en la actividad de registro.

 

CaseSecurity19

 

La siguiente expresión agrega a la lista de usuarios privilegiados al Vicepresidente y al Presidente. Se encuentran todos los registros de la tabla paramétrica y se guardan los identificadores en una variable. Luego, esta variable es registrada en la función que adiciona a los usuarios privilegiados.

 

CaseSecurity22

 

//Obtain list of all users in the 'Users with access' table
UserstoAdd = Me.getXPath("entity-list('Userswithaccess', '')");

 

//Go through the list

for (Counter=0; UserstoAdd.size()>Counter;Counter++)

{

 

 IdUser=UserstoAdd[Counter].getXPath("Usertograntaccess");

 

 //Validate there are no duplicities

 if(!MyArray.Contains(IdUser))

 {

     //Store users

         MyArray.Add(IdUser);

 }

//Grant Access to users

CHelper.GrantCaseAccessToUsers(Me.Case.Id,MyArray);

}


Last Updated 1/31/2023 4:19:45 PM