Existe alguna manera de restringir quien comienza los procesos?

cancel
Showing results for 
Search instead for 
Did you mean: 
carsevbar
Member II

Existe alguna manera de restringir quien comienza los procesos?

Me gustaría que mis procesos solo los empezaran usuarios candidatos (o grupos) que yo mismo he seleccionado.

A los otros usuarios, me gustaría que no les dejara que los creara, y, si fuera posible, que ni les apareciera ese proceso.

Estoy usando Activiti 5.22, pero puedo usar activiti 6 en caso de que lo que pido no fuera posible.

4 Replies
douglascrp
Advanced II

Re: Existe alguna manera de restringir quien comienza los procesos?

No es posible sin customizaciónes, pero hay un proyecto que te permite hacer o que necesitas.

GitHub - ITDSystems/alvex-workflow-permissions 

carsevbar
Member II

Re: Existe alguna manera de restringir quien comienza los procesos?

Hola!
Antetodo, gracias por su respuesta.

Llevo con Activiti muy poco tiempo, apenas 2 días, y no entiendo a que te refieres con "customizacion". Por otro lado, decirte que estoy usando Activiti, pero Activiti BPMN 2.0 Platform (vamos, la que es gratis). Ese proyecto que me dices, lo puedo usar con mi version de activiti?

Un saludo!

douglascrp
Advanced II

Re: Existe alguna manera de restringir quien comienza los procesos?

Ahora entendí. Usted está hablando del activiti standalone, y no del activiti con Alfresco.

Lo siento, pero en este caso, el proyecto no se aplica.

fegor
Senior Member

Re: Existe alguna manera de restringir quien comienza los procesos?

Hace un tiempo que se me presentó esta problemática (en el motor de Activiti dentro de Alfresco) y lo solucioné finalmente usando un Javascript en el startEvent, de esta forma, puedes usar un grupo determinado que si pueda lanzar ese proceso y si alguien intenta lanzarlo pero no pertenece a dicho grupo, el flujo se cancela a sí mismo. Seguramente haya formas más elegantes de hacerlo pero, en su día, esto me sirvió. 

El Javascript (algo modificado) sería:

var check = false;
var userName = initiator.properties.userName;
var group = people.getGroup("GROUP_ConPrivilegiosParaIniciar");
var result = people.getMembers(group);

var hasUser = false;


for (var i=0; i < result.length; i++){
  hasUser = result[i].properties["cm:userName"] == userName;
  if (hasUser){
  check = true;;
  break;
}


}

if(!check){
  var idInstancia = execution.getVariable("workflowinstanceid");
  var curreentWF = workflow.getInstance(idInstancia);
  curreentWF.cancel();
}