[CalendarServer-changes] [10310] CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/ datastore/sql.py

source_changes at macosforge.org source_changes at macosforge.org
Thu Jan 17 16:00:14 PST 2013


Revision: 10310
          http://trac.calendarserver.org//changeset/10310
Author:   gaya at apple.com
Date:     2013-01-17 16:00:14 -0800 (Thu, 17 Jan 2013)
Log Message:
-----------
fix sharee shared group members

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py

Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py	2013-01-17 22:34:40 UTC (rev 10309)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py	2013-01-18 00:00:14 UTC (rev 10310)
@@ -934,12 +934,18 @@
     @inlineCallbacks
     def _allColumnsWithParent(cls, parent): #@NoSelf
 
-        result = yield super(AddressBookObject, cls)._allColumnsWithParent(parent)
+        ownerGroup = yield parent.ownerGroup()
+        if ownerGroup:
+            objectIDs = yield ownerGroup._allGroupObjectIDs()
+            rows = (yield cls._abObjectColumnsWithResourceIDsQuery(cls._allColumns, objectIDs).on(
+                parent._txn, resourceIDs=objectIDs)) if objectIDs else []
+        else:
+            rows = yield super(AddressBookObject, cls)._allColumnsWithParent(parent)
+            # add group vCard for shared address books
+            if not parent.owned():
+                rows.append((yield parent._groupForSharedAddressBookRow()))
 
-        # add group vCard for shared address books
-        if not parent.owned():
-            result.append((yield parent._groupForSharedAddressBookRow()))
-        returnValue(result)
+        returnValue(rows)
 
 
     @classmethod
@@ -954,13 +960,19 @@
     @inlineCallbacks
     def _allColumnsWithParentAndNames(cls, parent, names): #@NoSelf
 
-        result = yield super(AddressBookObject, cls)._allColumnsWithParentAndNames(parent, names)
+        ownerGroup = yield parent.ownerGroup()
+        if ownerGroup:
+            objectIDs = yield parent._allAddressBookObjectIDs()
+            rows = (yield cls._allColumnsWithResourceIDsAndNamesQuery(objectIDs, names).on(
+                parent._txn, resourceIDs=objectIDs, names=names)) if objectIDs else []
+        else:
+            rows = yield super(AddressBookObject, cls)._allColumnsWithParentAndNames(parent, names)
 
-        # add group vCard for shared address books
-        if not parent.owned() and (yield parent._groupForSharedAddressBookName()) in names:
-            result.append((yield parent._groupForSharedAddressBookRow(parent)))
+            # add group vCard for shared address books
+            if not parent.owned() and (yield parent._groupForSharedAddressBookName()) in names:
+                rows.append((yield parent._groupForSharedAddressBookRow(parent)))
 
-        returnValue(result)
+        returnValue(rows)
 
 
     @inlineCallbacks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130117/82b577de/attachment.html>


More information about the calendarserver-changes mailing list