--- autoadmin.py.old	2009-01-07 01:26:52.000000000 +0100
+++ autoadmin.py	2009-03-25 01:34:56.000000000 +0100
@@ -66,6 +66,24 @@
 class SecurityPolicy(Permissions):
     """ Extend the default security policy with autoadmin feature """
 
+    def write(self, pagename):
+        try:
+            request = self.request
+            has_member = request.dicts.has_member
+            username = request.user.name
+            pagename = request.page.page_name
+            mainpage = pagename.split('/')[0]
+            if username == mainpage and (has_member('AutoAdminGroup', username) or \
+                has_member('AutoAdminGroup', 'Known') or has_member('AutoAdminGroup', 'Trusted')):
+                return True
+            groupname = "%s/AdminGroup" % mainpage
+            if (has_member(groupname, username) or has_member(groupname, 'Known') or \
+                has_member(groupname, 'Trusted')) and has_member('AutoAdminGroup', groupname):
+                return True
+        except AttributeError:
+            pass # when we get called from xmlrpc, there is no request.page
+        return Permissions.__getattr__(self, 'write')(pagename)
+
     def admin(self, pagename):
         try:
             request = self.request
@@ -73,10 +91,12 @@
             username = request.user.name
             pagename = request.page.page_name
             mainpage = pagename.split('/')[0]
-            if username == mainpage and has_member('AutoAdminGroup', username):
+            if username == mainpage and (has_member('AutoAdminGroup', username) or \
+                has_member('AutoAdminGroup', 'Known') or has_member('AutoAdminGroup', 'Trusted')):
                 return True
             groupname = "%s/AdminGroup" % mainpage
-            if has_member(groupname, username) and has_member('AutoAdminGroup', groupname):
+            if (has_member(groupname, username) or has_member(groupname, 'Known') or \
+                has_member(groupname, 'Trusted')) and has_member('AutoAdminGroup', groupname):
                 return True
         except AttributeError:
             pass # when we get called from xmlrpc, there is no request.page
