Commit eaab184d authored by Dustin Jenkins's avatar Dustin Jenkins
Browse files

Merge branch 'master' of ssh://gimli2.cadc.dao.nrc.ca/srv/cadc/git/ac into t72959

parents 6b4fabc1 4e8ffb57
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -158,16 +158,4 @@

  <property name="testingJars" value="${junit}:${asm}:${cglib}:${easymock}:${objenesis}:{unboundid}:${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>
+14 −15
Original line number Diff line number Diff line
@@ -71,7 +71,6 @@ package ca.nrc.cadc.ac.admin;

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

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

    private UserPersistence<Principal> userPersistence;
    private UserPersistence userPersistence;


	   
    protected abstract void doRun()
            throws AccessControlException, TransientException;
    

    /**
     * Set the system out.
     * @param printStream       The stream to write System.out to .
@@ -102,7 +101,7 @@ public abstract class AbstractCommand implements PrivilegedAction<Object>
    {
        this.systemOut = printStream;
    }
    

    /**
     * Set the system err.
     * @param printStream       The stream to write System.err to.
@@ -111,36 +110,36 @@ public abstract class AbstractCommand implements PrivilegedAction<Object>
    {
        this.systemErr = printStream;
    }
    

    @Override
    public Object run() 
    public Object run()
    {
        try 
        try
        {
            this.doRun();
        } 
        catch (AccessControlException e) 
        }
        catch (AccessControlException e)
        {
            this.systemErr.println("ERROR: " + e.getMessage());
            e.printStackTrace(systemErr);
        } 
        catch (TransientException e) 
        }
        catch (TransientException e)
        {
            String message = "Internal Transient Error: " + e.getMessage();
            this.systemErr.println("ERROR: " + message);
            e.printStackTrace(systemErr);
        }
		

        return null;
    }

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

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

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

import javax.security.auth.x500.X500Principal;

import org.apache.log4j.Logger;

import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.auth.HttpPrincipal;
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);

    protected abstract Collection<User<Principal>> getUsers()
    protected abstract Collection<User> getUsers()
    		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));
        }
@@ -106,21 +107,36 @@ public abstract class AbstractListUsers extends AbstractCommand

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

import org.apache.log4j.Logger;

import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.auth.HttpPrincipal;
@@ -86,12 +85,12 @@ import ca.nrc.cadc.net.TransientException;
 * @author yeunga
 *
 */
public abstract class AbstractUserCommand extends AbstractCommand 
public abstract class AbstractUserCommand extends AbstractCommand
{
    private static final Logger log = Logger.getLogger(AbstractUserCommand.class);
	

    private HttpPrincipal principal;
    protected abstract void execute() 
    protected abstract void execute()
    		throws UserNotFoundException, AccessControlException, TransientException;

    /**
@@ -102,26 +101,26 @@ public abstract class AbstractUserCommand extends AbstractCommand
    {
    	this.principal = new HttpPrincipal(userID);
    }
    

    protected Principal getPrincipal()
    {
    	return this.principal;
    }
    

    protected void doRun() throws AccessControlException, TransientException
    {
        try 
        try
        {
            this.execute();
        } 
        catch (UserNotFoundException e1) 
        }
        catch (UserNotFoundException e1)
        {
            String msg = "User " + this.getPrincipal().getName() + " was not found.";
            this.systemOut.println(msg);
        } 
        }
    }
    
    protected void printUser(final User<Principal> user)

    protected void printUser(final User user)
    {
        if (user != null)
        {
@@ -133,13 +132,12 @@ public abstract class AbstractUserCommand extends AbstractCommand
            {
                this.systemOut.println(p.toString());
            }
                       

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

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

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

import org.apache.log4j.Logger;

import ca.nrc.cadc.ac.PersonalDetails;
import ca.nrc.cadc.ac.User;
import ca.nrc.cadc.ac.UserNotFoundException;
import ca.nrc.cadc.auth.HttpPrincipal;
@@ -141,16 +138,17 @@ public class ApproveUser extends AbstractUserCommand

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

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

    }

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

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