You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2009/06/24 10:38:31 UTC

svn commit: r787942 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user: AuthorizableImpl.java GroupImpl.java

Author: angela
Date: Wed Jun 24 08:38:30 2009
New Revision: 787942

URL: http://svn.apache.org/viewvc?rev=787942&view=rev
Log:
JCR-2135: UserManagement: make membership a weakreferences

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java?rev=787942&r1=787941&r2=787942&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/AuthorizableImpl.java Wed Jun 24 08:38:30 2009
@@ -333,7 +333,7 @@
             return false;
         }
 
-        Value toRemove = getSession().getValueFactory().createValue(group.getNode());
+        Value toRemove = getSession().getValueFactory().createValue(group.getNode(), true);
         PropertyImpl property = node.getProperty(P_GROUPS);
         List valList = new ArrayList(Arrays.asList(property.getValues()));
         if (valList.remove(toRemove)) {

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java?rev=787942&r1=787941&r2=787942&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/user/GroupImpl.java Wed Jun 24 08:38:30 2009
@@ -168,7 +168,7 @@
      * @throws RepositoryException If an error occurs while collecting the members.
      */
     private Collection getMembers(boolean includeIndirect) throws RepositoryException {
-        PropertyIterator itr = getNode().getWeakReferences();
+        PropertyIterator itr = getNode().getWeakReferences(getSession().getJCRName(P_GROUPS));
         Collection members = new HashSet((int) itr.getSize());
         while (itr.hasNext()) {
             NodeImpl n = (NodeImpl) itr.nextProperty().getParent();
@@ -182,6 +182,10 @@
             } else if (n.isNodeType(NT_REP_USER)) {
                 User user = userManager.createUser(n);
                 members.add(user);
+            } else {
+                // weak-ref property 'rep:groups' that doesn't reside under an
+                // authorizable node -> doesn't represent a member of this group.
+                log.debug("Undefined reference to group '" + getID() + "' -> Not included in member set.");
             }
         }
         return members;