[CalendarServer-changes] [1068]
CalendarServer/trunk/twistedcaldav/directory/sqldb.py
source_changes at macosforge.org
source_changes at macosforge.org
Thu Jan 18 17:54:39 PST 2007
Revision: 1068
http://trac.macosforge.org/projects/calendarserver/changeset/1068
Author: wsanchez at apple.com
Date: 2007-01-18 17:54:38 -0800 (Thu, 18 Jan 2007)
Log Message:
-----------
Add GUID sauce to SQLDB
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/sqldb.py
Modified: CalendarServer/trunk/twistedcaldav/directory/sqldb.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/sqldb.py 2007-01-19 01:24:24 UTC (rev 1067)
+++ CalendarServer/trunk/twistedcaldav/directory/sqldb.py 2007-01-19 01:54:38 UTC (rev 1068)
@@ -86,52 +86,32 @@
def listRecords(self, recordType):
# Get each account record
- for (shortName, password, name) in self._db_execute(
+ for shortName, guid, password, name in self._db_execute(
"""
- select SHORT_NAME, PASSWORD, NAME from ACCOUNTS
- where RECORD_TYPE = :1
+ select SHORT_NAME, GUID, PASSWORD, NAME
+ from ACCOUNTS
+ where RECORD_TYPE = :1
""", recordType
):
- members = set()
- groups = set()
- calendarUserAddresses = set()
-
# See if we have members
- for member in self._db_execute(
- """
- select MEMBER_RECORD_TYPE, MEMBER_SHORT_NAME from GROUPS
- where SHORT_NAME = :1
- """, shortName
- ):
- members.add(tuple(member))
+ members = self.members(shortName)
- # See if we are a member of a group
- for (name,) in self._db_execute(
- """
- select SHORT_NAME from GROUPS
- where MEMBER_SHORT_NAME = :1
- """, shortName
- ):
- groups.add(name)
+ # See if we are a member of any groups
+ groups = self.groups(shortName)
# Get calendar user addresses
- for (address,) in self._db_execute(
- """
- select ADDRESS from ADDRESSES
- where SHORT_NAME = :1
- """, shortName
- ):
- calendarUserAddresses.add(address)
+ calendarUserAddresses = self.calendarUserAddresses(shortName)
- yield shortName, password, name, members, groups, calendarUserAddresses
+ yield shortName, guid, password, name, members, groups, calendarUserAddresses
def getRecord(self, recordType, shortName):
# Get individual account record
- for shortName, password, name in self._db_execute(
+ for shortName, guid, password, name in self._db_execute(
"""
- select SHORT_NAME, PASSWORD, NAME from ACCOUNTS
- where RECORD_TYPE = :1
- and SHORT_NAME = :2
+ select SHORT_NAME, GUID, PASSWORD, NAME
+ from ACCOUNTS
+ where RECORD_TYPE = :1
+ and SHORT_NAME = :2
""", recordType, shortName
):
break
@@ -139,34 +119,65 @@
return None
# See if we have members
- members = set()
- for row in self._db_execute("select MEMBER_RECORD_TYPE, MEMBER_SHORT_NAME from GROUPS where SHORT_NAME = :1", shortName):
- members.add((row[0], row[1]))
+ members = self.members(shortName)
- # See if we are a member of a group
- groups = set()
- for row in self._db_execute("select SHORT_NAME from GROUPS where MEMBER_SHORT_NAME = :1", shortName):
- groups.add(row[0])
+ # See if we are a member of any groups
+ groups = self.groups(shortName)
# Get calendar user addresses
- calendarUserAddresses = set()
- for row in self._db_execute("select ADDRESS from ADDRESSES where SHORT_NAME = :1", shortName):
- calendarUserAddresses.add(row[0])
+ calendarUserAddresses = self.calendarUserAddresses(shortName)
- return shortName, password, name, members, groups, calendarUserAddresses
+ return shortName, guid, password, name, members, groups, calendarUserAddresses
+ def members(self, shortName):
+ members = set()
+ for member in self._db_execute(
+ """
+ select MEMBER_RECORD_TYPE, MEMBER_SHORT_NAME
+ from GROUPS
+ where SHORT_NAME = :1
+ """, shortName
+ ):
+ members.add(tuple(member))
+ return members
+
+ def groups(self, shortName):
+ groups = set()
+ for (name,) in self._db_execute(
+ """
+ select SHORT_NAME
+ from GROUPS
+ where MEMBER_SHORT_NAME = :1
+ """, shortName
+ ):
+ groups.add(name)
+ return groups
+
+ def calendarUserAddresses(self, shortName):
+ calendarUserAddresses = set()
+ for (address,) in self._db_execute(
+ """
+ select ADDRESS
+ from ADDRESSES
+ where SHORT_NAME = :1
+ """, shortName
+ ):
+ calendarUserAddresses.add(address)
+ return calendarUserAddresses
+
def _add_to_db(self, record):
# Do regular account entry
recordType = record.recordType
shortName = record.shortName
+ guid = record.guid
password = record.password
name = record.name
self._db_execute(
"""
- insert into ACCOUNTS (RECORD_TYPE, SHORT_NAME, PASSWORD, NAME)
- values (:1, :2, :3, :4)
- """, recordType, shortName, password, name
+ insert into ACCOUNTS (RECORD_TYPE, SHORT_NAME, GUID, PASSWORD, NAME)
+ values (:1, :2, :3, :4, :5)
+ """, recordType, shortName, guid, password, name
)
# Check for members
@@ -222,6 +233,7 @@
create table ACCOUNTS (
RECORD_TYPE text,
SHORT_NAME text,
+ GUID text,
PASSWORD text,
NAME text
)
@@ -289,11 +301,12 @@
service = self,
recordType = recordType,
shortName = result[0],
- password = result[1],
- name = result[2],
- members = result[3],
- groups = result[4],
- calendarUserAddresses = result[5],
+ guid = result[1],
+ password = result[2],
+ name = result[3],
+ members = result[4],
+ groups = result[5],
+ calendarUserAddresses = result[6],
)
def recordWithShortName(self, recordType, shortName):
@@ -303,11 +316,12 @@
service = self,
recordType = recordType,
shortName = result[0],
- password = result[1],
- name = result[2],
- members = result[3],
- groups = result[4],
- calendarUserAddresses = result[5],
+ guid = result[1],
+ password = result[2],
+ name = result[3],
+ members = result[4],
+ groups = result[5],
+ calendarUserAddresses = result[6],
)
return None
@@ -316,11 +330,11 @@
"""
XML based implementation implementation of L{IDirectoryRecord}.
"""
- def __init__(self, service, recordType, shortName, password, name, members, groups, calendarUserAddresses):
+ def __init__(self, service, recordType, shortName, guid, password, name, members, groups, calendarUserAddresses):
super(SQLDirectoryRecord, self).__init__(
service = service,
recordType = recordType,
- guid = None,
+ guid = guid,
shortName = shortName,
fullName = name,
calendarUserAddresses = calendarUserAddresses,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070118/828ea066/attachment.html
More information about the calendarserver-changes
mailing list