Repository: rave Updated Branches: refs/heads/master d557bc903 -> b59bb2048
RAVE-868 | Allow authority codes to be removed Project: http://git-wip-us.apache.org/repos/asf/rave/repo Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/2b36dfe6 Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/2b36dfe6 Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/2b36dfe6 Branch: refs/heads/master Commit: 2b36dfe6f38e2456c8b72557d640923433c3a4ea Parents: d557bc9 Author: Stanton Sievers <[email protected]> Authored: Wed Jan 21 14:16:10 2015 -0500 Committer: Stanton Sievers <[email protected]> Committed: Wed Jan 21 14:16:10 2015 -0500 ---------------------------------------------------------------------- .../apache/rave/portal/model/MongoDbUser.java | 6 ++++-- .../rave/portal/model/MongoDbUserTest.java | 20 ++++++++++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/rave/blob/2b36dfe6/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java index 78fb0fc..d424a28 100644 --- a/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java +++ b/rave-components/rave-mongodb/src/main/java/org/apache/rave/portal/model/MongoDbUser.java @@ -77,12 +77,14 @@ public class MongoDbUser extends UserImpl { @Override public void setAuthorities(Collection<Authority> authorities) { + if (authorityCodes == null) { + authorityCodes = Lists.newArrayList(); + } + authorityCodes.clear(); if (authorities != null) { for (GrantedAuthority authority : authorities) { addAuthorityCode(authority); } - } else { - authorityCodes.clear(); } } http://git-wip-us.apache.org/repos/asf/rave/blob/2b36dfe6/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/MongoDbUserTest.java ---------------------------------------------------------------------- diff --git a/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/MongoDbUserTest.java b/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/MongoDbUserTest.java index 7d1dd45..ede7c52 100644 --- a/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/MongoDbUserTest.java +++ b/rave-components/rave-mongodb/src/test/java/org/apache/rave/portal/model/MongoDbUserTest.java @@ -34,8 +34,7 @@ import java.util.Collection; import java.util.List; import static org.easymock.EasyMock.*; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.sameInstance; +import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; /** @@ -75,6 +74,23 @@ public class MongoDbUserTest { } @Test + public void setAuthorities_Subtractive(){ + Authority auth1 = new AuthorityImpl(); + auth1.setAuthority("auth1"); + Authority auth2 = new AuthorityImpl(); + auth2.setAuthority("auth2"); + Authority auth3 = new AuthorityImpl(); + auth3.setAuthority("auth3"); + user.setAuthorities(Arrays.asList(auth1, auth2, auth3)); + user.setAuthorities(Arrays.asList(auth1, auth3)); + + assertNotNull(user.getAuthorityCodes()); + assertThat(user.getAuthorityCodes(), hasItem(auth1.getAuthority())); + assertThat(user.getAuthorityCodes(), hasItem(auth3.getAuthority())); + assertThat(user.getAuthorityCodes(), not(hasItem(auth2.getAuthority()))); + } + + @Test public void equals_Same(){ assertTrue(user.equals(user)); }
