Commit f38aad56 authored by Brian Major's avatar Brian Major
Browse files

master - fixed merge conflicts

parents f7c482d6 619d1774
Loading
Loading
Loading
Loading
+0 −12
Original line number Original line Diff line number Diff line
@@ -161,16 +161,4 @@


  <property name="testingJars" value="${jsonassert}:${junit}:${asm}:${cglib}:${easymock}:${objenesis}:${jdom2}:${json}:${cadcLog}"/>
  <property name="testingJars" value="${jsonassert}:${junit}:${asm}:${cglib}:${easymock}:${objenesis}:${jdom2}:${json}:${cadcLog}"/>


  <target name="int-test" depends="build,compile-test,setup-test">
    <echo message="Running test suite..."/>
    <junit printsummary="yes" haltonfailure="yes" fork="yes">
      <classpath>
        <pathelement path="${build}/class"/>
        <pathelement path="${build}/test/class"/>
        <pathelement path="${jars}:${testingJars}"/>
      </classpath>
      <test name="ca.nrc.cadc.ac.admin.integration.UserAdminIntTest"/>
      <formatter type="plain" usefile="false"/>
    </junit>
  </target>
</project>
</project>
+14 −15
Original line number Original line Diff line number Diff line
@@ -71,7 +71,6 @@ package ca.nrc.cadc.ac.admin;


import java.io.PrintStream;
import java.io.PrintStream;
import java.security.AccessControlException;
import java.security.AccessControlException;
import java.security.Principal;
import java.security.PrivilegedAction;
import java.security.PrivilegedAction;


import ca.nrc.cadc.ac.server.UserPersistence;
import ca.nrc.cadc.ac.server.UserPersistence;
@@ -88,7 +87,7 @@ public abstract class AbstractCommand implements PrivilegedAction<Object>
    protected PrintStream systemOut = System.out;
    protected PrintStream systemOut = System.out;
    protected PrintStream systemErr = System.err;
    protected PrintStream systemErr = System.err;


    private UserPersistence<Principal> userPersistence;
    private UserPersistence userPersistence;




    protected abstract void doRun()
    protected abstract void doRun()
@@ -135,12 +134,12 @@ public abstract class AbstractCommand implements PrivilegedAction<Object>
    }
    }


    protected void setUserPersistence(
    protected void setUserPersistence(
            final UserPersistence<Principal> userPersistence)
            final UserPersistence userPersistence)
    {
    {
        this.userPersistence = userPersistence;
        this.userPersistence = userPersistence;
    }
    }


    public UserPersistence<Principal> getUserPersistence()
    public UserPersistence getUserPersistence()
    {
    {
        return userPersistence;
        return userPersistence;
    }
    }
+29 −13
Original line number Original line Diff line number Diff line
@@ -70,14 +70,15 @@
package ca.nrc.cadc.ac.admin;
package ca.nrc.cadc.ac.admin;


import java.security.AccessControlException;
import java.security.AccessControlException;
import java.security.Principal;
import java.util.Collection;
import java.util.Collection;
import java.util.Set;
import java.util.Set;


import javax.security.auth.x500.X500Principal;

import org.apache.log4j.Logger;
import org.apache.log4j.Logger;


import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.net.TransientException;
import ca.nrc.cadc.net.TransientException;


/**
/**
@@ -89,14 +90,14 @@ public abstract class AbstractListUsers extends AbstractCommand
{
{
    private static final Logger log = Logger.getLogger(AbstractListUsers.class);
    private static final Logger log = Logger.getLogger(AbstractListUsers.class);


    protected abstract Collection<User<Principal>> getUsers()
    protected abstract Collection<User> getUsers()
    		throws AccessControlException, TransientException;
    		throws AccessControlException, TransientException;


    protected void doRun() throws AccessControlException, TransientException
    protected void doRun() throws AccessControlException, TransientException
    {
    {
        Collection<User<Principal>> users = this.getUsers();
        Collection<User> users = this.getUsers();


        for (User<Principal> user : users)
        for (User user : users)
        {
        {
            this.systemOut.println(getUserString(user));
            this.systemOut.println(getUserString(user));
        }
        }
@@ -106,21 +107,36 @@ public abstract class AbstractListUsers extends AbstractCommand


    private String getUserString(User user)
    private String getUserString(User user)
    {
    {
        StringBuilder sb = new StringBuilder(user.getUserID().getName());
        StringBuilder sb = new StringBuilder();
        HttpPrincipal username = user.getHttpPrincipal();
        if (username != null)
        {
            sb.append(username.getName());
        }
        else
        {
            Set<X500Principal> x500Principals = user.getIdentities(X500Principal.class);
            if (!x500Principals.isEmpty())
            {
                sb.append(x500Principals.iterator().next().getName());
            }
            else
            {
                sb.append("Internal ID: " + user.getID().getURI());
            }
        }


        Set<PersonalDetails> detailSet = user.getDetails(PersonalDetails.class);
        if (user.personalDetails != null)
        if (detailSet.size() > 0)
        {
        {
            sb.append(" [");
            sb.append(" [");
            PersonalDetails details = detailSet.iterator().next();
            sb.append(user.personalDetails.getFirstName());
            sb.append(details.getFirstName());
            sb.append(" ");
            sb.append(" ");
            sb.append(details.getLastName());
            sb.append(user.personalDetails.getLastName());
            sb.append("]");
            sb.append("]");
            if (details.institute != null)
            if (user.personalDetails.institute != null)
            {
            {
                sb.append(" [");
                sb.append(" [");
                sb.append(details.institute);
                sb.append(user.personalDetails.institute);
                sb.append("]");
                sb.append("]");
            }
            }
        }
        }
+14 −16
Original line number Original line Diff line number Diff line
@@ -75,7 +75,6 @@ import java.util.Set;


import org.apache.log4j.Logger;
import org.apache.log4j.Logger;


import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.auth.HttpPrincipal;
@@ -121,7 +120,7 @@ public abstract class AbstractUserCommand extends AbstractCommand
        }
        }
    }
    }


    protected void printUser(final User<Principal> user)
    protected void printUser(final User user)
    {
    {
        if (user != null)
        if (user != null)
        {
        {
@@ -136,10 +135,9 @@ public abstract class AbstractUserCommand extends AbstractCommand


            // print user's personal details
            // print user's personal details
            this.systemOut.println();
            this.systemOut.println();
            PersonalDetails personalDetails = user.getUserDetail(PersonalDetails.class);
            if (user.personalDetails != null)
            if (personalDetails != null)
            {
            {
                this.systemOut.println(personalDetails.toStringFormatted());
                this.systemOut.println(user.personalDetails.toStringFormatted());
            }
            }
        }
        }
    }
    }
+8 −63
Original line number Original line Diff line number Diff line
@@ -70,11 +70,9 @@
package ca.nrc.cadc.ac.admin;
package ca.nrc.cadc.ac.admin;


import java.security.AccessControlException;
import java.security.AccessControlException;
import java.security.Principal;
import java.util.Date;
import java.util.Date;
import java.util.IllegalFormatException;
import java.util.IllegalFormatException;
import java.util.Properties;
import java.util.Properties;
import java.util.Set;


import javax.mail.Address;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Message;
@@ -86,14 +84,12 @@ import javax.security.auth.x500.X500Principal;


import org.apache.log4j.Logger;
import org.apache.log4j.Logger;


import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.auth.HttpPrincipal;
import ca.nrc.cadc.net.TransientException;
import ca.nrc.cadc.net.TransientException;
import ca.nrc.cadc.util.PropertiesReader;
import ca.nrc.cadc.util.PropertiesReader;



/**
/**
 * This class approves the specified pending user by moving the user
 * This class approves the specified pending user by moving the user
 * from a pending user to an active user in the LDAP server.
 * from a pending user to an active user in the LDAP server.
@@ -115,11 +111,9 @@ public class ApproveUser extends AbstractUserCommand


    private String dn;
    private String dn;



    /**
    /**
     * Constructor
     * Constructor
     * @param userID Id of the pending user to be approved
     * @param userID Id of the pending user to be approved
     * @param dn of the pending user to be approved
     */
     */
    public ApproveUser(final String userID, final String dn)
    public ApproveUser(final String userID, final String dn)
    {
    {
@@ -127,57 +121,9 @@ public class ApproveUser extends AbstractUserCommand
    	this.dn = dn;
    	this.dn = dn;
    }
    }



    /**
     * Constructor
     * @param userID Id of the pending user to be approved
     */
    public ApproveUser(final String userID)
    {
    	super(userID);
    }


    protected void execute()
    protected void execute()
	throws AccessControlException, UserNotFoundException, TransientException
	throws AccessControlException, UserNotFoundException, TransientException
    {
    {
        User<Principal> user = null;
        try
        {
            // Search the user in the pending tree
            user = this.getUserPersistence().getPendingUser(this.getPrincipal());
        }
        catch (Exception e)
        {
            log.info("User not found in userRequests");
            this.systemOut.println("User not found in userRequests. Impossible to approve it.");
            this.systemOut.println("Check the validity of the provided uid.");
            return;
        }
        log.debug("User found in userRequests");
        // If user DN is not provided by command line, search if it is available in UserRequests
        if (dn == null || dn.isEmpty()) {
            boolean foundDN = false;
            for (Principal p : user.getIdentities())
            {
                 if (p instanceof X500Principal)
                 {
                     this.dn = p.getName();
                     log.debug("User DN FOUND in pendingUser. userDN = " + dn);
                     foundDN = true;
                     break;
                 }
            }
            if(!foundDN)
            {
                log.debug("User DN NOT FOUND in UserRequests.");
                this.systemOut.println("User DN not found in userRequests.");
                this.systemOut.println("Use --dn option to provide a valid user DN");
                return;
            }

        }

        X500Principal dnPrincipal = null;
        X500Principal dnPrincipal = null;
        try
        try
        {
        {
@@ -192,16 +138,17 @@ public class ApproveUser extends AbstractUserCommand


        try
        try
        {
        {
            this.getUserPersistence().approvePendingUser(this.getPrincipal());
            this.getUserPersistence().approveUserRequest(this.getPrincipal());
            this.systemOut.println("User " + this.getPrincipal().getName() + " was approved successfully.");
            this.systemOut.println("User " + this.getPrincipal().getName() + " was approved successfully.");
            approved = true;
            approved = true;
        }
        }
        catch (UserNotFoundException e)
        catch (UserNotFoundException e)
        {
        {
            this.systemOut.println("Could not find pending user " + this.getPrincipal());
            this.systemOut.println("Could not find userRequest " + this.getPrincipal());
            return;
        }
        }


        user = null;
        User user = null;
        try
        try
        {
        {
            user = this.getUserPersistence().getUser(this.getPrincipal());
            user = this.getUserPersistence().getUser(this.getPrincipal());
@@ -226,7 +173,7 @@ public class ApproveUser extends AbstractUserCommand


    }
    }


    private void emailUser(User<Principal>  user)
    private void emailUser(User  user)
    {
    {
        try
        try
        {
        {
@@ -252,12 +199,10 @@ public class ApproveUser extends AbstractUserCommand
                return;
                return;
            }
            }


            Set<PersonalDetails> pds = user.getDetails(PersonalDetails.class);
            String recipient = null;
            String recipient = null;
            if (pds != null && !pds.isEmpty())
            if (user.personalDetails != null)
            {
            {
                PersonalDetails pd = pds.iterator().next();
                recipient = user.personalDetails.email;
                recipient = pd.email;
            }
            }
            if (recipient == null)
            if (recipient == null)
            {
            {
Loading