Borrar el acceso al caso

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

Borrar el acceso al caso

note_pin

Las siguientes expresiones eliminan a todos los usuarios con acceso al caso, incluido el usuario creador. Se recomienda otorgar acceso a un usuario después de usar este método. De lo contrario, el caso será inaccesible.

 

Expresión para borrar el acceso a un caso

En un proceso de solicitud de compra del ejemplo mencionado en Conceder acceso a casos. Debido a razones de seguridad, cuando el proceso llega al Subproceso de Orden de Compra, necesitamos revocar el acceso a este caso a todos los usuarios y otorgar acceso solo a los usuarios del área de Compras, los usuarios en esta área pueden no tener asignación en tales casos. Por lo tanto, debe borrar el acceso al caso y otorgar acceso a estos usuarios mediante una expresión.

 

En el paso cuatro del Asistente de Procesos, seleccione las Acciones de Actividad para crear una expresión Al Entrar en el subproceso.

 

CaseSecurity32

 

La expresión revoca el acceso al caso a todos los usuarios, incluido el creador del caso. Luego, trae los usuarios en el área de Compras para otorgarles acceso.

 

CaseSecurity33

 

//Clear the access to the current case

var success=CHelper.ClearCaseAccess(Me.Case.Id);

//If the procedure is success, add the Users in Purchase areas. Otherwise, throws an error

if(success)

{

 //Get the id of the Purchases area

 var parameters = new FilterParameters();

 parameters.AddParameter("@areaName", "Purchases");

 var AreaId=CHelper.getEntityAttrib("Area","idArea","areaName = @areaName",parameters);

 //Get the list of users in the Purchase Area

 parameters.AddParameter("@areaId", AreaId);

 UserList = Me.getXPath("entity-list('WFUSER','idArea = @areaId')",parameters);

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

 {

         //Get the user id

         IdUser=UserList[Counter].getXPath("Id");

         //Validate there are no duplicities

         if(!MyArray.Contains(IdUser))

         {

         //Store users

                 MyArray.Add(IdUser);

         }

 }

 //Grant access to the users list

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

}

else

{

 // Throw an error if the case access could not be cleared

 CHelper.ThrowValidationError("The procedure failed");

}

 

Expresión para borrar el acceso a una lista de casos

Como complemento del ejemplo anterior, también debemos revocar el acceso a los casos secundarios del caso actual. Debe borrar el acceso al caso y sus elementos secundarios y otorgar acceso a estos usuarios mediante una expresión.

 

En el paso cuatro del Asistente de Procesos, seleccione las Acciones de Actividad para crear una expresión Al Entrar en el subproceso.

 

CaseSecurity32

 

La expresión revoca el acceso al caso a todos los usuarios, incluido el creador del caso. Luego, trae los usuarios en el área de Compras para otorgarles acceso.

 

CaseSecurity34

 

//Get subprocesses Ids

var CasesArray=CHelper.getSubProcessesId(Me);

//Add the current case Id.

CasesArray.Add(Me.Case.Id);

//Clear the access to the current case

CHelper.ClearCaseAccess(CasesArray);

//Get the id of the Purchases area

var parameters = new FilterParameters();

parameters.AddParameter("@areaName", "Purchases");

var AreaId=CHelper.getEntityAttrib("Area","idArea","areaName = @areaName",parameters);

//Get the list of users in the Purchase Area

parameters.AddParameter("@areaId", AreaId);

UserList = Me.getXPath("entity-list('WFUSER','idArea = @areaId')",parameters);

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

{

 //Get the user id

 IdUser=UserList[Counter].getXPath("Id");

 //Validate there are no duplicities

 if(!MyArray.Contains(IdUser))

 {

 //Store users

         MyArray.Add(IdUser);

 }

}

//Grant access to the users list

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


Last Updated 1/27/2022 4:05:36 PM