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));
     }

Reply via email to