Commit da63d846 authored by Jeff Burke's avatar Jeff Burke
Browse files

ac2: delete an approved user from the pending tree.

parent 827c01f7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -147,7 +147,7 @@
        <pathelement path="${jars}:${testingJars}"/>
      </classpath>
      <sysproperty key="ca.nrc.cadc.util.PropertiesReader.dir" value="test"/>
      <test name="ca.nrc.cadc.ac.server.web.users.ModifyUserActionTest" />
      <test name="ca.nrc.cadc.ac.server.ldap.LdapUserDAOTest" />
      <formatter type="plain" usefile="false" />
    </junit>
  </target>
+4 −10
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ import java.util.Set;
import javax.security.auth.x500.X500Principal;

import ca.nrc.cadc.auth.DNPrincipal;
import com.unboundid.ldap.sdk.DeleteRequest;
import com.unboundid.ldap.sdk.ModifyDNRequest;
import org.apache.log4j.Logger;

@@ -682,7 +683,7 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO
        try
        {
            ModifyDNRequest modifyDNRequest =
                new ModifyDNRequest(dn, uid, false, config.getUsersDN());
                new ModifyDNRequest(dn, uid, true, config.getUsersDN());

            LdapDAO.checkLdapResult(getConnection().modifyDN(modifyDNRequest).getResultCode());
        }
@@ -841,15 +842,8 @@ public class LdapUserDAO<T extends Principal> extends LdapDAO
        try
        {
            DN userDN = getUserDN(userID.getName(), usersDN);
            List<Modification> modifs = new ArrayList<Modification>();
            modifs.add(new Modification(ModificationType.ADD, LDAP_NSACCOUNTLOCK, "true"));

            ModifyRequest modifyRequest = new ModifyRequest(userDN, modifs);
            modifyRequest.addControl(
                new ProxiedAuthorizationV2RequestControl(
                    "dn:" + getSubjectDN().toNormalizedString()));

            LDAPResult result = getConnection().modify(modifyRequest);
            DeleteRequest deleteRequest = new DeleteRequest(userDN);
            LDAPResult result = getConnection().delete(deleteRequest);
            LdapDAO.checkLdapResult(result.getResultCode());
        }
        catch (LDAPException e1)
+13 −0
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ import java.util.Random;
import javax.security.auth.Subject;
import javax.security.auth.x500.X500Principal;

import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.auth.DNPrincipal;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
@@ -378,6 +379,18 @@ public class LdapUserDAOTest extends AbstractLdapDAOTest
                    assertNotNull(actual);
                    assertEquals(expected.getUserID(), actual.getUserID());

                    User<Principal> newUser = userDAO.getUser(userRequest.getUser().getUserID());
                    assertNotNull(newUser);
                    assertEquals(expected.getUserID(), newUser.getUserID());

                    try
                    {
                        userDAO.getPendingUser(userRequest.getUser().getUserID());
                        fail("approved user " + userRequest.getUser().getUserID() +
                             " found in pending user tree");
                    }
                    catch (UserNotFoundException ignore) {}

                    return null;
                }
                catch (Exception e)