<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[12165] twext/trunk/twext/who/opendirectory</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.calendarserver.org//changeset/12165">12165</a></dd>
<dt>Author</dt> <dd>wsanchez@apple.com</dd>
<dt>Date</dt> <dd>2013-12-19 19:54:46 -0800 (Thu, 19 Dec 2013)</dd>
</dl>
<h3>Log Message</h3>
<pre>Move constants to a separate file, add in loads of commented out constants.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#twexttrunktwextwhoopendirectory_servicepy">twext/trunk/twext/who/opendirectory/_service.py</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#twexttrunktwextwhoopendirectory_constantspy">twext/trunk/twext/who/opendirectory/_constants.py</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="twexttrunktwextwhoopendirectory_constantspy"></a>
<div class="addfile"><h4>Added: twext/trunk/twext/who/opendirectory/_constants.py (0 => 12165)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/opendirectory/_constants.py         (rev 0)
+++ twext/trunk/twext/who/opendirectory/_constants.py        2013-12-20 03:54:46 UTC (rev 12165)
</span><span class="lines">@@ -0,0 +1,429 @@
</span><ins>+# -*- test-case-name: twext.who.opendirectory.test.test_service -*-
+##
+# Copyright (c) 2013 Apple Inc. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##
+
+"""
+OpenDirectory constants.
+"""
+
+from twisted.python.constants import (
+ Names, NamedConstant, Values, ValueConstant
+)
+
+from ..idirectory import (
+ FieldName as BaseFieldName, RecordType as BaseRecordType
+)
+from ..expression import MatchType
+
+
+#
+# idirectory constants
+#
+
+class FieldName(Names):
+ searchPath = NamedConstant()
+ searchPath.description = u"search path"
+ searchPath.multiValue = False
+
+ metaNodeLocation = NamedConstant()
+ metaNodeLocation.description = u"source OD node"
+ metaNodeLocation.multiValue = False
+
+ metaRecordName = NamedConstant()
+ metaRecordName.description = u"meta record name"
+ metaRecordName.multiValue = False
+
+
+
+#
+# OD constants
+#
+
+class ODSearchPath(Values):
+ local = ValueConstant(u"/Local/Default")
+ search = ValueConstant(u"/Search")
+
+
+
+class ODRecordType(Values):
+ user = ValueConstant(u"dsRecTypeStandard:Users")
+ user.recordType = BaseRecordType.user
+
+ group = ValueConstant(u"dsRecTypeStandard:Groups")
+ group.recordType = BaseRecordType.group
+
+ # accessControl = ValueConstant(u"dsRecTypeStandard:AccessControls")
+ # afpServer = ValueConstant(u"dsRecTypeStandard:AFPServer")
+ # userAlias = ValueConstant(u"dsRecTypeStandard:AFPUserAliases")
+ # alias = ValueConstant(u"dsRecTypeStandard:Aliases")
+ # augment = ValueConstant(u"dsRecTypeStandard:Augments")
+ # autoMount = ValueConstant(u"dsRecTypeStandard:Automount")
+ # autoMountMap = ValueConstant(u"dsRecTypeStandard:AutomountMap")
+ # autoServerSetup = ValueConstant(u"dsRecTypeStandard:AutoServerSetup")
+ # bootp = ValueConstant(u"dsRecTypeStandard:Bootp")
+ # certificateAuthority = ValueConstant(u"dsRecTypeStandard:CertificateAuthorities")
+ # computerList = ValueConstant(u"dsRecTypeStandard:ComputerLists")
+ # computerGroup = ValueConstant(u"dsRecTypeStandard:ComputerGroups")
+ # computer = ValueConstant(u"dsRecTypeStandard:Computers")
+ # config = ValueConstant(u"dsRecTypeStandard:Config")
+ # ethernet = ValueConstant(u"dsRecTypeStandard:Ethernets")
+ # fileMakerServer = ValueConstant(u"dsRecTypeStandard:FileMakerServers")
+ # ftpServer = ValueConstant(u"dsRecTypeStandard:FTPServer")
+ # groupAlias = ValueConstant(u"dsRecTypeStandard:GroupAliases")
+ # 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")
+ # mount = ValueConstant(u"dsRecTypeStandard:Mounts")
+ # neighborhood = ValueConstant(u"dsRecTypeStandard:Neighborhoods")
+ # nfs = ValueConstant(u"dsRecTypeStandard:NFS")
+ # netDomain = ValueConstant(u"dsRecTypeStandard:NetDomains")
+ # netGroup = ValueConstant(u"dsRecTypeStandard:NetGroups")
+ # network = ValueConstant(u"dsRecTypeStandard:Networks")
+ # passwordServer = ValueConstant(u"dsRecTypeStandard:PasswordServer")
+ # person = ValueConstant(u"dsRecTypeStandard:People")
+ # place = ValueConstant(u"dsRecTypeStandard:Places")
+ # presetComputer = ValueConstant(u"dsRecTypeStandard:PresetComputers")
+ # presetComputerGroup = ValueConstant(u"dsRecTypeStandard:PresetComputerGroups")
+ # presetComputerList = ValueConstant(u"dsRecTypeStandard:PresetComputerLists")
+ # presetGroup = ValueConstant(u"dsRecTypeStandard:PresetGroups")
+ # presetUser = ValueConstant(u"dsRecTypeStandard:PresetUsers")
+ # printService = ValueConstant(u"dsRecTypeStandard:PrintService")
+ # printServerUser = ValueConstant(u"dsRecTypeStandard:PrintServiceUser")
+ # 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")
+ # service = ValueConstant(u"dsRecTypeStandard:Services")
+ # sharePoint = ValueConstant(u"dsRecTypeStandard:SharePoints")
+ # userAlias = ValueConstant(u"dsRecTypeStandard:UserAliases")
+ # webServer = ValueConstant(u"dsRecTypeStandard:WebServer")
+
+
+ @classmethod
+ def fromRecordType(cls, recordType):
+ if not hasattr(cls, "_recordTypeByRecordType"):
+ cls._recordTypeByRecordType = dict((
+ (recordType.recordType, recordType)
+ for recordType in cls.iterconstants()
+ if hasattr(recordType, "recordType")
+ ))
+
+ return cls._recordTypeByRecordType.get(recordType, None)
+
+
+
+class ODAttribute(Values):
+ searchPath = ValueConstant(u"dsAttrTypeStandard:SearchPath")
+ searchPath.fieldName = FieldName.searchPath
+
+ recordType = ValueConstant(u"dsAttrTypeStandard:RecordType")
+ recordType.fieldName = BaseFieldName.recordType
+
+ # uid = ValueConstant(u"dsAttrTypeStandard:GeneratedUID")
+ # uid.fieldName = BaseFieldName.uid
+
+ guid = ValueConstant(u"dsAttrTypeStandard:GeneratedUID")
+ guid.fieldName = BaseFieldName.guid
+
+ shortName = ValueConstant(u"dsAttrTypeStandard:RecordName")
+ shortName.fieldName = BaseFieldName.shortNames
+
+ fullName = ValueConstant(u"dsAttrTypeStandard:RealName")
+ fullName.fieldName = BaseFieldName.fullNames
+
+ emailAddress = ValueConstant(u"dsAttrTypeStandard:EMailAddress")
+ emailAddress.fieldName = BaseFieldName.emailAddresses
+
+ metaNodeLocation = ValueConstant(u"dsAttrTypeStandard:AppleMetaNodeLocation")
+ metaNodeLocation.fieldName = FieldName.metaNodeLocation
+
+ metaRecordName = ValueConstant(u"dsAttrTypeStandard:AppleMetaRecordName")
+ metaRecordName.fieldName = FieldName.metaRecordName
+
+ # # Single value fields
+ # AdminLimits = ValueConstant(u"dsAttrTypeStandard:AdminLimits")
+ # AppleAliasData = ValueConstant(u"dsAttrTypeStandard:AppleAliasData")
+ # AlternateDatastoreLocation = ValueConstant(u"dsAttrTypeStandard:AlternateDatastoreLocation")
+ # AuthenticationHint = ValueConstant(u"dsAttrTypeStandard:AuthenticationHint")
+ # AttributeTypes = ValueConstant(u"dsAttrTypeStandard:AttributeTypes")
+ # AuthorityRevocationList = ValueConstant(u"dsAttrTypeStandard:AuthorityRevocationList")
+ # Birthday = ValueConstant(u"dsAttrTypeStandard:Birthday")
+ # BootFile = ValueConstant(u"dsAttrTypeStandard:BootFile")
+ # CACertificate = ValueConstant(u"dsAttrTypeStandard:CACertificate")
+ # Capabilities = ValueConstant(u"dsAttrTypeStandard:Capabilities")
+ # Capacity = ValueConstant(u"dsAttrTypeStandard:Capacity")
+ # Category = ValueConstant(u"dsAttrTypeStandard:Category")
+ # CertificateRevocationList = ValueConstant(u"dsAttrTypeStandard:CertificateRevocationList")
+ # Change = ValueConstant(u"dsAttrTypeStandard:Change")
+ # Comment = ValueConstant(u"dsAttrTypeStandard:Comment")
+ # ContactGUID = ValueConstant(u"dsAttrTypeStandard:ContactGUID")
+ # ContactPerson = ValueConstant(u"dsAttrTypeStandard:ContactPerson")
+ # CreationTimestamp = ValueConstant(u"dsAttrTypeStandard:CreationTimestamp")
+ # CrossCertificatePair = ValueConstant(u"dsAttrTypeStandard:CrossCertificatePair")
+ # DataStamp = ValueConstant(u"dsAttrTypeStandard:DataStamp")
+ # DNSDomain = ValueConstant(u"dsAttrTypeStandard:DNSDomain")
+ # DNSNameServer = ValueConstant(u"dsAttrTypeStandard:DNSNameServer")
+ # ENetAddress = ValueConstant(u"dsAttrTypeStandard:ENetAddress")
+ # Expire = ValueConstant(u"dsAttrTypeStandard:Expire")
+ # FirstName = ValueConstant(u"dsAttrTypeStandard:FirstName")
+ # HomeDirectoryQuota = ValueConstant(u"dsAttrTypeStandard:HomeDirectoryQuota")
+ # HomeDirectorySoftQuota = ValueConstant(u"dsAttrTypeStandard:HomeDirectorySoftQuota")
+ # HomeLocOwner = ValueConstant(u"dsAttrTypeStandard:HomeLocOwner")
+ # InetAlias = ValueConstant(u"dsAttrTypeStandard:InetAlias")
+ # KDCConfigData = ValueConstant(u"dsAttrTypeStandard:KDCConfigData")
+ # LastName = ValueConstant(u"dsAttrTypeStandard:LastName")
+ # LDAPSearchBaseSuffix = ValueConstant(u"dsAttrTypeStandard:LDAPSearchBaseSuffix")
+ # Location = ValueConstant(u"dsAttrTypeStandard:Location")
+ # MapGUID = ValueConstant(u"dsAttrTypeStandard:MapGUID")
+ # MCXFlags = ValueConstant(u"dsAttrTypeStandard:MCXFlags")
+ # MCXSettings = ValueConstant(u"dsAttrTypeStandard:MCXSettings")
+ # MailAttribute = ValueConstant(u"dsAttrTypeStandard:MailAttribute")
+ # MetaAutomountMap = ValueConstant(u"dsAttrTypeStandard:MetaAutomountMap")
+ # MiddleName = ValueConstant(u"dsAttrTypeStandard:MiddleName")
+ # ModificationTimestamp = ValueConstant(u"dsAttrTypeStandard:ModificationTimestamp")
+ # NeighborhoodAlias = ValueConstant(u"dsAttrTypeStandard:NeighborhoodAlias")
+ # NeighborhoodType = ValueConstant(u"dsAttrTypeStandard:NeighborhoodType")
+ # NetworkView = ValueConstant(u"dsAttrTypeStandard:NetworkView")
+ # NFSHomeDirectory = ValueConstant(u"dsAttrTypeStandard:NFSHomeDirectory")
+ # Note = ValueConstant(u"dsAttrTypeStandard:Note")
+ # Owner = ValueConstant(u"dsAttrTypeStandard:Owner")
+ # OwnerGUID = ValueConstant(u"dsAttrTypeStandard:OwnerGUID")
+ # Password = ValueConstant(u"dsAttrTypeStandard:Password")
+ # PasswordPlus = ValueConstant(u"dsAttrTypeStandard:PasswordPlus")
+ # PasswordPolicyOptions = ValueConstant(u"dsAttrTypeStandard:PasswordPolicyOptions")
+ # PasswordServerList = ValueConstant(u"dsAttrTypeStandard:PasswordServerList")
+ # PasswordServerLocation = ValueConstant(u"dsAttrTypeStandard:PasswordServerLocation")
+ # Picture = ValueConstant(u"dsAttrTypeStandard:Picture")
+ # Port = ValueConstant(u"dsAttrTypeStandard:Port")
+ # PresetUserIsAdmin = ValueConstant(u"dsAttrTypeStandard:PresetUserIsAdmin")
+ # PrimaryComputerGUID = ValueConstant(u"dsAttrTypeStandard:PrimaryComputerGUID")
+ # PrimaryComputerList = ValueConstant(u"dsAttrTypeStandard:PrimaryComputerList")
+ # PrimaryGroupID = ValueConstant(u"dsAttrTypeStandard:PrimaryGroupID")
+ # Printer1284DeviceID = ValueConstant(u"dsAttrTypeStandard:Printer1284DeviceID")
+ # PrinterLPRHost = ValueConstant(u"dsAttrTypeStandard:PrinterLPRHost")
+ # PrinterLPRQueue = ValueConstant(u"dsAttrTypeStandard:PrinterLPRQueue")
+ # PrinterMakeAndModel = ValueConstant(u"dsAttrTypeStandard:PrinterMakeAndModel")
+ # PrinterType = ValueConstant(u"dsAttrTypeStandard:PrinterType")
+ # PrinterURI = ValueConstant(u"dsAttrTypeStandard:PrinterURI")
+ # PrinterXRISupported = ValueConstant(u"dsAttrTypeStandard:PrinterXRISupported")
+ # PrintServiceInfoText = ValueConstant(u"dsAttrTypeStandard:PrintServiceInfoText")
+ # PrintServiceInfoXML = ValueConstant(u"dsAttrTypeStandard:PrintServiceInfoXML")
+ # PrintServiceUserData = ValueConstant(u"dsAttrTypeStandard:PrintServiceUserData")
+ # RealUserID = ValueConstant(u"dsAttrTypeStandard:RealUserID")
+ # RelativeDNPrefix = ValueConstant(u"dsAttrTypeStandard:RelativeDNPrefix")
+ # SMBAccountFlags = ValueConstant(u"dsAttrTypeStandard:SMBAccountFlags")
+ # SMBGroupRID = ValueConstant(u"dsAttrTypeStandard:SMBGroupRID")
+ # SMBHome = ValueConstant(u"dsAttrTypeStandard:SMBHome")
+ # SMBHomeDrive = ValueConstant(u"dsAttrTypeStandard:SMBHomeDrive")
+ # SMBKickoffTime = ValueConstant(u"dsAttrTypeStandard:SMBKickoffTime")
+ # SMBLogoffTime = ValueConstant(u"dsAttrTypeStandard:SMBLogoffTime")
+ # SMBLogonTime = ValueConstant(u"dsAttrTypeStandard:SMBLogonTime")
+ # SMBPrimaryGroupSID = ValueConstant(u"dsAttrTypeStandard:SMBPrimaryGroupSID")
+ # SMBPasswordLastSet = ValueConstant(u"dsAttrTypeStandard:SMBPasswordLastSet")
+ # SMBProfilePath = ValueConstant(u"dsAttrTypeStandard:SMBProfilePath")
+ # SMBRID = ValueConstant(u"dsAttrTypeStandard:SMBRID")
+ # SMBScriptPath = ValueConstant(u"dsAttrTypeStandard:SMBScriptPath")
+ # SMBSID = ValueConstant(u"dsAttrTypeStandard:SMBSID")
+ # SMBUserWorkstations = ValueConstant(u"dsAttrTypeStandard:SMBUserWorkstations")
+ # ServiceType = ValueConstant(u"dsAttrTypeStandard:ServiceType")
+ # SetupAssistantAdvertising = ValueConstant(u"dsAttrTypeStandard:SetupAssistantAdvertising")
+ # SetupAssistantAutoRegister = ValueConstant(u"dsAttrTypeStandard:SetupAssistantAutoRegister")
+ # SetupAssistantLocation = ValueConstant(u"dsAttrTypeStandard:SetupAssistantLocation")
+ # Occupation = ValueConstant(u"dsAttrTypeStandard:Occupation")
+ # TimeToLive = ValueConstant(u"dsAttrTypeStandard:TimeToLive")
+ # UniqueID = ValueConstant(u"dsAttrTypeStandard:UniqueID")
+ # UserCertificate = ValueConstant(u"dsAttrTypeStandard:UserCertificate")
+ # UserPKCS12Data = ValueConstant(u"dsAttrTypeStandard:UserPKCS12Data")
+ # UserShell = ValueConstant(u"dsAttrTypeStandard:UserShell")
+ # UserSMIMECertificate = ValueConstant(u"dsAttrTypeStandard:UserSMIMECertificate")
+ # VFSDumpFreq = ValueConstant(u"dsAttrTypeStandard:VFSDumpFreq")
+ # VFSLinkDir = ValueConstant(u"dsAttrTypeStandard:VFSLinkDir")
+ # VFSPassNo = ValueConstant(u"dsAttrTypeStandard:VFSPassNo")
+ # VFSType = ValueConstant(u"dsAttrTypeStandard:VFSType")
+ # WeblogURI = ValueConstant(u"dsAttrTypeStandard:WeblogURI")
+ # XMLPlist = ValueConstant(u"dsAttrTypeStandard:XMLPlist")
+ # ProtocolNumber = ValueConstant(u"dsAttrTypeStandard:ProtocolNumber")
+ # RPCNumber = ValueConstant(u"dsAttrTypeStandard:RPCNumber")
+ # NetworkNumber = ValueConstant(u"dsAttrTypeStandard:NetworkNumber")
+
+ # # Multi-value fields
+ # AccessControlEntry = ValueConstant(u"dsAttrTypeStandard:AccessControlEntry")
+ # AddressLine1 = ValueConstant(u"dsAttrTypeStandard:AddressLine1")
+ # AddressLine2 = ValueConstant(u"dsAttrTypeStandard:AddressLine2")
+ # AddressLine3 = ValueConstant(u"dsAttrTypeStandard:AddressLine3")
+ # AltSecurityIdentities = ValueConstant(u"dsAttrTypeStandard:AltSecurityIdentities")
+ # AreaCode = ValueConstant(u"dsAttrTypeStandard:AreaCode")
+ # AuthenticationAuthority = ValueConstant(u"dsAttrTypeStandard:AuthenticationAuthority")
+ # AutomountInformation = ValueConstant(u"dsAttrTypeStandard:AutomountInformation")
+ # BootParams = ValueConstant(u"dsAttrTypeStandard:BootParams")
+ # Building = ValueConstant(u"dsAttrTypeStandard:Building")
+ # CalendarPrincipalURI = ValueConstant(u"dsAttrTypeStandard:CalendarPrincipalURI")
+ # City = ValueConstant(u"dsAttrTypeStandard:City")
+ # Company = ValueConstant(u"dsAttrTypeStandard:Company")
+ # ComputerAlias = ValueConstant(u"dsAttrTypeStandard:ComputerAlias")
+ # Computers = ValueConstant(u"dsAttrTypeStandard:Computers")
+ # Country = ValueConstant(u"dsAttrTypeStandard:Country")
+ # Department = ValueConstant(u"dsAttrTypeStandard:Department")
+ # DNSName = ValueConstant(u"dsAttrTypeStandard:DNSName")
+ # EMailContacts = ValueConstant(u"dsAttrTypeStandard:EMailContacts")
+ # FAXNumber = ValueConstant(u"dsAttrTypeStandard:FAXNumber")
+ # Group = ValueConstant(u"dsAttrTypeStandard:Group")
+ # GroupMembers = ValueConstant(u"dsAttrTypeStandard:GroupMembers")
+ # GroupMembership = ValueConstant(u"dsAttrTypeStandard:GroupMembership")
+ # GroupServices = ValueConstant(u"dsAttrTypeStandard:GroupServices")
+ # HomePhoneNumber = ValueConstant(u"dsAttrTypeStandard:HomePhoneNumber")
+ # HTML = ValueConstant(u"dsAttrTypeStandard:HTML")
+ # HomeDirectory = ValueConstant(u"dsAttrTypeStandard:HomeDirectory")
+ # IMHandle = ValueConstant(u"dsAttrTypeStandard:IMHandle")
+ # IPAddress = ValueConstant(u"dsAttrTypeStandard:IPAddress")
+ # IPAddressAndENetAddress = ValueConstant(u"dsAttrTypeStandard:IPAddressAndENetAddress")
+ # IPv6Address = ValueConstant(u"dsAttrTypeStandard:IPv6Address")
+ # JPEGPhoto = ValueConstant(u"dsAttrTypeStandard:JPEGPhoto")
+ # JobTitle = ValueConstant(u"dsAttrTypeStandard:JobTitle")
+ # KDCAuthKey = ValueConstant(u"dsAttrTypeStandard:KDCAuthKey")
+ # Keywords = ValueConstant(u"dsAttrTypeStandard:Keywords")
+ # LDAPReadReplicas = ValueConstant(u"dsAttrTypeStandard:LDAPReadReplicas")
+ # LDAPWriteReplicas = ValueConstant(u"dsAttrTypeStandard:LDAPWriteReplicas")
+ # MachineServes = ValueConstant(u"dsAttrTypeStandard:MachineServes")
+ # MapCoordinates = ValueConstant(u"dsAttrTypeStandard:MapCoordinates")
+ # MapURI = ValueConstant(u"dsAttrTypeStandard:MapURI")
+ # MCXSettings = ValueConstant(u"dsAttrTypeStandard:MCXSettings")
+ # MIME = ValueConstant(u"dsAttrTypeStandard:MIME")
+ # Member = ValueConstant(u"dsAttrTypeStandard:Member")
+ # MobileNumber = ValueConstant(u"dsAttrTypeStandard:MobileNumber")
+ # NBPEntry = ValueConstant(u"dsAttrTypeStandard:NBPEntry")
+ # NestedGroups = ValueConstant(u"dsAttrTypeStandard:NestedGroups")
+ # NetGroups = ValueConstant(u"dsAttrTypeStandard:NetGroups")
+ # NickName = ValueConstant(u"dsAttrTypeStandard:NickName")
+ # NodePathXMLPlist = ValueConstant(u"dsAttrTypeStandard:NodePathXMLPlist")
+ # OrganizationInfo = ValueConstant(u"dsAttrTypeStandard:OrganizationInfo")
+ # OrganizationName = ValueConstant(u"dsAttrTypeStandard:OrganizationName")
+ # PagerNumber = ValueConstant(u"dsAttrTypeStandard:PagerNumber")
+ # PhoneContacts = ValueConstant(u"dsAttrTypeStandard:PhoneContacts")
+ # PhoneNumber = ValueConstant(u"dsAttrTypeStandard:PhoneNumber")
+ # PGPPublicKey = ValueConstant(u"dsAttrTypeStandard:PGPPublicKey")
+ # PostalAddress = ValueConstant(u"dsAttrTypeStandard:PostalAddress")
+ # PostalAddressContacts = ValueConstant(u"dsAttrTypeStandard:PostalAddressContacts")
+ # PostalCode = ValueConstant(u"dsAttrTypeStandard:PostalCode")
+ # NamePrefix = ValueConstant(u"dsAttrTypeStandard:NamePrefix")
+ # Protocols = ValueConstant(u"dsAttrTypeStandard:Protocols")
+ # Relationships = ValueConstant(u"dsAttrTypeStandard:Relationships")
+ # ResourceInfo = ValueConstant(u"dsAttrTypeStandard:ResourceInfo")
+ # ResourceType = ValueConstant(u"dsAttrTypeStandard:ResourceType")
+ # ServicesLocator = ValueConstant(u"dsAttrTypeStandard:ServicesLocator")
+ # State = ValueConstant(u"dsAttrTypeStandard:State")
+ # Street = ValueConstant(u"dsAttrTypeStandard:Street")
+ # NameSuffix = ValueConstant(u"dsAttrTypeStandard:NameSuffix")
+ # URL = ValueConstant(u"dsAttrTypeStandard:URL")
+ # URLForNSL = ValueConstant(u"dsAttrTypeStandard:URLForNSL")
+ # VFSOpts = ValueConstant(u"dsAttrTypeStandard:VFSOpts")
+
+ # # Other fields
+ # AdminStatus = ValueConstant(u"dsAttrTypeStandard:AdminStatus")
+ # Alias = ValueConstant(u"dsAttrTypeStandard:Alias")
+ # AuthCredential = ValueConstant(u"dsAttrTypeStandard:AuthCredential")
+ # CopyTimestamp = ValueConstant(u"dsAttrTypeStandard:CopyTimestamp")
+ # DateRecordCreated = ValueConstant(u"dsAttrTypeStandard:DateRecordCreated")
+ # KerberosRealm = ValueConstant(u"dsAttrTypeStandard:KerberosRealm")
+ # NTDomainComputerAccount = ValueConstant(u"dsAttrTypeStandard:NTDomainComputerAccount")
+ # OriginalHomeDirectory = ValueConstant(u"dsAttrTypeStandard:OriginalHomeDirectory")
+ # OriginalNFSHomeDirectory = ValueConstant(u"dsAttrTypeStandard:OriginalNFSHomeDirectory")
+ # OriginalNodeName = ValueConstant(u"dsAttrTypeStandard:OriginalNodeName")
+ # PrimaryNTDomain = ValueConstant(u"dsAttrTypeStandard:PrimaryNTDomain")
+ # PwdAgingPolicy = ValueConstant(u"dsAttrTypeStandard:PwdAgingPolicy")
+ # RARA = ValueConstant(u"dsAttrTypeStandard:RARA")
+ # ReadOnlyNode = ValueConstant(u"dsAttrTypeStandard:ReadOnlyNode")
+ # RecordImage = ValueConstant(u"dsAttrTypeStandard:RecordImage")
+ # SMBGroupRID = ValueConstant(u"dsAttrTypeStandard:SMBGroupRID")
+ # TimePackage = ValueConstant(u"dsAttrTypeStandard:TimePackage")
+ # TotalSize = ValueConstant(u"dsAttrTypeStandard:TotalSize")
+ # AllNames = ValueConstant(u"dsAttrTypeStandard:AllNames")
+ # AuthMethod = ValueConstant(u"dsAttrTypeStandard:AuthMethod")
+ # NodePath = ValueConstant(u"dsAttrTypeStandard:NodePath")
+ # PlugInInfo = ValueConstant(u"dsAttrTypeStandard:PlugInInfo")
+ # RecordAlias = ValueConstant(u"dsAttrTypeStandard:RecordAlias")
+ # Scheama = ValueConstant(u"dsAttrTypeStandard:Scheama")
+ # SetPasswdMethod = ValueConstant(u"dsAttrTypeStandard:SetPasswdMethod")
+ # SubNodes = ValueConstant(u"dsAttrTypeStandard:SubNodes")
+ # AppleMetaAliasSource = ValueConstant(u"dsAttrTypeStandard:AppleMetaAliasSource")
+ # AppleMetaAliasTarget = ValueConstant(u"dsAttrTypeStandard:AppleMetaAliasTarget")
+ # NetGroupTriplet = ValueConstant(u"dsAttrTypeStandard:NetGroupTriplet")
+ # SearchPolicy = ValueConstant(u"dsAttrTypeStandard:SearchPolicy")
+ # NSPSearchPath = ValueConstant(u"dsAttrTypeStandard:NSPSearchPath")
+ # LSPSearchPath = ValueConstant(u"dsAttrTypeStandard:LSPSearchPath")
+ # CSPSearchPath = ValueConstant(u"dsAttrTypeStandard:CSPSearchPath")
+
+
+ @classmethod
+ def fromFieldName(cls, fieldName):
+ if not hasattr(cls, "_attributesByFieldName"):
+ cls._attributesByFieldName = dict((
+ (attribute.fieldName, attribute)
+ for attribute in cls.iterconstants()
+ if hasattr(attribute, "fieldName")
+ ))
+
+ return cls._attributesByFieldName.get(fieldName, None)
+
+
+
+class ODMatchType(Values):
+ all = ValueConstant(0x2001)
+
+ equals = ValueConstant(0x2001)
+ equals.matchType = MatchType.equals
+
+ startsWith = ValueConstant(0x2002)
+ startsWith.matchType = MatchType.startsWith
+
+ endsWith = ValueConstant(0x2003)
+ endsWith.matchType = MatchType.endsWith
+
+ contains = ValueConstant(0x2004)
+ contains.matchType = MatchType.contains
+
+ lessThan = ValueConstant(0x2005)
+ lessThan.matchType = MatchType.lessThan
+
+ greaterThan = ValueConstant(0x2006)
+ greaterThan.matchType = MatchType.greaterThan
+
+ lessThanOrEqualTo = ValueConstant(0x2007)
+ lessThanOrEqualTo.matchType = MatchType.lessThanOrEqualTo
+
+ greaterThanOrEqualTo = ValueConstant(0x2008)
+ greaterThanOrEqualTo.matchType = MatchType.greaterThanOrEqualTo
+
+ compound = ValueConstant(0x210B)
+
+
+ @classmethod
+ def fromMatchType(cls, matchType):
+ if not hasattr(cls, "_matchTypeByMatchType"):
+ cls._matchTypeByMatchType = dict((
+ (matchType.matchType, matchType)
+ for matchType in cls.iterconstants()
+ if hasattr(matchType, "matchType")
+ ))
+
+ return cls._matchTypeByMatchType.get(matchType, None)
</ins></span></pre></div>
<a id="twexttrunktwextwhoopendirectory_servicepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/opendirectory/_service.py (12164 => 12165)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/opendirectory/_service.py        2013-12-20 03:20:07 UTC (rev 12164)
+++ twext/trunk/twext/who/opendirectory/_service.py        2013-12-20 03:54:46 UTC (rev 12165)
</span><span class="lines">@@ -23,9 +23,7 @@
</span><span class="cx">
</span><span class="cx"> from zope.interface import implements
</span><span class="cx">
</span><del>-from twisted.python.constants import (
- Names, NamedConstant, Values, ValueConstant,
-)
</del><ins>+from twisted.python.constants import Names, NamedConstant
</ins><span class="cx"> from twisted.internet.defer import succeed, fail
</span><span class="cx"> from twisted.cred.checkers import ICredentialsChecker
</span><span class="cx"> from twisted.cred.credentials import (
</span><span class="lines">@@ -46,11 +44,12 @@
</span><span class="cx"> )
</span><span class="cx"> from ..expression import (
</span><span class="cx"> # CompoundExpression, Operand,
</span><del>- MatchExpression, MatchType, MatchFlags,
</del><ins>+ MatchExpression, MatchFlags,
</ins><span class="cx"> )
</span><span class="cx"> from ..util import iterFlags, ConstantsContainer
</span><span class="cx">
</span><span class="cx"> from ._odframework import ODSession, ODNode, ODQuery
</span><ins>+from ._constants import ODSearchPath, ODRecordType, ODAttribute, ODMatchType
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -109,123 +108,6 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> #
</span><del>-# OD Constants
-#
-
-class ODSearchPath(Values):
- local = ValueConstant(u"/Local/Default")
- search = ValueConstant(u"/Search")
-
-
-
-class ODRecordType(Values):
- user = ValueConstant(u"dsRecTypeStandard:Users")
- user.recordType = BaseRecordType.user
-
- group = ValueConstant(u"dsRecTypeStandard:Groups")
- group.recordType = BaseRecordType.group
-
-
- @classmethod
- def fromRecordType(cls, recordType):
- if not hasattr(cls, "_recordTypeByRecordType"):
- cls._recordTypeByRecordType = dict((
- (recordType.recordType, recordType)
- for recordType in cls.iterconstants()
- ))
-
- return cls._recordTypeByRecordType.get(recordType, None)
-
-
-
-class ODAttribute(Values):
- searchPath = ValueConstant(u"dsAttrTypeStandard:SearchPath")
- searchPath.fieldName = FieldName.searchPath
-
- recordType = ValueConstant(u"dsAttrTypeStandard:RecordType")
- recordType.fieldName = BaseFieldName.recordType
-
- # uid = ValueConstant(u"dsAttrTypeStandard:GeneratedUID")
- # uid.fieldName = BaseFieldName.uid
-
- guid = ValueConstant(u"dsAttrTypeStandard:GeneratedUID")
- guid.fieldName = BaseFieldName.guid
-
- shortName = ValueConstant(u"dsAttrTypeStandard:RecordName")
- shortName.fieldName = BaseFieldName.shortNames
-
- fullName = ValueConstant(u"dsAttrTypeStandard:RealName")
- fullName.fieldName = BaseFieldName.fullNames
-
- emailAddress = ValueConstant(u"dsAttrTypeStandard:EMailAddress")
- emailAddress.fieldName = BaseFieldName.emailAddresses
-
- metaNodeLocation = ValueConstant(
- u"dsAttrTypeStandard:AppleMetaNodeLocation"
- )
- metaNodeLocation.fieldName = FieldName.metaNodeLocation
-
- metaRecordName = ValueConstant(u"dsAttrTypeStandard:AppleMetaRecordName")
- metaRecordName.fieldName = FieldName.metaRecordName
-
-
- @classmethod
- def fromFieldName(cls, fieldName):
- if not hasattr(cls, "_attributesByFieldName"):
- cls._attributesByFieldName = dict((
- (attribute.fieldName, attribute)
- for attribute in cls.iterconstants()
- if hasattr(attribute, "fieldName")
- ))
-
- return cls._attributesByFieldName.get(fieldName, None)
-
-
-
-class ODMatchType(Values):
- all = ValueConstant(0x2001)
-
- equals = ValueConstant(0x2001)
- equals.matchType = MatchType.equals
-
- startsWith = ValueConstant(0x2002)
- startsWith.matchType = MatchType.startsWith
-
- endsWith = ValueConstant(0x2003)
- endsWith.matchType = MatchType.endsWith
-
- contains = ValueConstant(0x2004)
- contains.matchType = MatchType.contains
-
- lessThan = ValueConstant(0x2005)
- lessThan.matchType = MatchType.lessThan
-
- greaterThan = ValueConstant(0x2006)
- greaterThan.matchType = MatchType.greaterThan
-
- lessThanOrEqualTo = ValueConstant(0x2007)
- lessThanOrEqualTo.matchType = MatchType.lessThanOrEqualTo
-
- greaterThanOrEqualTo = ValueConstant(0x2008)
- greaterThanOrEqualTo.matchType = MatchType.greaterThanOrEqualTo
-
- compound = ValueConstant(0x210B)
-
-
- @classmethod
- def fromMatchType(cls, matchType):
- if not hasattr(cls, "_matchTypeByMatchType"):
- cls._matchTypeByMatchType = dict((
- (matchType.matchType, matchType)
- for matchType in cls.iterconstants()
- if hasattr(matchType, "matchType")
- ))
-
- return cls._matchTypeByMatchType.get(matchType, None)
-
-
-
-#
</del><span class="cx"> # Directory Service
</span><span class="cx"> #
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>