[CalendarServer-changes] [13748] CalendarServer/branches/users/gaya/groupsharee2/txdav

source_changes at macosforge.org source_changes at macosforge.org
Thu Jul 10 17:17:43 PDT 2014


Revision: 13748
          http://trac.calendarserver.org//changeset/13748
Author:   gaya at apple.com
Date:     2014-07-10 17:17:43 -0700 (Thu, 10 Jul 2014)
Log Message:
-----------
only use effectiveShareMode() for notifications and access privs

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/groupsharee2/txdav/caldav/datastore/sql.py
    CalendarServer/branches/users/gaya/groupsharee2/txdav/common/datastore/sql.py

Modified: CalendarServer/branches/users/gaya/groupsharee2/txdav/caldav/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/groupsharee2/txdav/caldav/datastore/sql.py	2014-07-10 23:30:57 UTC (rev 13747)
+++ CalendarServer/branches/users/gaya/groupsharee2/txdav/caldav/datastore/sql.py	2014-07-11 00:17:43 UTC (rev 13748)
@@ -1754,7 +1754,6 @@
     #===============================================================================
     # Group sharing
     #===============================================================================
-
     @inlineCallbacks
     def reconcileGroupSharee(self, groupUID):
         """
@@ -1891,31 +1890,23 @@
         returnValue(changed)
 
 
-    def effectiveShareMode(self):
-        return self._effectiveShareMode(
-            self._bindMode, self.ownerHome()._resourceID,
-            self._resourceID, self._txn
-        )
-
-
-    @classmethod
     @inlineCallbacks
-    def _effectiveShareMode(cls, bindMode, homeID, childID, txn):
-        if bindMode == _BIND_MODE_GROUP_WRITE:
+    def effectiveShareMode(self):
+        if self._bindMode == _BIND_MODE_GROUP_WRITE:
             returnValue(_BIND_MODE_WRITE)
-        elif bindMode in (_BIND_MODE_GROUP, _BIND_MODE_GROUP_READ):
+        elif self._bindMode in (_BIND_MODE_GROUP, _BIND_MODE_GROUP_READ):
             gs = schema.GROUP_SHAREE
             rows = yield Select(
                 [Max(gs.GROUP_BIND_MODE)], # _BIND_MODE_WRITE > _BIND_MODE_READ
                 From=gs,
-                Where=(gs.CALENDAR_HOME_ID == homeID).And(
-                    gs.CALENDAR_ID == childID
+                Where=(gs.CALENDAR_HOME_ID == self.ownerHome()._resourceID).And(
+                    gs.CALENDAR_ID == self._resourceID
                 )
-            ).on(txn)
+            ).on(self._txn)
             groupShareMode = rows[0][0]
             returnValue(groupShareMode)
         else:
-            returnValue(bindMode)
+            returnValue(self._bindMode)
 
 
     #

Modified: CalendarServer/branches/users/gaya/groupsharee2/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/groupsharee2/txdav/common/datastore/sql.py	2014-07-10 23:30:57 UTC (rev 13747)
+++ CalendarServer/branches/users/gaya/groupsharee2/txdav/common/datastore/sql.py	2014-07-11 00:17:43 UTC (rev 13748)
@@ -4749,7 +4749,7 @@
             "sharee": shareeView.viewerHome().uid(),
             "uid": shareeView.shareUID(),
             "status": shareeView.shareStatus() if notificationState is None else notificationState,
-            "access": shareeView.shareMode(),
+            "access": (yield shareeView.effectiveShareMode()),
             "ownerName": self.shareName(),
             "summary": displayname,
         }
@@ -5149,14 +5149,6 @@
 
         result = []
         for homeUID, homeRID, _ignore_resourceID, resourceName, bindMode, bindStatus, bindMessage in invitedRows:
-
-            # performance optimzation: don't instantiate viewer or viewer home
-            if bindMode in (_BIND_MODE_GROUP, _BIND_MODE_GROUP_READ, _BIND_MODE_GROUP_WRITE):
-                bindMode = yield self._effectiveShareMode(
-                    bindMode, homeRID,
-                    self._resourceID, self._txn
-                )
-
             invite = SharingInvitation(
                 resourceName,
                 self.ownerHome().name(),
@@ -5292,11 +5284,6 @@
         return self._bindMode
 
 
-    @classmethod
-    def _effectiveShareMode(cls, bindMode, homeID, childID, txn):
-        return bindMode
-
-
     def shareName(self):
         """
         This is a path like name for the resource within the home being shared. For object resource
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140710/cfbffa9d/attachment.html>


More information about the calendarserver-changes mailing list