protected ArchivedProcessInstance getLastArchivedProcessInstance(final long processInstanceId) throws SBonitaException { return processInvolvementDelegate.getLastArchivedProcessInstance(processInstanceId); }
public boolean isProcessOrArchivedProcessInitiator(long userId, long processInstanceId) throws ProcessInstanceNotFoundException { try { return isProcessInitiator(userId, processInstanceId); } catch (SProcessInstanceNotFoundException e) { return isArchivedProcessInitiator(userId, processInstanceId); } catch (SProcessInstanceReadException e) { throw new RetrieveException(e); } }
@Override public boolean isInvolvedInProcessInstance(final long userId, final long processInstanceId) throws ProcessInstanceNotFoundException { return processInvolvementDelegate.isInvolvedInProcessInstance(userId, processInstanceId); }
public boolean isManagerOfUserInvolvedInProcessInstance(final long managerUserId, final long processInstanceId) throws BonitaException { final TenantServiceAccessor tenantServiceAccessor = getTenantServiceAccessor(); final ProcessInstanceService processInstanceService = tenantServiceAccessor.getProcessInstanceService(); final IdentityService identityService = tenantServiceAccessor.getIdentityService(); final ActivityInstanceService activityInstanceService = tenantServiceAccessor.getActivityInstanceService(); final List<SUser> subordinates = getSubordinates(managerUserId, identityService); if (isUserManagerOfProcessInstanceInitiator(managerUserId, processInstance.getStartedBy())) { return true; QueryOptions queryOptions = buildActiveTasksQueryOptions(processInstanceId); List<SHumanTaskInstance> sHumanTaskInstances = activityInstanceService.searchHumanTasks(queryOptions); while (!sHumanTaskInstances.isEmpty()) { for (final SHumanTaskInstance sHumanTaskInstance : sHumanTaskInstances) { if (isTaskAssignedToAUserInTheList(sHumanTaskInstance, subordinates)) { return true; final ArchivedProcessInstance archProcessInstance = getLastArchivedProcessInstance(processInstanceId); if (isUserManagerOfProcessInstanceInitiator(managerUserId, archProcessInstance.getStartedBy())) { return true; return isArchivedTaskDoneByOneOfTheSubordinates(processInstanceId, activityInstanceService, subordinates);
public ArchivedProcessInstance getLastArchivedProcessInstance(final long processInstanceId) throws SBonitaException { final ProcessInstanceService processInstanceService = getTenantServiceAccessor().getProcessInstanceService(); final ProcessDefinitionService processDefinitionService = getTenantServiceAccessor().getProcessDefinitionService(); final SearchEntitiesDescriptor searchEntitiesDescriptor = getTenantServiceAccessor().getSearchEntitiesDescriptor(); final GetLastArchivedProcessInstance searchArchivedProcessInstances = new GetLastArchivedProcessInstance(processInstanceService, processDefinitionService, processInstanceId, searchEntitiesDescriptor); searchArchivedProcessInstances.execute(); return searchArchivedProcessInstances.getResult(); } }
private boolean isArchivedTaskDoneByOneOfTheSubordinates(final long processInstanceId, final ActivityInstanceService activityInstanceService, final List<SUser> subordinates) throws SBonitaReadException { QueryOptions archivedQueryOptions = buildArchivedTasksQueryOptions(processInstanceId); List<SAHumanTaskInstance> sArchivedHumanTasks = activityInstanceService.searchArchivedTasks(archivedQueryOptions); while (!sArchivedHumanTasks.isEmpty()) { for (final SAHumanTaskInstance sArchivedHumanTask : sArchivedHumanTasks) { if (isTaskDoneByAUserInTheList(sArchivedHumanTask, subordinates)) { return true; } } archivedQueryOptions = QueryOptions.getNextPage(archivedQueryOptions); sArchivedHumanTasks = activityInstanceService.searchArchivedTasks(archivedQueryOptions); } return false; }
@Override public boolean isManagerOfUserInvolvedInProcessInstance(final long managerUserId, final long processInstanceId) throws ProcessInstanceNotFoundException, BonitaException { return processInvolvementDelegate.isManagerOfUserInvolvedInProcessInstance(managerUserId, processInstanceId); }
public ProcessAPIImpl() { this(new ProcessManagementAPIImplDelegate(), new DocumentAPIImpl(), new ProcessConfigurationAPIImpl(), new TaskInvolvementDelegate(), new ProcessInvolvementDelegate()); }
public boolean isManagerOfUserInvolvedInProcessInstance(final long managerUserId, final long processInstanceId) throws BonitaException { final TenantServiceAccessor tenantServiceAccessor = getTenantServiceAccessor(); final ProcessInstanceService processInstanceService = tenantServiceAccessor.getProcessInstanceService(); final IdentityService identityService = tenantServiceAccessor.getIdentityService(); final ActivityInstanceService activityInstanceService = tenantServiceAccessor.getActivityInstanceService(); final List<SUser> subordinates = getSubordinates(managerUserId, identityService); if (isUserManagerOfProcessInstanceInitiator(managerUserId, processInstance.getStartedBy())) { return true; QueryOptions queryOptions = buildActiveTasksQueryOptions(processInstanceId); List<SHumanTaskInstance> sHumanTaskInstances = activityInstanceService.searchHumanTasks(queryOptions); while (!sHumanTaskInstances.isEmpty()) { for (final SHumanTaskInstance sHumanTaskInstance : sHumanTaskInstances) { if (isTaskAssignedToAUserInTheList(sHumanTaskInstance, subordinates)) { return true; final ArchivedProcessInstance archProcessInstance = getLastArchivedProcessInstance(processInstanceId); if (isUserManagerOfProcessInstanceInitiator(managerUserId, archProcessInstance.getStartedBy())) { return true; return isArchivedTaskDoneByOneOfTheSubordinates(processInstanceId, activityInstanceService, subordinates);
public ArchivedProcessInstance getLastArchivedProcessInstance(final long processInstanceId) throws SBonitaException { final ProcessInstanceService processInstanceService = getTenantServiceAccessor().getProcessInstanceService(); final ProcessDefinitionService processDefinitionService = getTenantServiceAccessor().getProcessDefinitionService(); final SearchEntitiesDescriptor searchEntitiesDescriptor = getTenantServiceAccessor().getSearchEntitiesDescriptor(); final GetLastArchivedProcessInstance searchArchivedProcessInstances = new GetLastArchivedProcessInstance(processInstanceService, processDefinitionService, processInstanceId, searchEntitiesDescriptor); searchArchivedProcessInstances.execute(); return searchArchivedProcessInstances.getResult(); } }
private boolean isArchivedTaskDoneByOneOfTheSubordinates(final long processInstanceId, final ActivityInstanceService activityInstanceService, final List<SUser> subordinates) throws SBonitaReadException { QueryOptions archivedQueryOptions = buildArchivedTasksQueryOptions(processInstanceId); List<SAHumanTaskInstance> sArchivedHumanTasks = activityInstanceService.searchArchivedTasks(archivedQueryOptions); while (!sArchivedHumanTasks.isEmpty()) { for (final SAHumanTaskInstance sArchivedHumanTask : sArchivedHumanTasks) { if (isTaskDoneByAUserInTheList(sArchivedHumanTask, subordinates)) { return true; } } archivedQueryOptions = QueryOptions.getNextPage(archivedQueryOptions); sArchivedHumanTasks = activityInstanceService.searchArchivedTasks(archivedQueryOptions); } return false; }
@Override public boolean isManagerOfUserInvolvedInProcessInstance(final long managerUserId, final long processInstanceId) throws ProcessInstanceNotFoundException, BonitaException { return processInvolvementDelegate.isManagerOfUserInvolvedInProcessInstance(managerUserId, processInstanceId); }
public ProcessAPIImpl() { this(new ProcessManagementAPIImplDelegate(), new DocumentAPIImpl(), new ProcessConfigurationAPIImpl(), new TaskInvolvementDelegate(), new ProcessInvolvementDelegate()); }
private boolean isProcessInitiator(long userId, Long processInstanceId) throws SProcessInstanceNotFoundException, SProcessInstanceReadException { final ProcessInstanceService processInstanceService = getTenantServiceAccessor().getProcessInstanceService(); final SProcessInstance processInstance = processInstanceService.getProcessInstance(processInstanceId); return userId == processInstance.getStartedBy(); }
public boolean isProcessOrArchivedProcessInitiator(long userId, long processInstanceId) throws ProcessInstanceNotFoundException { try { return isProcessInitiator(userId, processInstanceId); } catch (SProcessInstanceNotFoundException e) { return isArchivedProcessInitiator(userId, processInstanceId); } catch (SProcessInstanceReadException e) { throw new RetrieveException(e); } }
@Override public boolean isAllowed(final String key, final Map<String, Serializable> context) throws SExecutionException { Long processInstanceId = getLongParameter(context, URLAdapterConstants.ID_QUERY_PARAM); if (processInstanceId == null) { throw new IllegalArgumentException("Parameter 'id' is mandatory to execute Page Authorization rule 'isManagerOfUserInvolvedInProcessInstance'"); } try { long userId = getLoggedUserId(sessionAccessor, sessionService); return processInvolvementDelegate.isManagerOfUserInvolvedInProcessInstance(userId, processInstanceId); } catch (BonitaException e) { throw new SExecutionException(e); } }
protected ArchivedProcessInstance getLastArchivedProcessInstance(final long processInstanceId) throws SBonitaException { return processInvolvementDelegate.getLastArchivedProcessInstance(processInstanceId); }
@Override public boolean isInvolvedInProcessInstance(final long userId, final long processInstanceId) throws ProcessInstanceNotFoundException { return processInvolvementDelegate.isInvolvedInProcessInstance(userId, processInstanceId); }
private boolean isUserManagerOfProcessInstanceInitiator(final long userId, final long startedByUserId) { final IdentityService identityService = getTenantServiceAccessor().getIdentityService(); SUser sUser; try { sUser = identityService.getUser(startedByUserId); } catch (final SUserNotFoundException e) { return false; } return userId == sUser.getManagerUserId(); }
@Override public boolean isAllowed(final String key, final Map<String, Serializable> context) throws SExecutionException { Long processInstanceId = getLongParameter(context, URLAdapterConstants.ID_QUERY_PARAM); if (processInstanceId == null) { throw new IllegalArgumentException("Parameter 'id' is mandatory to execute Page Authorization rule 'isManagerOfUserInvolvedInProcessInstance'"); } try { long userId = getLoggedUserId(sessionAccessor, sessionService); return processInvolvementDelegate.isManagerOfUserInvolvedInProcessInstance(userId, processInstanceId); } catch (BonitaException e) { throw new SExecutionException(e); } }