Пример #1
0
 @Test
 public void testGroupLoad() {
   LdapGroup group = (LdapGroup) HELPER.getGroup(HELPER.getAdminGroupIdentifiyer());
   group.debug();
   LOG.log(Level.INFO, "\nmembers: {0}\n", group.get(HELPER.getGroupMemberAttribut()));
   assertFalse(group.isNew());
   assertFalse(group.isEmpty());
 }
 /**
  * Since member of groups can't be null, "cn=none" if the group has no real members.
  *
  * @param group
  * @return
  */
 public static boolean hasMembers(final LdapGroup group) {
   if (group.getMembers() == null || group.getMembers().size() == 0) {
     return false;
   }
   if (group.getMembers().size() > 1) {
     return true;
   }
   return group.getMembers().iterator().next().startsWith(NONE_UNIQUE_MEMBER_ID) == false;
 }
Пример #3
0
 @Test
 public void testUpdateGroup() throws Exception {
   LdapGroup g1 = Utils.createTestGroup(CN);
   assertNull(g1.get("description"));
   g1.set("description", "Group " + CN);
   HELPER.setGroup(g1);
   g1 = (LdapGroup) HELPER.getGroup(CN);
   assertEquals(g1.get("description"), "Group " + CN);
   Utils.removeTestGroup(g1);
 }
Пример #4
0
 @Test
 public void testAddUserToGroup() throws Exception {
   LdapGroup g1 = Utils.createTestGroup(CN);
   g1.addUser(testUser1);
   if (HELPER.setGroup(g1)) {
     LOG.log(Level.INFO, "updated Group {0}", CN);
   }
   g1 = (LdapGroup) HELPER.getGroup(CN);
   g1.debug();
   Utils.removeTestGroup(g1);
 }
Пример #5
0
 @Test
 public void testDeleteGroup() throws Exception {
   LdapGroup g1 = Utils.createTestGroup(CN);
   try {
     if (HELPER.rmGroup(g1)) {
       LOG.log(Level.INFO, "deleted Group {0}", CN);
     }
   } catch (Exception ex) {
     LOG.log(Level.SEVERE, "setGroup fails", ex);
   }
   g1 = (LdapGroup) HELPER.getGroup(CN);
   assertTrue(g1.isEmpty());
 }
Пример #6
0
 @Test
 public void testAddUsersToGroup() throws Exception {
   testUser2 = HELPER.getUserTemplate("U_" + System.currentTimeMillis());
   testUser2.set("cn", testUser2.getUid());
   HELPER.setUser(testUser2);
   LdapGroup g1 = Utils.createTestGroup(CN);
   g1.addUser(testUser1);
   g1.addUser(testUser2);
   HELPER.setGroup(g1);
   g1 = (LdapGroup) HELPER.getGroup(CN);
   LOG.log(Level.INFO, "user count Group {0} is {1}", new Object[] {CN, g1.getUsers().size()});
   assertTrue(g1.getUsers().size() > 2);
   Utils.removeTestGroup(g1);
 }
Пример #7
0
 @Test
 public void testRemoveUserFromGroup() throws Exception {
   LdapGroup g1 = Utils.createTestGroup(CN);
   String[] usernames = {"U1_" + System.currentTimeMillis(), "U2_" + System.currentTimeMillis()};
   if (HELPER.setGroup(g1)) {
     LOG.log(Level.INFO, "updated Group {0}", CN);
   }
   List<LdapUser> users = Utils.createTestUsers(usernames);
   for (LdapUser user : users) {
     g1.addUser(user);
   }
   HELPER.setGroup(g1);
   g1 = (LdapGroup) HELPER.getGroup(CN);
   int count = g1.getUsers().size();
   LOG.log(Level.INFO, "user count Group {0} is {1}", new Object[] {CN, count});
   g1.debug();
   assertTrue(count > 1);
   g1.rmUser(users.get(0));
   HELPER.setGroup(g1);
   g1 = (LdapGroup) HELPER.getGroup(CN);
   LOG.log(Level.INFO, "user count Group {0} is {1}", new Object[] {CN, g1.getUsers().size()});
   g1.debug();
   assertTrue(g1.getUsers().size() == (count - 1));
   Utils.removeTestGroup(g1);
   Utils.removeTestUsers(users);
 }
 /**
  * Used for bind and update.
  *
  * @param person
  * @return
  * @see org.projectforge.ldap.LdapDao#getModificationItems(org.projectforge.ldap.LdapObject)
  */
 @Override
 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);
   }
   final boolean modifyPosixAccount =
       isPosixAccountsConfigured() == true
           && GroupDOConverter.isPosixAccountValuesEmpty(group) == false;
   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));
         }
       }
     }
   }
   if (modifyPosixAccount == true) {
     createAndAddModificationItems(list, "gidNumber", String.valueOf(group.getGidNumber()));
   }
   return list;
 }
Пример #9
0
 @Test
 public void testUpdateExistingGroup() throws Exception {
   LdapGroup g1 = (LdapGroup) HELPER.getGroup("users");
   LOG.log(Level.INFO, "Group users description: {0}", g1.get("description"));
   String description = g1.get("description");
   g1.set("description", description + CN);
   HELPER.setGroup(g1);
   g1 = (LdapGroup) HELPER.getGroup("users");
   assertEquals(g1.get("description"), description + CN);
   g1.set("description", description);
   HELPER.setGroup(g1);
   g1 = (LdapGroup) HELPER.getGroup("users");
   assertEquals(g1.get("description"), description);
 }
Пример #10
0
 @Test
 public void testUpdateEmptyGroup() throws Exception {
   LdapGroup g1 = Utils.createTestGroup(CN);
   int count = g1.getUsers().size();
   LOG.log(Level.INFO, "user count Group {0} is {1}", new Object[] {CN, count});
   g1.debug();
   List<LdapUser> users = new ArrayList<LdapUser>();
   for (LdapUser user : g1.getUsers()) {
     users.add(user);
   }
   for (LdapUser user : users) {
     g1.rmUser(user);
   }
   HELPER.setGroup(g1);
   g1 = (LdapGroup) HELPER.getGroup(CN);
   count = g1.getUsers().size();
   LOG.log(Level.INFO, "user count Group {0} is {1}", new Object[] {CN, count});
   g1.debug();
   assertTrue(g1.getUsers().size() == 1);
   Utils.removeTestGroup(g1);
 }
 /**
  * @see org.projectforge.ldap.LdapDao#mapToObject(java.lang.String,
  *     javax.naming.directory.Attributes)
  */
 @Override
 protected LdapGroup mapToObject(final String dn, final Attributes attributes)
     throws NamingException {
   final LdapGroup group = new LdapGroup();
   group.setBusinessCategory(LdapUtils.getAttributeStringValue(attributes, "businessCategory"));
   group.setDescription(LdapUtils.getAttributeStringValue(attributes, "description"));
   group.setOrganization(LdapUtils.getAttributeStringValue(attributes, "o"));
   final String[] members = LdapUtils.getAttributeStringValues(attributes, "uniqueMember");
   if (members != null) {
     for (final String member : members) {
       group.addMember(member, ldapConfig.getBaseDN());
     }
   }
   final boolean posixAccountsConfigured = isPosixAccountsConfigured();
   if (posixAccountsConfigured == true) {
     final String no = LdapUtils.getAttributeStringValue(attributes, "gidNumber");
     group.setGidNumber(NumberHelper.parseInteger(no));
   }
   return group;
 }
 /** @see org.projectforge.ldap.LdapDao#getId(org.projectforge.ldap.LdapObject) */
 @Override
 public String getId(final LdapGroup obj) {
   return obj.getBusinessCategory();
 }