[CalendarServer-changes] [531]
CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/
directory
source_changes at macosforge.org
source_changes at macosforge.org
Mon Nov 20 20:11:46 PST 2006
Revision: 531
http://trac.macosforge.org/projects/calendarserver/changeset/531
Author: cdaboo at apple.com
Date: 2006-11-20 20:11:45 -0800 (Mon, 20 Nov 2006)
Log Message:
-----------
List records must return an actual directory record not a short name.
Modified Paths:
--------------
CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/apache.py
CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/sqldb.py
CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/xmlfile.py
Modified: CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/apache.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/apache.py 2006-11-21 04:09:56 UTC (rev 530)
+++ CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/apache.py 2006-11-21 04:11:45 UTC (rev 531)
@@ -59,8 +59,26 @@
def listRecords(self, recordType):
for entryShortName, entryData in self.entriesForRecordType(recordType):
- yield entryShortName
+ if recordType == "user":
+ yield self.userRecordClass(
+ service = self,
+ recordType = recordType,
+ shortName = entryShortName,
+ cryptPassword = entryData,
+ )
+ if recordType == "group":
+ yield GroupRecord(
+ service = self,
+ recordType = recordType,
+ shortName = entryShortName,
+ members = entryData,
+ )
+
+ # Subclass should cover the remaining record types
+ raise AssertionError("Subclass should have handled record type: %r"
+ % (recordType,))
+
def recordWithShortName(self, recordType, shortName):
for entryShortName, entryData in self.entriesForRecordType(recordType):
if entryShortName == shortName:
Modified: CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/sqldb.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/sqldb.py 2006-11-21 04:09:56 UTC (rev 530)
+++ CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/sqldb.py 2006-11-21 04:11:45 UTC (rev 531)
@@ -82,6 +82,27 @@
def listRecords(self, recordType):
return self._db_values_for_sql("select UID from ACCOUNTS where TYPE = :1", recordType)
+ # Get each account record
+ rowiter = self._db_execute("select UID, PSWD, NAME from ACCOUNTS where TYPE = :1", recordType)
+ for row in rowiter:
+ uid = row[0]
+ pswd = row[1]
+ name = row[2]
+ members = []
+ groups = []
+
+ # See if we have a group
+ if recordType == "group":
+ rowiter = self._db_execute("select UID from GROUPS where GRPUID = :1", uid)
+ for row in rowiter:
+ members.append(row[0])
+
+ # See if we are a member of a group
+ rowiter = self._db_execute("select GRPUID from GROUPS where UID = :1", uid)
+ for row in rowiter:
+ groups.append(row[0])
+
+ yield uid, pswd, name, members, groups
def getRecord(self, recordType, uid):
# Get individual account record
@@ -231,8 +252,16 @@
return recordTypes
def listRecords(self, recordType):
- for name in self.manager.listRecords(recordType):
- yield name
+ for result in self.manager.listRecords(recordType):
+ yield SQLDirectoryRecord(
+ service = self,
+ recordType = recordType,
+ shortName = result[0],
+ pswd = result[1],
+ name = result[2],
+ members = result[3],
+ groups = result[4],
+ )
def recordWithShortName(self, recordType, shortName):
result = self.manager.getRecord(recordType, shortName)
Modified: CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/xmlfile.py
===================================================================
--- CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/xmlfile.py 2006-11-21 04:09:56 UTC (rev 530)
+++ CalendarServer/branches/users/wsanchez/provisioning-2/twistedcaldav/directory/xmlfile.py 2006-11-21 04:11:45 UTC (rev 531)
@@ -53,7 +53,12 @@
def listRecords(self, recordType):
for entryShortName, xmlprincipal in self._entriesForRecordType(recordType):
- yield entryShortName
+ yield XMLDirectoryRecord(
+ service = self,
+ recordType = recordType,
+ shortName = entryShortName,
+ xmlPrincipal = xmlprincipal,
+ )
def recordWithShortName(self, recordType, shortName):
for entryShortName, xmlprincipal in self._entriesForRecordType(recordType):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061120/f7bb7191/attachment.html
More information about the calendarserver-changes
mailing list