[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