cancel
Showing results for 
Search instead for 
Did you mean: 

Existe alguna manera de restringir quien comienza los procesos?

carsevbar
Champ in-the-making
Champ in-the-making

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 4

douglascrp
World-Class Innovator
World-Class Innovator

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

GitHub - ITDSystems/alvex-workflow-permissions 

carsevbar
Champ in-the-making
Champ in-the-making

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
World-Class Innovator
World-Class Innovator

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

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();
}

Getting started

Explore our Alfresco products with the links below. Use labels to filter content by product module.