[CalendarServer-changes] [6721] CalendarServer/trunk/calendarserver/platform/darwin/od/ setup_directory.py

source_changes at macosforge.org source_changes at macosforge.org
Mon Jan 10 10:30:45 PST 2011


Revision: 6721
          http://trac.macosforge.org/projects/calendarserver/changeset/6721
Author:   sagen at apple.com
Date:     2011-01-10 10:30:40 -0800 (Mon, 10 Jan 2011)
Log Message:
-----------
Add test accounts to calendar and addressbook SACL groups

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/platform/darwin/od/setup_directory.py

Modified: CalendarServer/trunk/calendarserver/platform/darwin/od/setup_directory.py
===================================================================
--- CalendarServer/trunk/calendarserver/platform/darwin/od/setup_directory.py	2011-01-07 00:58:30 UTC (rev 6720)
+++ CalendarServer/trunk/calendarserver/platform/darwin/od/setup_directory.py	2011-01-10 18:30:40 UTC (rev 6721)
@@ -26,6 +26,9 @@
 masterNodeName = "/LDAPv3/127.0.0.1"
 localNodeName = "/Local/Default"
 
+saclGroupNodeName = "/Local/Default"
+saclGroupNames = ("com.apple.access_calendar", "com.apple.access_addressbook")
+
 masterUsers = [
     (
         "odtestamanda",
@@ -245,7 +248,9 @@
     }
 
 
+
     session = odframework.ODSession.defaultSession()
+    userRecords = []
 
     for nodeName, info in userInfo.iteritems():
 
@@ -290,6 +295,9 @@
             else:
                 print "User %s already exists" % (recordName,)
 
+            if record is not None:
+                userRecords.append(record)
+
         print "Creating groups within %s:" % (nodeName,)
         for recordName, attrs in groups:
             record = lookupRecordName(node, dsattributes.kDSStdRecordTypeGroups, recordName)
@@ -305,7 +313,30 @@
 
         print
 
+    # Populate SACL groups
+    node, error = odframework.ODNode.nodeWithSession_name_error_(session, saclGroupNodeName, None)
+    result, error = node.setCredentialsWithRecordType_recordName_password_error_(
+        dsattributes.kDSStdRecordTypeUsers,
+        userInfo[saclGroupNodeName]["user"],
+        userInfo[saclGroupNodeName]["password"],
+        None
+    )
+    if not error:
+        for saclGroupName in saclGroupNames:
+            saclGroupRecord = lookupRecordName(node, dsattributes.kDSStdRecordTypeGroups, saclGroupName)
+            if saclGroupRecord:
+                print "Populating %s SACL group:" % (saclGroupName,)
+                for userRecord in userRecords:
+                    details, error = userRecord.recordDetailsForAttributes_error_(None, None)
+                    recordName = details.get(dsattributes.kDSNAttrRecordName, [None])[0]
+                    result, error = saclGroupRecord.isMemberRecord_error_(userRecord, None)
+                    if result:
+                        print "%s is already in the %s SACL group" % (recordName, saclGroupName)
+                    else:
+                        result, error = saclGroupRecord.addMemberRecord_error_(userRecord, None)
+                        print "Adding %s to the %s SACL group" % (recordName, saclGroupName)
 
+            print
 
 class ODError(Exception):
     def __init__(self, error):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110110/e5ec249b/attachment.html>


More information about the calendarserver-changes mailing list