[CalendarServer-changes] [13985] twext/trunk/twext/who/index.py

source_changes at macosforge.org source_changes at macosforge.org
Sat Sep 20 07:14:26 PDT 2014


Revision: 13985
          http://trac.calendarserver.org//changeset/13985
Author:   cdaboo at apple.com
Date:     2014-09-20 07:14:26 -0700 (Sat, 20 Sep 2014)
Log Message:
-----------
Add/remove group member APIs.

Modified Paths:
--------------
    twext/trunk/twext/who/index.py

Modified: twext/trunk/twext/who/index.py
===================================================================
--- twext/trunk/twext/who/index.py	2014-09-20 14:14:07 UTC (rev 13984)
+++ twext/trunk/twext/who/index.py	2014-09-20 14:14:26 UTC (rev 13985)
@@ -38,7 +38,7 @@
 
 
 ##
-# Data type extentions
+# Data type extensions
 ##
 
 class FieldName(Names):
@@ -61,7 +61,7 @@
 
     Each indexed field has a top-level key in the index and in turn contains
     a dictionary in which keys are field values, and values are directory
-    records which have a matching field value for the cooresponding key::
+    records which have a matching field value for the corresponding key:
 
         {
             <FieldName1>: {
@@ -386,8 +386,20 @@
         returnValue(members)
 
 
+    def addMembers(self, memberRecords):
+        oldlen = len(getattr(self, "memberUIDs", ()))
+        self.fields[FieldName.memberUIDs] = sorted(list(set(getattr(self, "memberUIDs", ())) | set([r.uid for r in memberRecords])))
+        return succeed(oldlen < len(self.memberUIDs))
+
+
+    def removeMembers(self, memberRecords):
+        oldlen = len(getattr(self, "memberUIDs", ()))
+        self.fields[FieldName.memberUIDs] = sorted(list(set(getattr(self, "memberUIDs", ())) - set([r.uid for r in memberRecords])))
+        return succeed(oldlen > len(self.memberUIDs))
+
+
     def setMembers(self, memberRecords):
-        self.memberUIDs = set([r.uid for r in memberRecords])
+        self.fields[FieldName.memberUIDs] = set([r.uid for r in memberRecords])
         return succeed(None)
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140920/1f93ce9c/attachment.html>


More information about the calendarserver-changes mailing list