protected String safeOrgEntity(OrganizationalEntity entity) { if (entity != null) { return entity.getId(); } return null; }
protected boolean checkUserPermissions(List<String> userGroups, List<OrganizationalEntity> organizationalEntities) { for (OrganizationalEntity oe : organizationalEntities) { if (userGroups.contains(oe.getId())) { return true; } } return false; } }
@Override public String getDisplayName(OrganizationalEntity entity) { Map<String, Object> entityInfo = registry.get(entity.getId()); if (entityInfo != null) { return (String) entityInfo.get("name"); } return null; }
private boolean isAllowed(final User user, final List<String> groupIds, final List<OrganizationalEntity> entities) { // for now just do a contains, I'll figure out group membership later. for (OrganizationalEntity entity : entities) { if (entity instanceof User && entity.equals(user)) { return true; } if (entity instanceof Group && groupIds != null && groupIds.contains(entity.getId())) { return true; } } return false; }
@Override public String getEmailForEntity(OrganizationalEntity entity) { Map<String, Object> entityInfo = registry.get(entity.getId()); if (entityInfo != null) { return (String) entityInfo.get("email"); } return null; }
@Override public String getLanguageForEntity(OrganizationalEntity entity) { Map<String, Object> entityInfo = registry.get(entity.getId()); if (entityInfo != null) { return (String) entityInfo.get("locale"); } return null; }
public static boolean isAllowed(final User user, final List<String> groupIds, final List<? extends OrganizationalEntity> entities) { // for now just do a contains, I'll figure out group membership later. for (OrganizationalEntity entity : entities) { if (entity instanceof User && entity.equals(user)) { return true; } if (entity instanceof Group && groupIds != null && groupIds.contains(entity.getId())) { return true; } } return false; } }
public JaxbOrganizationalEntity(OrganizationalEntity orgEntity) { this.id = orgEntity.getId(); if( orgEntity instanceof User ) { this.type = Type.USER; } else if (orgEntity instanceof Group ) { this.type = Type.GROUP; } else if(orgEntity instanceof JaxbOrganizationalEntity ) { this.type = ((JaxbOrganizationalEntity) orgEntity).type; } else { throw new IllegalArgumentException("Unknown type of organizational entity: " + orgEntity.getClass().getSimpleName()); } }
protected boolean isBusinessAdmin(String userId, List<OrganizationalEntity> businessAdmins, TaskContext context) { List<String> usersGroup = new ArrayList<String>(context.getUserGroupCallback().getGroupsForUser(userId)); usersGroup.add(userId); return businessAdmins.stream().anyMatch(oe -> usersGroup.contains(oe.getId())); }
private String extractEntityId(OrganizationalEntity entity) { if (!isEntityIdDn()) { return entity.getId(); } String entityAttrId = null; if (entity instanceof User) { entityAttrId = getConfigProperty(USER_ATTR_ID, DEFAULT_USER_ATTR_ID); } else if (entity instanceof Group) { entityAttrId = getConfigProperty(ROLE_ATTR_ID, DEFAULT_ROLE_ATTR_ID); } return extractAttribute(entity.getId(), entityAttrId); }
protected void persistIfNotExists(final OrganizationalEntity entity, TaskContext context) { TaskPersistenceContext tpc = context.getPersistenceContext(); OrganizationalEntity orgEntity = tpc.findOrgEntity(entity.getId()); if( orgEntity == null || (orgEntity instanceof Group && entity instanceof User) || (orgEntity instanceof User && entity instanceof Group) ) { tpc.persistOrgEntity(entity); } }
private void testGetLanguageForEntity(OrganizationalEntity entity, String language, boolean customAttribute) { Properties properties = createUserInfoProperties(); if (customAttribute) { properties.setProperty(LDAPUserInfoImpl.LANG_ATTR_ID, "language"); } if (entity.getId().startsWith("uid=") || entity.getId().startsWith("cn=")) { properties.setProperty(LDAPUserInfoImpl.IS_ENTITY_ID_DN, "true"); } UserInfo ldapUserInfo = new LDAPUserInfoImpl(properties); Assertions.assertThat(ldapUserInfo.getLanguageForEntity(entity)).isEqualTo(language); }
private void testGetEmailForEntity(OrganizationalEntity entity, String email, boolean customAttribute) { Properties properties = createUserInfoProperties(); if (customAttribute) { properties.setProperty(LDAPUserInfoImpl.EMAIL_ATTR_ID, "email"); } if (entity.getId().startsWith("uid=") || entity.getId().startsWith("cn=")) { properties.setProperty(LDAPUserInfoImpl.IS_ENTITY_ID_DN, "true"); } UserInfo ldapUserInfo = new LDAPUserInfoImpl(properties); Assertions.assertThat(ldapUserInfo.getEmailForEntity(entity)).isEqualTo(email); }
private void testGetDisplayName(OrganizationalEntity entity, String expectedName, boolean customAttribute) { Properties properties = createUserInfoProperties(); if (customAttribute) { properties.setProperty(LDAPUserInfoImpl.NAME_ATTR_ID, "name"); } if (entity.getId().startsWith("uid=") || entity.getId().startsWith("cn=")) { properties.setProperty(LDAPUserInfoImpl.IS_ENTITY_ID_DN, "true"); } UserInfo ldapUserInfo = new LDAPUserInfoImpl(properties); String name = ldapUserInfo.getDisplayName(entity); Assertions.assertThat(name).isNotNull(); Assertions.assertThat(name).isEqualTo(expectedName); }
@Test public void testAssignGroups() { String groupId = "Software Developers, Project Managers"; Task task = TaskModelProvider.getFactory().newTask(); PeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); workItem.setParameter(PeopleAssignmentHelper.GROUP_ID, groupId); peopleAssignmentHelper.assignGroups(workItem, peopleAssignments); OrganizationalEntity organizationalEntity1 = peopleAssignments.getPotentialOwners().get(0); assertTrue(organizationalEntity1 instanceof Group); assertEquals("Software Developers", organizationalEntity1.getId()); OrganizationalEntity organizationalEntity2 = peopleAssignments.getPotentialOwners().get(1); assertTrue(organizationalEntity2 instanceof Group); assertEquals("Project Managers", organizationalEntity2.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()); }
@Test public void testAssignExcludedOwners() { String excludedOwnerId = "espiegelberg"; Task task = TaskModelProvider.getFactory().newTask(); InternalPeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); workItem.setParameter(PeopleAssignmentHelper.EXCLUDED_OWNER_ID, excludedOwnerId); peopleAssignmentHelper.assignExcludedOwners(workItem, peopleAssignments); assertEquals(1, peopleAssignments.getExcludedOwners().size()); OrganizationalEntity organizationalEntity1 = peopleAssignments.getExcludedOwners().get(0); assertTrue(organizationalEntity1 instanceof User); assertEquals(excludedOwnerId, organizationalEntity1.getId()); }
@Test public void testAssignRecipients() { String recipientId = "espiegelberg"; Task task = TaskModelProvider.getFactory().newTask(); InternalPeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); workItem.setParameter(PeopleAssignmentHelper.RECIPIENT_ID, recipientId); peopleAssignmentHelper.assignRecipients(workItem, peopleAssignments); assertEquals(1, peopleAssignments.getRecipients().size()); OrganizationalEntity organizationalEntity1 = peopleAssignments.getRecipients().get(0); assertTrue(organizationalEntity1 instanceof User); assertEquals(recipientId, organizationalEntity1.getId()); }
@Test public void testAssignTaskstakeholders() { String taskStakeholderId = "espiegelberg"; Task task = TaskModelProvider.getFactory().newTask(); InternalPeopleAssignments peopleAssignments = peopleAssignmentHelper.getNullSafePeopleAssignments(task); WorkItem workItem = new WorkItemImpl(); workItem.setParameter(PeopleAssignmentHelper.TASKSTAKEHOLDER_ID, taskStakeholderId); peopleAssignmentHelper.assignTaskStakeholders(workItem, peopleAssignments); assertEquals(1, peopleAssignments.getTaskStakeholders().size()); OrganizationalEntity organizationalEntity1 = peopleAssignments.getTaskStakeholders().get(0); assertTrue(organizationalEntity1 instanceof User); assertEquals(taskStakeholderId, organizationalEntity1.getId()); }