[CalendarServer-changes] [775] CalendarServer/trunk/twistedcaldav/directory

source_changes at macosforge.org source_changes at macosforge.org
Fri Dec 8 15:34:10 PST 2006


Revision: 775
          http://trac.macosforge.org/projects/calendarserver/changeset/775
Author:   wsanchez at apple.com
Date:     2006-12-08 15:34:10 -0800 (Fri, 08 Dec 2006)

Log Message:
-----------
Any principal can have members.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/directory/sqldb.py
    CalendarServer/trunk/twistedcaldav/directory/xmlaccountsparser.py

Modified: CalendarServer/trunk/twistedcaldav/directory/sqldb.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/sqldb.py	2006-12-08 23:29:47 UTC (rev 774)
+++ CalendarServer/trunk/twistedcaldav/directory/sqldb.py	2006-12-08 23:34:10 UTC (rev 775)
@@ -108,11 +108,10 @@
             groups = set()
             calendarUserAddresses = set()
     
-            # See if we have a group
-            if recordType == "group":
-                rowiter = self._db_execute("select MEMBER_RECORD_TYPE, MEMBER_UID from GROUPS where GRPUID = :1", uid)
-                for row in rowiter:
-                    members.add((row[0], row[1]))
+            # See if we have members
+            rowiter = self._db_execute("select MEMBER_RECORD_TYPE, MEMBER_UID from GROUPS where GRPUID = :1", uid)
+            for row in rowiter:
+                members.add((row[0], row[1]))
                 
             # See if we are a member of a group
             rowiter = self._db_execute("select GRPUID from GROUPS where MEMBER_UID = :1", uid)
@@ -146,11 +145,10 @@
         groups = set()
         calendarUserAddresses = set()
 
-        # See if we have a group
-        if recordType == "group":
-            rowiter = self._db_execute("select MEMBER_RECORD_TYPE, MEMBER_UID from GROUPS where GRPUID = :1", uid)
-            for row in rowiter:
-                members.add((row[0], row[1]))
+        # See if we have members
+        rowiter = self._db_execute("select MEMBER_RECORD_TYPE, MEMBER_UID from GROUPS where GRPUID = :1", uid)
+        for row in rowiter:
+            members.add((row[0], row[1]))
             
         # See if we are a member of a group
         rowiter = self._db_execute("select GRPUID from GROUPS where MEMBER_UID = :1", uid)
@@ -179,15 +177,14 @@
             """, recordType, uid, password, name, canproxy
         )
         
-        # Check for group
-        if recordType == "group":
-            for memberRecordType, memberShortName in record.members:
-                self._db_execute(
-                    """
-                    insert into GROUPS (GRPUID, MEMBER_RECORD_TYPE, MEMBER_UID)
-                    values (:1, :2, :3)
-                    """, uid, memberRecordType, memberShortName
-                )
+        # Check for members
+        for memberRecordType, memberShortName in record.members:
+            self._db_execute(
+                """
+                insert into GROUPS (GRPUID, MEMBER_RECORD_TYPE, MEMBER_UID)
+                values (:1, :2, :3)
+                """, uid, memberRecordType, memberShortName
+            )
                 
         # CUAddress
         for cuaddr in record.calendarUserAddresses:

Modified: CalendarServer/trunk/twistedcaldav/directory/xmlaccountsparser.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/xmlaccountsparser.py	2006-12-08 23:29:47 UTC (rev 774)
+++ CalendarServer/trunk/twistedcaldav/directory/xmlaccountsparser.py	2006-12-08 23:34:10 UTC (rev 775)
@@ -83,6 +83,13 @@
         if node.hasAttribute(ATTRIBUTE_REALM):
             self.realm = node.getAttribute(ATTRIBUTE_REALM)
 
+        def updateMembership(group):
+            # Update group membership
+            for recordType, shortName in group.members:
+                item = self.items[recordType].get(shortName, None)
+                if item is not None:
+                    item.groups.add(group.uid)
+
         for child in node._get_childNodes():
             if child._get_localName() in (ELEMENT_USER, ELEMENT_GROUP, ELEMENT_RESOURCE):
                 if child.hasAttribute(ATTRIBUTE_REPEAT):
@@ -102,19 +109,10 @@
                     for i in xrange(1, repeat+1):
                         newprincipal = principal.repeat(i)
                         self.items[recordType][newprincipal.uid] = newprincipal
-                        if recordType == "group":
-                            self._updateMembership(newprincipal)
+                        updateMembership(newprincipal)
                 else:
                     self.items[recordType][principal.uid] = principal
-                    if recordType == "group":
-                        self._updateMembership(principal)
-
-    def _updateMembership(self, group):
-        # Update group membership
-        for recordType, shortName in group.members:
-            item = self.items[recordType].get(shortName, None)
-            if item is not None:
-                item.groups.add(group.uid)
+                    updateMembership(principal)
         
 class XMLAccountRecord (object):
     """

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061208/cf42ba10/attachment.html


More information about the calendarserver-changes mailing list