[CalendarServer-changes] [13523] twext/trunk/twext/who

source_changes at macosforge.org source_changes at macosforge.org
Wed May 21 12:56:54 PDT 2014


Revision: 13523
          http://trac.calendarserver.org//changeset/13523
Author:   sagen at apple.com
Date:     2014-05-21 12:56:54 -0700 (Wed, 21 May 2014)
Log Message:
-----------
Adds locations/resources to OD constants

Modified Paths:
--------------
    twext/trunk/twext/who/opendirectory/__init__.py
    twext/trunk/twext/who/opendirectory/_constants.py
    twext/trunk/twext/who/opendirectory/_service.py
    twext/trunk/twext/who/opendirectory/test/test_service.py
    twext/trunk/twext/who/xml.py

Modified: twext/trunk/twext/who/opendirectory/__init__.py
===================================================================
--- twext/trunk/twext/who/opendirectory/__init__.py	2014-05-21 15:07:02 UTC (rev 13522)
+++ twext/trunk/twext/who/opendirectory/__init__.py	2014-05-21 19:56:54 UTC (rev 13523)
@@ -25,6 +25,7 @@
     "OpenDirectoryDataError",
     "DirectoryService",
     "NoQOPDigestCredentialFactory",
+    "RecordType",
 ]
 
 
@@ -34,3 +35,4 @@
     DirectoryService,
     NoQOPDigestCredentialFactory,
 )
+from ._constants import RecordType

Modified: twext/trunk/twext/who/opendirectory/_constants.py
===================================================================
--- twext/trunk/twext/who/opendirectory/_constants.py	2014-05-21 15:07:02 UTC (rev 13522)
+++ twext/trunk/twext/who/opendirectory/_constants.py	2014-05-21 19:56:54 UTC (rev 13523)
@@ -32,6 +32,21 @@
 # idirectory constants
 #
 
+class RecordType(Names):
+
+    user = NamedConstant()
+    user.description = u"user"
+
+    group = NamedConstant()
+    group.description = u"group"
+
+    location = NamedConstant()
+    location.description = u"location"
+
+    resource = NamedConstant()
+    resource.description = u"resource"
+
+
 class FieldName(Names):
     searchPath = NamedConstant()
     searchPath.description = u"search path"
@@ -71,6 +86,12 @@
     group = ValueConstant(u"dsRecTypeStandard:Groups")
     group.recordType = BaseRecordType.group
 
+    location = ValueConstant(u"dsRecTypeStandard:Locations")
+    location.recordType = RecordType.location
+
+    resource = ValueConstant(u"dsRecTypeStandard:Resources")
+    resource.recordType = RecordType.resource
+
     # accessControl = ValueConstant(u"dsRecTypeStandard:AccessControls")
     # afpServer = ValueConstant(u"dsRecTypeStandard:AFPServer")
     # userAlias = ValueConstant(u"dsRecTypeStandard:AFPUserAliases")
@@ -92,7 +113,6 @@
     # hostServices = ValueConstant(u"dsRecTypeStandard:HostServices")
     # host = ValueConstant(u"dsRecTypeStandard:Hosts")
     # ldapServer = ValueConstant(u"dsRecTypeStandard:LDAPServer")
-    # location = ValueConstant(u"dsRecTypeStandard:Locations")
     # machine = ValueConstant(u"dsRecTypeStandard:Machines")
     # map = ValueConstant(u"dsRecTypeStandard:Maps")
     # meta = ValueConstant(u"dsRecTypeStandard:AppleMetaRecord")
@@ -115,7 +135,6 @@
     # printer = ValueConstant(u"dsRecTypeStandard:Printers")
     # protocol = ValueConstant(u"dsRecTypeStandard:Protocols")
     # qtsServer = ValueConstant(u"dsRecTypeStandard:QTSServer")
-    # resource = ValueConstant(u"dsRecTypeStandard:Resources")
     # rpc = ValueConstant(u"dsRecTypeStandard:RPC")
     # smbServer = ValueConstant(u"dsRecTypeStandard:SMBServer")
     # server = ValueConstant(u"dsRecTypeStandard:Server")

Modified: twext/trunk/twext/who/opendirectory/_service.py
===================================================================
--- twext/trunk/twext/who/opendirectory/_service.py	2014-05-21 15:07:02 UTC (rev 13522)
+++ twext/trunk/twext/who/opendirectory/_service.py	2014-05-21 19:56:54 UTC (rev 13523)
@@ -400,9 +400,9 @@
         """
 
         if local:
+            node = self.localNode
+        else:
             node = self.node
-        else:
-            node = self.localNode
 
         queryString, recordTypes = (
             self._queryStringAndRecordTypesFromExpression(expression)
@@ -526,9 +526,9 @@
                 queryValue = unicode(expression.fieldValue)
 
         if local:
+            node = self.localNode
+        else:
             node = self.node
-        else:
-            node = self.localNode
 
         query, error = ODQuery.queryWithNode_forRecordTypes_attribute_matchType_queryValues_returnAttributes_maximumResults_error_(
             node,

Modified: twext/trunk/twext/who/opendirectory/test/test_service.py
===================================================================
--- twext/trunk/twext/who/opendirectory/test/test_service.py	2014-05-21 15:07:02 UTC (rev 13522)
+++ twext/trunk/twext/who/opendirectory/test/test_service.py	2014-05-21 19:56:54 UTC (rev 13523)
@@ -78,7 +78,14 @@
             queryString, recordTypes = service._queryStringAndRecordTypesFromExpression(expression)
             self.assertEquals(
                 recordTypes,
-                set([u"dsRecTypeStandard:Groups", u"dsRecTypeStandard:Users"])
+                set(
+                    [
+                        u"dsRecTypeStandard:Users",
+                        u"dsRecTypeStandard:Groups",
+                        u"dsRecTypeStandard:Locations",
+                        u"dsRecTypeStandard:Resources",
+                    ]
+                )
             )
             self.assertEquals(
                 queryString,
@@ -101,7 +108,14 @@
         queryString, recordTypes = service._queryStringAndRecordTypesFromExpression(expression)
         self.assertEquals(
             recordTypes,
-            set([u"dsRecTypeStandard:Groups", u"dsRecTypeStandard:Users"])
+            set(
+                [
+                    u"dsRecTypeStandard:Users",
+                    u"dsRecTypeStandard:Groups",
+                    u"dsRecTypeStandard:Locations",
+                    u"dsRecTypeStandard:Resources",
+                ]
+            )
         )
         self.assertEquals(
             queryString,
@@ -125,7 +139,14 @@
         queryString, recordTypes = service._queryStringAndRecordTypesFromExpression(expression)
         self.assertEquals(
             recordTypes,
-            set([u"dsRecTypeStandard:Groups", u"dsRecTypeStandard:Users"])
+            set(
+                [
+                    u"dsRecTypeStandard:Users",
+                    u"dsRecTypeStandard:Groups",
+                    u"dsRecTypeStandard:Locations",
+                    u"dsRecTypeStandard:Resources",
+                ]
+            )
         )
         self.assertEquals(
             queryString,
@@ -152,7 +173,12 @@
         queryString, recordTypes = service._queryStringAndRecordTypesFromExpression(expression)
         self.assertEquals(
             recordTypes,
-            set([u"dsRecTypeStandard:Groups", u"dsRecTypeStandard:Users"])
+            set(
+                [
+                    u"dsRecTypeStandard:Groups", u"dsRecTypeStandard:Users",
+                    u"dsRecTypeStandard:Locations", u"dsRecTypeStandard:Resources",
+                ]
+            )
         )
         self.assertEquals(
             queryString,
@@ -199,7 +225,14 @@
         queryString, recordTypes = service._queryStringAndRecordTypesFromExpression(expression)
         self.assertEquals(
             recordTypes,
-            set([u"dsRecTypeStandard:Groups", u"dsRecTypeStandard:Users"])
+            set(
+                [
+                    u"dsRecTypeStandard:Users",
+                    u"dsRecTypeStandard:Groups",
+                    u"dsRecTypeStandard:Locations",
+                    u"dsRecTypeStandard:Resources",
+                ]
+            )
         )
         self.assertEquals(
             queryString,
@@ -233,7 +266,14 @@
         queryString, recordTypes = service._queryStringAndRecordTypesFromExpression(expression)
         self.assertEquals(
             recordTypes,
-            set([u"dsRecTypeStandard:Groups", u"dsRecTypeStandard:Users"])
+            set(
+                [
+                    u"dsRecTypeStandard:Users",
+                    u"dsRecTypeStandard:Groups",
+                    u"dsRecTypeStandard:Locations",
+                    u"dsRecTypeStandard:Resources",
+                ]
+            )
         )
         self.assertEquals(
             queryString,
@@ -338,8 +378,17 @@
             Operand.OR
         )
         queryString, recordTypes = service._queryStringAndRecordTypesFromExpression(expression)
-        self.assertEquals(set(recordTypes), set([u"dsRecTypeStandard:Groups"]))
         self.assertEquals(
+            set(recordTypes),
+            set(
+                [
+                    u"dsRecTypeStandard:Groups",
+                    u"dsRecTypeStandard:Locations",
+                    u"dsRecTypeStandard:Resources",
+                ]
+            )
+        )
+        self.assertEquals(
             queryString,
             u"("
                 u"|(dsAttrTypeStandard:RecordName=xxxxx)"

Modified: twext/trunk/twext/who/xml.py
===================================================================
--- twext/trunk/twext/who/xml.py	2014-05-21 15:07:02 UTC (rev 13522)
+++ twext/trunk/twext/who/xml.py	2014-05-21 19:56:54 UTC (rev 13523)
@@ -495,6 +495,8 @@
 
                         for value in values:
                             subNode = XMLElement(tag)
+                            if isinstance(value, UUID):
+                                value = str(value)
                             subNode.text = value
                             recordNode.append(subNode)
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140521/d47bede9/attachment-0001.html>


More information about the calendarserver-changes mailing list