[CalendarServer-changes] [1628] CalendarServer/branches/users/cdaboo/more-od-schema-1617/ twistedcaldav/directory

source_changes at macosforge.org source_changes at macosforge.org
Thu Jun 28 10:22:15 PDT 2007


Revision: 1628
          http://trac.macosforge.org/projects/calendarserver/changeset/1628
Author:   cdaboo at apple.com
Date:     2007-06-28 10:22:14 -0700 (Thu, 28 Jun 2007)

Log Message:
-----------
Change 'lockedProxy()' to 'hasEditableMembership()' etc.

Modified Paths:
--------------
    CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/calendaruserproxy.py
    CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/directory.py
    CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/principal.py
    CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/test/test_principal.py

Modified: CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/calendaruserproxy.py	2007-06-28 16:39:39 UTC (rev 1627)
+++ CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/calendaruserproxy.py	2007-06-28 17:22:14 UTC (rev 1628)
@@ -130,15 +130,15 @@
         assert isinstance(property, davxml.WebDAVElement)
 
         if property.qname() == (dav_namespace, "group-member-set"):
-            if self.parent.lockedProxies():
+            if self.hasEditableMembership():
+                return self.setGroupMemberSet(property, request)
+            else:
                 raise HTTPError(
                     StatusResponse(
                         responsecode.FORBIDDEN,
                         "Proxies cannot be changed."
                     )
                 )
-            else:
-                return self.setGroupMemberSet(property, request)
 
         return super(CalendarUserProxyPrincipalResource, self).writeProperty(property, request)
 
@@ -219,7 +219,7 @@
                 """Principal UID: %s\n"""          % (self.principalUID(),),
                 """Principal URL: %s\n"""          % (link(self.principalURL()),),
                 """\nAlternate URIs:\n"""          , format_list(self.alternateURIs()),
-                """\nGroup members (%s):\n"""      % ({False:"Unlocked", True:"Locked"}[self.parent.lockedProxies()]), format_list(link(p.principalURL()) for p in self.groupMembers()),
+                """\nGroup members (%s):\n"""      % ({False:"Locked", True:"Editable"}[self.hasEditableMembership()]), format_list(link(p.principalURL()) for p in self.groupMembers()),
                 """\nGroup memberships:\n"""       , format_list(link(p.principalURL()) for p in self.groupMemberships()),
                 """</pre></blockquote></div>""",
                 output
@@ -254,24 +254,25 @@
         return self.parent.principalCollections()
 
     def groupMembers(self):
-        # If parent principal has fixed set of proxies use those
-        if self.parent.lockedProxies():
+        if self.hasEditableMembership():
+            # Get member GUIDs from database and map to principal resources
+            members = self._index().getMembers(self.guid)
+            return [self.pcollection.principalForGUID(guid) for guid in members]
+        else:
             # Fixed proxies are only for read-write - the read-only list is empty
             if self.proxyType == "calendar-proxy-write":
                 return self.parent.proxies()
             else:
                 return ()
-        else:
-            # Get member GUIDs and map to principal resources
-            members = self._index().getMembers(self.guid)
-            return [self.pcollection.principalForGUID(guid) for guid in members]
 
     def groupMemberships(self):
         # Get membership GUIDs and map to principal resources
         memberships = self._index().getMemberships(self.guid)
         return [self.pcollection.principalForGUID(guid) for guid in memberships]
 
-
+    def hasEditableMembership(self):
+        return self.parent.hasEditableProxyMembership()
+        
 class CalendarUserProxyDatabase(AbstractSQLDatabase):
     """
     A database to maintain calendar user proxy group memberships.

Modified: CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/directory.py
===================================================================
--- CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/directory.py	2007-06-28 16:39:39 UTC (rev 1627)
+++ CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/directory.py	2007-06-28 17:22:14 UTC (rev 1628)
@@ -201,8 +201,8 @@
     def proxyFor(self):
         return ()
 
-    def lockedProxies(self):
-        return self.recordType in (DirectoryService.recordType_resources, DirectoryService.recordType_locations)
+    def hasEditableProxyMembership(self):
+        return self.recordType in (DirectoryService.recordType_users, DirectoryService.recordType_groups)
 
     def verifyCredentials(self, credentials):
         return False

Modified: CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/principal.py
===================================================================
--- CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/principal.py	2007-06-28 16:39:39 UTC (rev 1627)
+++ CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/principal.py	2007-06-28 17:22:14 UTC (rev 1628)
@@ -471,8 +471,8 @@
     def proxies(self):
         return self._getRelatives("proxies")
 
-    def lockedProxies(self):
-        return self.record.lockedProxies()
+    def hasEditableProxyMembership(self):
+        return self.record.hasEditableProxyMembership()
 
     def scheduleInbox(self, request):
         home = self._calendarHome()

Modified: CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/test/test_principal.py
===================================================================
--- CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/test/test_principal.py	2007-06-28 16:39:39 UTC (rev 1627)
+++ CalendarServer/branches/users/cdaboo/more-od-schema-1617/twistedcaldav/directory/test/test_principal.py	2007-06-28 17:22:14 UTC (rev 1628)
@@ -235,7 +235,7 @@
         """
         for provisioningResource, recordType, recordResource, record in self._allRecords():
             self.failUnless(set(record.proxies()).issubset(set(r.record for r in recordResource.proxies())))
-            self.assertEqual(record.lockedProxies(), recordResource.lockedProxies())
+            self.assertEqual(record.hasEditableProxyMembership(), recordResource.hasEditableProxyMembership())
 
     def test_principalUID(self):
         """

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


More information about the calendarserver-changes mailing list