diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java index 0f5c2dc73f0b2cde3e3c63591719caae4ea095ff..2f22af1f3202cacdab82a2be1fa4daf4da7cd053 100755 --- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java +++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/ldap/LdapUserDAO.java @@ -288,6 +288,15 @@ public class LdapUserDAO extends LdapDAO public void addUser(final UserRequest userRequest) throws TransientException, UserAlreadyExistsException { + try + { + getUser(userRequest.getUser().getUserID(), config.getUsersDN()); + final String error = userRequest.getUser().getUserID().getName() + + " fount in " + config.getUsersDN(); + throw new UserAlreadyExistsException(error); + } + catch (UserNotFoundException e1) {} + addUser(userRequest, config.getUsersDN()); } @@ -302,6 +311,25 @@ public class LdapUserDAO extends LdapDAO public void addPendingUser(final UserRequest userRequest) throws TransientException, UserAlreadyExistsException { + try + { + getUser(userRequest.getUser().getUserID(), config.getUsersDN()); + final String error = userRequest.getUser().getUserID().getName() + + " fount in " + config.getUsersDN(); + throw new UserAlreadyExistsException(error); + } + catch (UserNotFoundException e1) + { + try + { + getUser(userRequest.getUser().getUserID(), config.getUserRequestsDN()); + final String error = userRequest.getUser().getUserID().getName() + + " fount in " + config.getUserRequestsDN(); + throw new UserAlreadyExistsException(error); + } + catch (UserNotFoundException e2) {} + } + addUser(userRequest, config.getUserRequestsDN()); } @@ -423,9 +451,6 @@ public class LdapUserDAO extends LdapDAO SearchResultEntry searchResult = null; try { -// Filter filter = Filter.createNOTFilter(Filter.createPresenceFilter(LDAP_NSACCOUNTLOCK)); -// filter = Filter.createANDFilter(filter, -// Filter.createEqualityFilter(searchField, userID.getName())); Filter filter = Filter.createEqualityFilter(searchField, userID.getName()); logger.debug("search filter: " + filter); @@ -455,7 +480,7 @@ public class LdapUserDAO extends LdapDAO searchResult.getAttributeValue( userLdapAttrib.get(HttpPrincipal.class)))); - Long numericID = searchResult.getAttributeValueAsLong( + Integer numericID = searchResult.getAttributeValueAsInteger( userLdapAttrib.get(NumericPrincipal.class)); logger.debug("Numeric id is: " + numericID); if (numericID == null) @@ -515,7 +540,7 @@ public class LdapUserDAO extends LdapDAO user.getIdentities().add(new HttpPrincipal( searchResult.getAttributeValue(LDAP_UID))); user.getIdentities().add(new NumericPrincipal( - searchResult.getAttributeValueAsLong(LDAP_NUMERICID))); + searchResult.getAttributeValueAsInteger(LDAP_NUMERICID))); user.getIdentities().add(new X500Principal( searchResult.getAttributeValue(LDAP_DISTINGUISHED_NAME))); user.getIdentities().add(new DNPrincipal(