Author: angela
Date: Thu Jul 30 09:31:09 2015
New Revision: 1693401
URL: http://svn.apache.org/r1693401
Log:
OAK-3165 : Redundant test for duplicate membership in Group.addMember
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java?rev=1693401&r1=1693400&r2=1693401&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java
Thu Jul 30 09:31:09 2015
@@ -110,11 +110,6 @@ class GroupImpl extends AuthorizableImpl
}
}
- if (isDeclaredMember(authorizable)) {
- log.debug("Authorizable {} is already declared member of {}",
memberID, getID());
- return false;
- }
-
return getMembershipProvider().addMember(getTree(),
authorizableImpl.getTree());
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java?rev=1693401&r1=1693400&r2=1693401&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
Thu Jul 30 09:31:09 2015
@@ -53,6 +53,7 @@ public class MembershipWriter {
/**
* Adds a new member to the given {@code groupTree}.
+ *
* @param groupTree the group to add the member to
* @param memberContentId the id of the new member
* @return {@code true} if the member was added
@@ -73,7 +74,7 @@ public class MembershipWriter {
PropertyState refs = t.getProperty(UserConstants.REP_MEMBERS);
if (refs != null) {
int numRefs = 0;
- for (String ref: refs.getValue(Type.WEAKREFERENCES)) {
+ for (String ref : refs.getValue(Type.WEAKREFERENCES)) {
if (ref.equals(memberContentId)) {
return false;
}
@@ -100,7 +101,7 @@ public class MembershipWriter {
bestTree = membersList.addChild("0");
} else {
// keep node names linear
- int i=0;
+ int i = 0;
String name = String.valueOf(i);
while (membersList.hasChild(name)) {
name = String.valueOf(++i);
@@ -172,7 +173,7 @@ public class MembershipWriter {
int count = 0;
int numNodes = 0;
- for (String ref: members) {
+ for (String ref : members) {
if (prop == null) {
prop = PropertyBuilder.array(Type.WEAKREFERENCE,
UserConstants.REP_MEMBERS);
}
@@ -194,6 +195,4 @@ public class MembershipWriter {
node.setProperty(prop.getPropertyState());
}
}
-
-
}
\ No newline at end of file
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java?rev=1693401&r1=1693400&r2=1693401&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java
Thu Jul 30 09:31:09 2015
@@ -30,6 +30,7 @@ import org.apache.jackrabbit.oak.Abstrac
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
+import org.apache.jackrabbit.oak.util.TreeUtil;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -288,6 +289,43 @@ public class MembershipProviderTest exte
);
}
+ @Test
+ public void testAddMembersAgain() throws Exception {
+ Set<String> members = new HashSet<String>();
+ Group grp = createGroup();
+ for (int i=0; i<NUM_USERS; i++) {
+ User usr = createUser();
+ grp.addMember(usr);
+ members.add(usr.getID());
+ }
+ root.commit();
+
+ for (String id : members) {
+ assertFalse(grp.addMember(userMgr.getAuthorizable(id)));
+ }
+ }
+
+ @Test
+ public void testAddMembersAgainOnMembershipProvider() throws Exception {
+ Set<String> memberPaths = new HashSet<String>();
+ Group grp = createGroup();
+ for (int i=0; i<NUM_USERS; i++) {
+ User usr = createUser();
+ grp.addMember(usr);
+ memberPaths.add(usr.getPath());
+ }
+ root.commit();
+
+
+ MembershipProvider mp = userMgr.getMembershipProvider();
+ Tree groupTree = root.getTree(grp.getPath());
+ for (String path : memberPaths) {
+ Tree memberTree = root.getTree(path);
+ assertFalse(mp.addMember(groupTree, memberTree));
+ assertFalse(mp.addMember(groupTree, TreeUtil.getString(memberTree,
JcrConstants.JCR_UUID)));
+ }
+ }
+
private User createUser() throws RepositoryException {
String userId = "testUser" + testUsers.size();
User usr = userMgr.createUser(userId, "pw");