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

Merge branch 'ac2' of gimli2:/srv/cadc/git/wopencadc into ac2

Conflicts:
	projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/users/GetUserAction.java
parents 1fbebeb5 064d1c33
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -149,7 +149,7 @@ public class GetUserAction extends AbstractUserAction
                    }
                    PersonalDetails pd = details.iterator().next();
                    user.details.clear();
                    user.details.add(new PersonalDetails(pd.getFirstName(), pd.getFirstName()));
                    user.details.add(new PersonalDetails(pd.getFirstName(), pd.getLastName()));
                }
                else
                {
@@ -167,10 +167,11 @@ public class GetUserAction extends AbstractUserAction
    
    protected boolean isServops()
    {
    	log.debug("isServops(): augmentUserDN = " + this.augmentUserDN);
    	boolean isServops = false;
        AccessControlContext acc = AccessController.getContext();
        Subject subject = Subject.getSubject(acc);
        if (subject != null)
        {
        	for (Principal principal : subject.getPrincipals())
        	{
        		if (principal.getName().equals(this.getAugmentUserDN()))
@@ -179,6 +180,7 @@ public class GetUserAction extends AbstractUserAction
        			break;
        		}
        	}
        }
        
        return isServops;
    }
+62 −4
Original line number Diff line number Diff line
@@ -89,10 +89,11 @@ import java.util.Set;

import static org.easymock.EasyMock.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

public class GetUserActionTest
{
//    @Test
    @Test
    public void writeUserXML() throws Exception
    {
        final SyncOutput mockSyncOut =
@@ -179,15 +180,72 @@ public class GetUserActionTest
        testSubject.setSyncOut(syncOutput);
        testSubject.doAction();

        sb = new StringBuilder();
        String actualUser = writer.toString();

        assertEquals(expectedUser, actualUser);

        verify(mockUserPersistence, mockResponse);
    }

    @Test
    public void writeUserWithDetailDisplay() throws Exception
    {
        final HttpServletResponse mockResponse = createMock(HttpServletResponse.class);
        final UserPersistence<HttpPrincipal> mockUserPersistence =
            createMock(UserPersistence.class);
        final HttpPrincipal userID = new HttpPrincipal("CADCtest");

        final GetUserAction testSubject = new GetUserAction(userID, "display")
        {
            @Override
            UserPersistence<HttpPrincipal> getUserPersistence()
            {
                return mockUserPersistence;
            }
        };

        final User<HttpPrincipal> expected = new User<HttpPrincipal>(userID);

        final PersonalDetails personalDetails = new PersonalDetails("cadc", "test");
        expected.details.add(personalDetails);

        StringBuilder sb = new StringBuilder();
        UserWriter userWriter = new UserWriter();
        userWriter.write(expected, sb);
        String actualUser = sb.toString();
        String expectedUser = sb.toString();

        Set<PersonalDetails> details = expected.getDetails(PersonalDetails.class);
        PersonalDetails pd = details.iterator().next();
        pd.city = "city";

        expected.getIdentities().add(new NumericPrincipal(789));
        expected.getIdentities().add(new X500Principal("cn=foo,o=bar"));

        final PosixDetails posixDetails = new PosixDetails(123L, 456L, "/dev/null");
        expected.details.add(posixDetails);

        final Writer writer = new StringWriter();
        final PrintWriter printWriter = new PrintWriter(writer);

        expect(mockUserPersistence.getUser(userID)).andReturn(expected).once();
        mockResponse.setHeader("Content-Type", "text/xml");
        expectLastCall().once();
        expect(mockResponse.getWriter()).andReturn(printWriter).once();

        replay(mockUserPersistence, mockResponse);

        SyncOutput syncOutput = new SyncOutput(mockResponse);
        testSubject.setSyncOut(syncOutput);
        testSubject.doAction();

        String actualUser = writer.toString();

        assertEquals(expectedUser, actualUser);

        verify(mockUserPersistence, mockResponse);
    }

//    @Test
    @Test
    public void writeUserJSON() throws Exception
    {
        final SyncOutput mockSyncOut =