[CalendarServer-changes] [2207] CalendarServer/branches/users/cdaboo/ad-directory-2198/twistedcaldav /directory/appleopendirectory.py

source_changes at macosforge.org source_changes at macosforge.org
Thu Mar 6 12:15:49 PST 2008


Revision: 2207
          http://trac.macosforge.org/projects/calendarserver/changeset/2207
Author:   cdaboo at apple.com
Date:     2008-03-06 12:15:49 -0800 (Thu, 06 Mar 2008)

Log Message:
-----------
Remove Workgroup server specialization. No longer needed no that we are querying for all users and disabling those
without ServicesLocator.

Modified Paths:
--------------
    CalendarServer/branches/users/cdaboo/ad-directory-2198/twistedcaldav/directory/appleopendirectory.py

Modified: CalendarServer/branches/users/cdaboo/ad-directory-2198/twistedcaldav/directory/appleopendirectory.py
===================================================================
--- CalendarServer/branches/users/cdaboo/ad-directory-2198/twistedcaldav/directory/appleopendirectory.py	2008-03-06 20:12:32 UTC (rev 2206)
+++ CalendarServer/branches/users/cdaboo/ad-directory-2198/twistedcaldav/directory/appleopendirectory.py	2008-03-06 20:15:49 UTC (rev 2207)
@@ -25,7 +25,6 @@
 
 import itertools
 import sys
-import os
 
 import opendirectory
 import dsattributes
@@ -41,11 +40,8 @@
 from twistedcaldav.directory.directory import DirectoryService, DirectoryRecord
 from twistedcaldav.directory.directory import DirectoryError, UnknownRecordTypeError
 
-from plistlib import readPlistFromString, readPlist
+from plistlib import readPlistFromString
 
-serverPreferences = '/Library/Preferences/com.apple.servermgr_info.plist'
-saclGroup = 'com.apple.access_calendar'
-
 recordListCacheTimeout = 60 * 30 # 30 minutes
 
 class OpenDirectoryService(DirectoryService):
@@ -81,8 +77,6 @@
         self._records = {}
         self._delayedCalls = set()
 
-        self.isWorkgroupServer = False
-
         if dosetup:
             if self.requireComputerRecord:
                 try:
@@ -91,65 +85,9 @@
                     logging.err("Unable to locate virtual host record: %s" % (e,), system="OpenDirectoryService")
                     raise
 
-                if os.path.exists(serverPreferences):
-                    serverInfo = readPlist(serverPreferences)
-
-                    self.isWorkgroupServer = serverInfo.get('ServiceConfig', {}).get('IsWorkgroupServer', False)
-
-                    if self.isWorkgroupServer:
-                        logging.info("Enabling Workgroup Server compatibility mode", system="OpenDirectoryService")
-
             for recordType in self.recordTypes():
                 self.recordsForType(recordType)
 
-    def _expandGroupMembership(self, members, nestedGroups, processedGUIDs=None):
-
-        if processedGUIDs is None:
-            processedGUIDs = set()
-
-        if isinstance(members, str):
-            members = [members]
-
-        if isinstance(nestedGroups, str):
-            nestedGroups = [nestedGroups]
-
-        for memberGUID in members:
-            if memberGUID not in processedGUIDs:
-                processedGUIDs.add(memberGUID)
-                yield memberGUID
-
-        for groupGUID in nestedGroups:
-            if groupGUID in processedGUIDs:
-                continue
-
-            result = opendirectory.queryRecordsWithAttribute_list(
-                self.directory,
-                dsattributes.kDS1AttrGeneratedUID,
-                groupGUID,
-                dsattributes.eDSExact,
-                False,
-                dsattributes.kDSStdRecordTypeGroups,
-                [dsattributes.kDSNAttrGroupMembers, dsattributes.kDSNAttrNestedGroups]
-            )
-
-            if not result:
-                logging.err(
-                    "Couldn't find group %s when trying to expand nested groups."
-                    % (groupGUID,), system="OpenDirectoryService"
-                )
-                continue
-
-            group = result[0][1]
-
-            processedGUIDs.add(groupGUID)
-
-            for GUID in self._expandGroupMembership(
-                group.get(dsattributes.kDSNAttrGroupMembers, []),
-                group.get(dsattributes.kDSNAttrNestedGroups, []),
-                processedGUIDs
-            ):
-                yield GUID
-
     def __cmp__(self, other):
         if not isinstance(other, DirectoryRecord):
             return super(DirectoryRecord, self).__eq__(other)
@@ -645,43 +583,11 @@
             raise UnknownRecordTypeError("Unknown Open Directory record type: %s" % (recordType))
 
         if self.requireComputerRecord:
-            if self.isWorkgroupServer and recordType == DirectoryService.recordType_users:
-                if shortName is None and guid is None:
-                    results = opendirectory.queryRecordsWithAttribute_list(
-                        self.directory,
-                        dsattributes.kDSNAttrRecordName,
-                        saclGroup,
-                        dsattributes.eDSExact,
-                        False,
-                        dsattributes.kDSStdRecordTypeGroups,
-                        [dsattributes.kDSNAttrGroupMembers, dsattributes.kDSNAttrNestedGroups]
-                    )
-
-                    if len(results) == 1:
-                        members      = results[0][1].get(dsattributes.kDSNAttrGroupMembers, [])
-                        nestedGroups = results[0][1].get(dsattributes.kDSNAttrNestedGroups, [])
-                    else:
-                        members = []
-                        nestedGroups = []
-
-                    guidQueries = []
-
-                    for GUID in self._expandGroupMembership(members, nestedGroups):
-                        guidQueries.append(
-                            dsquery.match(dsattributes.kDS1AttrGeneratedUID, GUID, dsattributes.eDSExact)
-                        )
-
-                    if not guidQueries:
-                        logging.warn("No SACL enabled users found.", system="OpenDirectoryService")
-                        return ()
-
-                    query = dsquery.expression(dsquery.expression.OR, guidQueries)
-
             #
             # For users and groups, we'll load all entries, even if
             # they don't have a services locator for this server.
             #
-            elif (
+            if (
                 recordType != DirectoryService.recordType_users and
                 recordType != DirectoryService.recordType_groups
             ):

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080306/e434588d/attachment.html 


More information about the calendarserver-changes mailing list