Class AccessAdapter

java.lang.Object
org.imixs.workflow.engine.adapters.AccessAdapter
All Implemented Interfaces:
Serializable, Adapter, GenericAdapter

@Named public class AccessAdapter extends Object implements GenericAdapter, Serializable
The AccessAdapter is a generic adapter class responsible to update the ACL of a workitem. The CID Bean updates the following Items
  • $writeAccess
  • $readAccess
  • $participants

The read and write access for a workitem can be defined by the BPMN model with the ACL Properties of the Imixs-BPMN modeler.

The participants is a computed list of all users who edited this workitem.

By defining an CDI alternative an application can overwrite the behavior of this bean.

Version:
1.0.0
Author:
rsoika
See Also:
  • Field Details

  • Constructor Details

    • AccessAdapter

      public AccessAdapter()
      Default Constructor
    • AccessAdapter

      @Inject public AccessAdapter(WorkflowService workflowService)
      CDI Constructor to inject WorkflowService
      Parameters:
      workflowService -
  • Method Details

    • execute

      public ItemCollection execute(ItemCollection document, ItemCollection event) throws AdapterException
      The Execute method updates the ACL of a process instance based on a given event.
      Specified by:
      execute in interface Adapter
      Parameters:
      document - the workitem to be processed
      event - the workflow event containing the processing instructions
      Returns:
      updated workitem for further processing
      Throws:
      AdapterException - interrupt processing
    • setWorkflowService

      public void setWorkflowService(WorkflowService workflowService)
    • updateParticipants

      public ItemCollection updateParticipants(ItemCollection workitem)
      Update the $PARTICIPANTS.
      Parameters:
      workitem -
      Returns:
    • updateACL

      public ItemCollection updateACL(ItemCollection workitem, ItemCollection event, ItemCollection nextTask) throws PluginException
      This method updates the $readAccess and $writeAccess attributes of a WorkItem depending to the configuration of a Activity Entity. The method evaluates the new model flag keyupdateacl. If 'false' then acl will not be updated.
      Throws:
      PluginException
    • mergeFieldList

      public void mergeFieldList(ItemCollection documentContext, List valueList, List<String> fieldList)
      This method merges the values of fieldList into valueList and test for duplicates. If an entry of the fieldList is a single key value, than the values to be merged are read from the corresponding documentContext property e.g. 'namTeam' -> maps the values of the documentContext property 'namteam' into the valueList If an entry of the fieldList is in square brackets, than the comma separated elements are mapped into the valueList e.g. '[user1,user2]' - maps the values 'user1' and 'user2' int the valueList. Also Curly brackets are allowed '{user1,user2}'
      Parameters:
      valueList -
      fieldList -
    • uniqueList

      public List<?> uniqueList(List<Object> valueList)
      This method removes duplicates and null values from a vector.
      Parameters:
      valueList - - list of elements
    • mergeRoles

      public void mergeRoles(List valueList, List sourceList, ItemCollection documentContext) throws PluginException
      This method merges the role names from a SourceList into a valueList and removes duplicates. The AddaptText event is fired so a client can adapt a role name.
      Parameters:
      valueList -
      sourceList -
      Throws:
      PluginException