[CalendarServer-changes] [12756] twext/trunk/twext/who/opendirectory
source_changes at macosforge.org
source_changes at macosforge.org
Wed Feb 26 13:19:21 PST 2014
Revision: 12756
http://trac.calendarserver.org//changeset/12756
Author: sagen at apple.com
Date: 2014-02-26 13:19:21 -0800 (Wed, 26 Feb 2014)
Log Message:
-----------
Adds members() to opendirectory
Modified Paths:
--------------
twext/trunk/twext/who/opendirectory/_constants.py
twext/trunk/twext/who/opendirectory/_service.py
Modified: twext/trunk/twext/who/opendirectory/_constants.py
===================================================================
--- twext/trunk/twext/who/opendirectory/_constants.py 2014-02-26 21:17:32 UTC (rev 12755)
+++ twext/trunk/twext/who/opendirectory/_constants.py 2014-02-26 21:19:21 UTC (rev 12756)
@@ -45,8 +45,15 @@
metaRecordName.description = u"meta record name"
metaRecordName.multiValue = False
+ memberUIDs = NamedConstant()
+ memberUIDs.description = u"member UIDs (excluding groups)"
+ memberUIDs.multiValue = True
+ nestedGroupsUIDs = NamedConstant()
+ nestedGroupsUIDs.description = u"nested group member UIDs"
+ nestedGroupsUIDs.multiValue = True
+
#
# OD constants
#
@@ -159,6 +166,12 @@
metaRecordName = ValueConstant(u"dsAttrTypeStandard:AppleMetaRecordName")
metaRecordName.fieldName = FieldName.metaRecordName
+ groupMembers = ValueConstant(u"dsAttrTypeStandard:GroupMembers")
+ groupMembers.fieldName = FieldName.memberUIDs
+
+ nestedGroups = ValueConstant(u"dsAttrTypeStandard:NestedGroups")
+ nestedGroups.fieldName = FieldName.nestedGroupsUIDs
+
# # Single value fields
# AdminLimits = ValueConstant(u"dsAttrTypeStandard:AdminLimits")
# AppleAliasData = ValueConstant(u"dsAttrTypeStandard:AppleAliasData")
Modified: twext/trunk/twext/who/opendirectory/_service.py
===================================================================
--- twext/trunk/twext/who/opendirectory/_service.py 2014-02-26 21:17:32 UTC (rev 12755)
+++ twext/trunk/twext/who/opendirectory/_service.py 2014-02-26 21:19:21 UTC (rev 12756)
@@ -634,7 +634,7 @@
"GUID field is required.", fields
)
- fields[service.fieldName.uid] = unicode(guid)
+ fields[service.fieldName.uid] = unicode(guid).upper()
super(DirectoryRecord, self).__init__(service, fields)
self._odRecord = odRecord
@@ -720,6 +720,17 @@
+ @inlineCallbacks
+ def members(self):
+ members = set()
+ for uid in getattr(self, "memberUIDs", ()):
+ members.add((yield self.service.recordWithUID(uid)))
+ for uid in getattr(self, "nestedGroupsUIDs", ()):
+ members.add((yield self.service.recordWithUID(uid)))
+ returnValue(members)
+
+
+
class NoQOPDigestCredentialFactory(DigestCredentialFactory):
"""
DigestCredentialFactory without qop, to interop with OD.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140226/9860bef6/attachment-0001.html>
More information about the calendarserver-changes
mailing list