protected List<ModificationItem> getModificationItems(final List<ModificationItem> list, final LdapGroup group) createAndAddModificationItems(list, "businessCategory", group.getBusinessCategory()); createAndAddModificationItems(list, "o", group.getOrganization()); createAndAddModificationItems(list, "description", group.getDescription()); if (CollectionUtils.isNotEmpty(group.getMembers()) == true) { createAndAddModificationItems(list, "uniqueMember", group.getMembers()); } else { createAndAddModificationItems(list, "uniqueMember", NONE_UNIQUE_MEMBER_ID); if (modifyPosixAccount == true) { if (group.getObjectClasses() != null) { final List<String> missedObjectClasses = LdapUtils.getMissedObjectClasses(getAdditionalObjectClasses(group), getObjectClass(), group.getObjectClasses()); if (CollectionUtils.isNotEmpty(missedObjectClasses) == true) { for (final String missedObjectClass : missedObjectClasses) { list.add(createModificationItem(DirContext.ADD_ATTRIBUTE, "objectClass", missedObjectClass)); createAndAddModificationItems(list, "gidNumber", String.valueOf(group.getGidNumber()));
protected List<LdapGroup> getAllLdapGroups(final DirContext ctx) throws NamingException { final String organizationalUnits = ldapConfig.getGroupBase(); final List<LdapGroup> ldapGroups = ldapGroupDao.findAll(ctx, organizationalUnits); return ldapGroups; }
ldapGroupDao.create(ctx, groupBase, updatedLdapGroup); created++; if (group.isDeleted() == true || group.isLocalGroup() == true) { ldapGroupDao.delete(ctx, updatedLdapGroup); deleted++; } else { updatedLdapGroup.setObjectClasses(ldapGroup.getObjectClasses()); setMembers(updatedLdapGroup, group.getAssignedUsers(), ldapUserMap); ldapGroupDao.update(ctx, groupBase, updatedLdapGroup); updated++; } else { ldapGroupDao.rename(ctx, updatedLdapGroup, ldapGroup); renamed++;
ldapOrganizationalUnitDao = new LdapOrganizationalUnitDao(); ldapOrganizationalUnitDao.setLdapConnector(ldapConnector); ldapGroupDao = new LdapGroupDao(); ldapGroupDao.setLdapConnector(ldapConnector);
/** * @see org.projectforge.business.login.LoginHandler#initialize() */ @Override public void initialize() { if (ldapConfig == null) { // May-be already set by test class. this.ldapConfig = ldapService.getLdapConfig(); if (ldapConfig == null || ldapConfig.getServer() == null) { log.warn("No LDAP configured in config.xml, so any login will be impossible!"); } } baseDN = ldapConfig.getBaseDN(); userBase = ldapConfig.getUserBase(); groupBase = ldapConfig.getGroupBase(); ldapConnector = new LdapConnector(ldapConfig); ldapGroupDao.setLdapConnector(ldapConnector); // May-be already set by test class. ldapUserDao.setLdapConnector(ldapConnector); ldapUserDao.setLdapPersonDao((LdapPersonDao) ldapPersonDao.setLdapConnector(ldapConnector)); if (ldapOrganizationalUnitDao == null) { // May-be already set by test class. ldapOrganizationalUnitDao = new LdapOrganizationalUnitDao(); ldapOrganizationalUnitDao.setLdapConnector(ldapConnector); } }
/** * Copies the fields. * * @param src * @param dest * @return true if any modification is detected, otherwise false. */ public boolean copyGroupFields(final LdapGroup src, final LdapGroup dest) { boolean modified; final List<String> properties = new LinkedList<String>(); ListHelper.addAll(properties, "description", "organization"); if (ldapUserDao.isPosixAccountsConfigured() == true && isPosixAccountValuesEmpty(src) == false) { ListHelper.addAll(properties, "gidNumber"); } modified = BeanHelper.copyProperties(src, dest, true, properties.toArray(new String[0])); // Checks if the sets aren't equal: if (SetUtils.isEqualSet(src.getMembers(), dest.getMembers()) == false) { if (LdapGroupDao.hasMembers(src) == true || LdapGroupDao.hasMembers(dest) == true) { // If both, src and dest have no members, then do nothing, otherwise: modified = true; dest.clearMembers(); dest.addAllMembers(src.getMembers()); } } return modified; } }
protected List<LdapGroup> getAllLdapGroups() { final String organizationalUnits = ldapConfig.getGroupBase(); final List<LdapGroup> ldapGroups = ldapGroupDao.findAll(organizationalUnits); return ldapGroups; }