[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