[Zope3-checkins] CVS: Zope3/lib/python/Zope/App/Security/Grants - FSSync.py:1.1.2.1 configure.zcml:1.3.4.1

Jim Fulton jim@zope.com
Thu, 10 Oct 2002 00:43:28 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/App/Security/Grants
In directory cvs.zope.org:/tmp/cvs-serv16171/lib/python/Zope/App/Security/Grants

Modified Files:
      Tag: FileSystemSync-branch
	configure.zcml 
Added Files:
      Tag: FileSystemSync-branch
	FSSync.py 
Log Message:
Initial exploratory prototype code

=== Added File Zope3/lib/python/Zope/App/Security/Grants/FSSync.py ===
##############################################################################
#
# Copyright (c) 2002 Zope Corporation and Contributors.
# All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
# 
##############################################################################
"""
$Id: FSSync.py,v 1.1.2.1 2002/10/10 04:43:27 jim Exp $
"""

__metaclass__ = type

from Zope.App.FSSync.IObjectFile import IObjectFile
from Zope.App.FSSync.ObjectEntryAdapter import ObjectEntryAdapter
from Zope.App.Security import Settings

class ObjectFileAdapter(ObjectEntryAdapter):
    "ObjectFile adapter for file objects"

    __implements__ =  IObjectFile

    def getBody(self):
        "See Zope.App.FSSync.IObjectFile.IObjectFile"

        r = []

        for row, col, setting in self.context.getAllCells():
            r.append('%s\t%s\t%s\n' % 
                     (setting.getName(),
                      row,
                      col)
                     )

        return ''.join(r)

    def setBody(self, body):
        "See Zope.App.FSSync.IObjectFile.IObjectFile"

        context = self.context

        for row, col, setting in context.getAllCells():
            context.delCell(row, col)
        
        for record in body.split('\n'):
            record = record.strip()
            if record:
                setting, row, col = record.split()
                context.addCell(row, col, getattr(Settings, setting))

            

__doc__ = ObjectFileAdapter.__doc__ + __doc__


=== Zope3/lib/python/Zope/App/Security/Grants/configure.zcml 1.3 => 1.3.4.1 ===
--- Zope3/lib/python/Zope/App/Security/Grants/configure.zcml:1.3	Tue Jun 25 11:27:52 2002
+++ Zope3/lib/python/Zope/App/Security/Grants/configure.zcml	Thu Oct 10 00:43:27 2002
@@ -32,5 +32,10 @@
            provides=".IPrincipalPermissionManager."
            for="Zope.App.OFS.Annotation.IAnnotatable." />
 
+  <adapter factory=".Grants.FSSync.ObjectFileAdapter"
+           provides="Zope.App.FSSync.IObjectFile."
+           for="Zope.App.Security.Grants.ILocalSecurityMap."
+           />
+
 </zopeConfigure>