@Test public void testUserOnBusinessAdministratorGroups() { List<String> userGroups = new ArrayList<>(); userGroups.add("admin"); when(userGroupCallback.getGroupsForUser(USER_ID)).thenReturn(userGroups); List<OrganizationalEntity> admins = new ArrayList<>(); admins.add(new GroupImpl("admin")); when(peopleAssignments.getBusinessAdministrators()).thenReturn(admins); Task commandTask = command.execute(taskContext); assertEquals(task, commandTask); }
@Test(expected = PermissionDeniedException.class) public void testUserWithoutPermission() { when(userGroupCallback.getGroupsForUser(USER_ID)).thenReturn(new ArrayList<String>()); when(peopleAssignments.getBusinessAdministrators()).thenReturn(new ArrayList<OrganizationalEntity>()); command.execute(taskContext); fail(); } }
protected boolean checkUserPermissions(String userId, Task task, TaskContext context) { List<String> usersGroup = context.getUserGroupCallback().getGroupsForUser(userId); usersGroup.add(userId); if (checkUserPermissions(usersGroup, task.getPeopleAssignments().getPotentialOwners())) { return true; } return checkUserPermissions(usersGroup, task.getPeopleAssignments().getBusinessAdministrators()); }
private void postInit(Object result) { if (result instanceof Task) { Task task = (Task) result; if (task != null && !eagerDisabled) { task.getNames().size(); task.getDescriptions().size(); task.getSubjects().size(); task.getPeopleAssignments().getBusinessAdministrators().size(); task.getPeopleAssignments().getPotentialOwners().size(); ((InternalPeopleAssignments) task.getPeopleAssignments()).getRecipients().size(); ((InternalPeopleAssignments) task.getPeopleAssignments()).getExcludedOwners().size(); ((InternalPeopleAssignments) task.getPeopleAssignments()).getTaskStakeholders().size(); task.getTaskData().getAttachments().size(); task.getTaskData().getComments().size(); ((InternalTask)task).getDeadlines().getStartDeadlines().size(); ((InternalTask)task).getDeadlines().getEndDeadlines().size(); if (((InternalTask)task).getDelegation() != null) { ((InternalTask)task).getDelegation().getDelegates().size(); } } } else if (result instanceof Collection<?>) { ((Collection<?>) result).size(); } }
@Override public void abortWorkItem(WorkItem workItem, WorkItemManager manager) { Task task = taskService.getTaskByWorkItemId(workItem.getId()); if (task != null) { try { String adminUser = ADMIN_USER; List<OrganizationalEntity> businessAdmins = task.getPeopleAssignments().getBusinessAdministrators(); for (OrganizationalEntity admin : businessAdmins) { if (admin instanceof Group) { continue; } if (!admin.getId().equals(ADMIN_USER)) { adminUser = admin.getId(); break; } } logger.debug("Task {} is going to be exited by {} who is business admin", task.getId(), adminUser); taskService.exit(task.getId(), adminUser); } catch (PermissionDeniedException e) { logger.info(e.getMessage()); } } }
public static void rescheduleDeadlinesForTask(final InternalTask task, TaskContext taskContext, DeadlineType ...types) { Environment environment = taskContext.getTaskContentService().getMarshallerContext(task).getEnvironment(); TaskPersistenceContext persistenceContext = taskContext.getPersistenceContext(); taskContext.loadTaskVariables(task); PeopleAssignments peopleAssignments = task.getPeopleAssignments(); List<OrganizationalEntity> businessAdministrators = peopleAssignments.getBusinessAdministrators(); List<DeadlineType> deadlineTypes = Arrays.asList(types); Deadlines deadlines = HumanTaskHandlerHelper.setDeadlines(task.getTaskData().getTaskInputVariables(), businessAdministrators, environment); if(deadlineTypes.contains(DeadlineType.START)) { for(Deadline deadline : deadlines.getStartDeadlines()) { task.getDeadlines().getStartDeadlines().add(deadline); persistenceContext.persistDeadline(deadline); } } if(deadlineTypes.contains(DeadlineType.END)) { for(Deadline deadline : deadlines.getEndDeadlines()) { task.getDeadlines().getEndDeadlines().add(deadline); persistenceContext.persistDeadline(deadline); } } persistenceContext.updateTask(task); scheduleDeadlinesForTask(task, taskContext, types); }
@Override public void abortWorkItem(WorkItem workItem, WorkItemManager manager) { RuntimeEngine runtime = runtimeManager.getRuntimeEngine(ProcessInstanceIdContext.get(workItem.getProcessInstanceId())); Task task = runtime.getTaskService().getTaskByWorkItemId(workItem.getId()); if (task != null) { try { String adminUser = ADMIN_USER; List<OrganizationalEntity> businessAdmins = task.getPeopleAssignments().getBusinessAdministrators(); for (OrganizationalEntity admin : businessAdmins) { if (admin instanceof Group) { continue; } if (!admin.getId().equals(ADMIN_USER)) { adminUser = admin.getId(); break; } } logger.debug("Task {} is going to be exited by {} who is business admin", task.getId(), adminUser); runtime.getTaskService().exit(task.getId(), adminUser); } catch (PermissionDeniedException e) { logger.info(e.getMessage()); } } }
@Test public void testAssignBusinessAdministrators() { String businessAdministratorId = "espiegelberg"; Task task = TaskModelProvider.getFactory().newTask(); PeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); workItem.setParameter(PeopleAssignmentHelper.BUSINESSADMINISTRATOR_ID, businessAdministratorId); peopleAssignmentHelper.assignBusinessAdministrators(workItem, peopleAssignments); assertEquals(3, peopleAssignments.getBusinessAdministrators().size()); OrganizationalEntity organizationalEntity1 = peopleAssignments.getBusinessAdministrators().get(0); assertTrue(organizationalEntity1 instanceof User); assertEquals("Administrator", organizationalEntity1.getId()); OrganizationalEntity organizationalEntity2 = peopleAssignments.getBusinessAdministrators().get(1); assertTrue(organizationalEntity2 instanceof Group); assertEquals("Administrators", organizationalEntity2.getId()); OrganizationalEntity organizationalEntity3 = peopleAssignments.getBusinessAdministrators().get(2); assertTrue(organizationalEntity3 instanceof User); assertEquals(businessAdministratorId, organizationalEntity3.getId()); }
@Test public void testAssignBusinessAdministratorGroups() { String businessAdministratorGroupId = "Super users"; Task task = TaskModelProvider.getFactory().newTask(); PeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); workItem.setParameter(PeopleAssignmentHelper.BUSINESSADMINISTRATOR_GROUP_ID, businessAdministratorGroupId); peopleAssignmentHelper.assignBusinessAdministrators(workItem, peopleAssignments); assertEquals(3, peopleAssignments.getBusinessAdministrators().size()); OrganizationalEntity organizationalEntity1 = peopleAssignments.getBusinessAdministrators().get(0); assertTrue(organizationalEntity1 instanceof User); assertEquals("Administrator", organizationalEntity1.getId()); OrganizationalEntity organizationalEntity2 = peopleAssignments.getBusinessAdministrators().get(1); assertTrue(organizationalEntity2 instanceof Group); assertEquals("Administrators", organizationalEntity2.getId()); OrganizationalEntity organizationalEntity3 = peopleAssignments.getBusinessAdministrators().get(2); assertTrue(organizationalEntity3 instanceof Group); assertEquals(businessAdministratorGroupId, organizationalEntity3.getId()); }
@Test public void testAssignBusinessAdministratorsChangedDefaults() { peopleAssignmentHelper = new PeopleAssignmentHelper("myadmin", "mygroup"); Task task = TaskModelProvider.getFactory().newTask(); PeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); peopleAssignmentHelper.assignBusinessAdministrators(workItem, peopleAssignments); assertEquals(2, peopleAssignments.getBusinessAdministrators().size()); OrganizationalEntity organizationalEntity1 = peopleAssignments.getBusinessAdministrators().get(0); assertTrue(organizationalEntity1 instanceof User); assertEquals("myadmin", organizationalEntity1.getId()); OrganizationalEntity organizationalEntity2 = peopleAssignments.getBusinessAdministrators().get(1); assertTrue(organizationalEntity2 instanceof Group); assertEquals("mygroup", organizationalEntity2.getId()); }
if (task.getPeopleAssignments() != null && task.getPeopleAssignments().getBusinessAdministrators() != null) { List<OrganizationalEntity> businessAdmins = new ArrayList<OrganizationalEntity>(); User user = createUser("Administrator"); businessAdmins.add(user); businessAdmins.addAll(task.getPeopleAssignments().getBusinessAdministrators()); ((InternalPeopleAssignments) task.getPeopleAssignments()).setBusinessAdministrators(businessAdmins);
@SuppressWarnings("unchecked") protected void assignBusinessAdministrators(WorkItem workItem, PeopleAssignments peopleAssignments) { List<OrganizationalEntity> businessAdministrators = peopleAssignments.getBusinessAdministrators(); Object businessAdminGroupIds = adjustParam(workItem.getParameter(BUSINESSADMINISTRATOR_GROUP_ID), groupFilter); Object businessAdministratorIds = adjustParam(workItem.getParameter(BUSINESSADMINISTRATOR_ID), userFilter); if (!hasAdminAssigned(businessAdministrators)) { User administrator = TaskModelProvider.getFactory().newUser(); ((InternalOrganizationalEntity) administrator).setId(administratorUser); businessAdministrators.add(administrator); Group adminGroup = TaskModelProvider.getFactory().newGroup(); ((InternalOrganizationalEntity) adminGroup).setId(administratorGroup); businessAdministrators.add(adminGroup); } if (businessAdministratorIds instanceof Collection) { processPeopleAssignments((Collection<OrganizationalEntity>)businessAdministratorIds, businessAdministrators); } else { processPeopleAssignments((String)businessAdministratorIds, businessAdministrators, true); } if (businessAdminGroupIds instanceof Collection) { processPeopleAssignments((Collection<OrganizationalEntity>)businessAdminGroupIds, businessAdministrators); } else { processPeopleAssignments((String)businessAdminGroupIds, businessAdministrators, false); } }
this.activationTime = source.getTaskData().getActivationTime(); this.actualOwner = safeOrgEntity(source.getTaskData().getActualOwner()); this.businessAdmins = source.getPeopleAssignments().getBusinessAdministrators() .stream() .map(entity -> safeOrgEntity(entity))
assertTrue(task1.getPeopleAssignments().getBusinessAdministrators().contains(user)); assertEquals(task1.getTaskData().getStatus(), Status.Created);
operationAllowed = isAllowed(user, groupIds, (List<OrganizationalEntity>) task.getPeopleAssignments().getBusinessAdministrators()); break;
if (task.getPeopleAssignments() != null && task.getPeopleAssignments().getBusinessAdministrators() != null) { List<OrganizationalEntity> businessAdmins = new ArrayList<OrganizationalEntity>(); User user = createUser("Administrator"); businessAdmins.add(user); businessAdmins.addAll(task.getPeopleAssignments().getBusinessAdministrators()); ((InternalPeopleAssignments) task.getPeopleAssignments()).setBusinessAdministrators(businessAdmins);
List<OrganizationalEntity> businessAdministrators = peopleAssignments.getBusinessAdministrators();
assertEquals("john", potentialOwners.get(1).getId()); List<OrganizationalEntity> businessAdministrators = task.getPeopleAssignments().getBusinessAdministrators(); assertEquals(6, businessAdministrators.size()); assertEquals("Administrator", businessAdministrators.get(0).getId());
assertEquals(actorId, potentialOwners.get(0).getId()); List<OrganizationalEntity> businessAdministrators = task.getPeopleAssignments().getBusinessAdministrators(); assertEquals(4, businessAdministrators.size()); assertEquals("Administrator", businessAdministrators.get(0).getId());
@Test public void testAssignBusinessAdministratorsChangedDefaults() { peopleAssignmentHelper = new PeopleAssignmentHelper("myadmin", "mygroup"); Task task = TaskModelProvider.getFactory().newTask(); PeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); peopleAssignmentHelper.assignBusinessAdministrators(workItem, peopleAssignments); assertEquals(2, peopleAssignments.getBusinessAdministrators().size()); OrganizationalEntity organizationalEntity1 = peopleAssignments.getBusinessAdministrators().get(0); assertTrue(organizationalEntity1 instanceof User); assertEquals("myadmin", organizationalEntity1.getId()); OrganizationalEntity organizationalEntity2 = peopleAssignments.getBusinessAdministrators().get(1); assertTrue(organizationalEntity2 instanceof Group); assertEquals("mygroup", organizationalEntity2.getId()); }