[Zope-Checkins] SVN: Zope/trunk/ Moved Products.Sessions APIs from ``SessionInterfaces`` to ``interfaces``.

Tres Seaver tseaver at palladion.com
Mon Jan 4 14:16:32 EST 2010


Log message for revision 107642:
  Moved Products.Sessions APIs from ``SessionInterfaces`` to ``interfaces``.
  
  - Left behind the old module / names for backwared compatibility.
  
  

Changed:
  U   Zope/trunk/doc/CHANGES.rst
  U   Zope/trunk/src/Products/Sessions/BrowserIdManager.py
  U   Zope/trunk/src/Products/Sessions/SessionDataManager.py
  U   Zope/trunk/src/Products/Sessions/SessionInterfaces.py
  U   Zope/trunk/src/Products/Sessions/__init__.py
  A   Zope/trunk/src/Products/Sessions/interfaces.py

-=-
Modified: Zope/trunk/doc/CHANGES.rst
===================================================================
--- Zope/trunk/doc/CHANGES.rst	2010-01-04 18:20:30 UTC (rev 107641)
+++ Zope/trunk/doc/CHANGES.rst	2010-01-04 19:16:31 UTC (rev 107642)
@@ -11,6 +11,9 @@
 Restructuring
 +++++++++++++
 
+- Moved Products.Sessions APIs from ``SessionInterfaces`` to ``interfaces``,
+  leaving behind the old module / names for backwared compatibility.
+
 - Moved ``cmf.*`` permissions into Products.CMFCore.
 
 - Moved general OFS related ZCML directives from Products.Five into the OFS

Modified: Zope/trunk/src/Products/Sessions/BrowserIdManager.py
===================================================================
--- Zope/trunk/src/Products/Sessions/BrowserIdManager.py	2010-01-04 18:20:30 UTC (rev 107641)
+++ Zope/trunk/src/Products/Sessions/BrowserIdManager.py	2010-01-04 19:16:31 UTC (rev 107642)
@@ -10,8 +10,6 @@
 # FOR A PARTICULAR PURPOSE
 #
 ############################################################################
-__version__='$Revision: 1.20 $'[11:-2]
-
 import binascii
 from cgi import escape
 import logging
@@ -28,11 +26,9 @@
 from AccessControl.Role import RoleManager
 from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import Implicit
-from Acquisition import aq_base
 from Acquisition import aq_parent
 from Acquisition import aq_inner
 from App.class_init import InitializeClass
-from App.Dialogs import MessageDialog
 from App.Management import Tabs
 from App.special_dtml import DTMLFile
 from Persistence import Persistent
@@ -43,11 +39,11 @@
 from ZPublisher.BeforeTraverse import queryBeforeTraverse
 from zope.interface import implements
 
-from Products.Sessions.SessionInterfaces import IBrowserIdManager
+from Products.Sessions.interfaces import IBrowserIdManager
+from Products.Sessions.interfaces import BrowserIdManagerErr
 from Products.Sessions.SessionPermissions import ACCESS_CONTENTS_PERM
 from Products.Sessions.SessionPermissions import CHANGE_IDMGR_PERM
 from Products.Sessions.SessionPermissions import MGMT_SCREEN_PERM
-from Products.Sessions.common import DEBUG
 
 b64_trans = string.maketrans('+/', '-.')
 b64_untrans = string.maketrans('-.', '+/')
@@ -82,9 +78,6 @@
     if REQUEST is not None:
         return self.manage_main(self, REQUEST, update_menu=1)
     
-class BrowserIdManagerErr(ValueError): # BBB
-    pass
-    
 class BrowserIdManager(Item, Persistent, Implicit, RoleManager, Owned, Tabs):
     """ browser id management class
     """

Modified: Zope/trunk/src/Products/Sessions/SessionDataManager.py
===================================================================
--- Zope/trunk/src/Products/Sessions/SessionDataManager.py	2010-01-04 18:20:30 UTC (rev 107641)
+++ Zope/trunk/src/Products/Sessions/SessionDataManager.py	2010-01-04 19:16:31 UTC (rev 107642)
@@ -10,18 +10,14 @@
 # FOR A PARTICULAR PURPOSE
 #
 ############################################################################
-
 from logging import getLogger
 import re
 import sys
-import time
 
 from AccessControl.Owned import Owned
 from AccessControl.Role import RoleManager
 from AccessControl.SecurityInfo import ClassSecurityInfo
 from Acquisition import Implicit
-from Acquisition import Explicit
-from Acquisition import aq_base
 from App.class_init import InitializeClass
 from App.special_dtml import DTMLFile
 from App.Management import Tabs
@@ -32,22 +28,19 @@
 from ZODB.POSException import ConflictError
 from zope.interface import implements
 
-from Products.Sessions.SessionInterfaces import ISessionDataManager
+from Products.Sessions.interfaces import ISessionDataManager
+from Products.Sessions.interfaces import SessionDataManagerErr
 from Products.Sessions.SessionPermissions import ACCESS_CONTENTS_PERM
 from Products.Sessions.SessionPermissions import ACCESS_SESSIONDATA_PERM
 from Products.Sessions.SessionPermissions import ARBITRARY_SESSIONDATA_PERM
 from Products.Sessions.SessionPermissions import CHANGE_DATAMGR_PERM
 from Products.Sessions.SessionPermissions import MGMT_SCREEN_PERM
 from Products.Sessions.common import DEBUG
-from Products.Sessions.BrowserIdManager import isAWellFormedBrowserId
-from Products.Sessions.BrowserIdManager import getNewBrowserId
 from Products.Sessions.BrowserIdManager import BROWSERID_MANAGER_NAME
 
 bad_path_chars_in=re.compile('[^a-zA-Z0-9-_~\,\. \/]').search
 LOG = getLogger('SessionDataManager')
 
-class SessionDataManagerErr(Exception): pass
-
 constructSessionDataManagerForm = DTMLFile('dtml/addDataManager',
     globals())
 
@@ -124,7 +117,7 @@
         """ """
         mgr = getattr(self, BROWSERID_MANAGER_NAME, None)
         if mgr is None:
-            raise SessionDataManagerErr,(
+            raise SessionDataManagerErr(
                 'No browser id manager named %s could be found.' %
                 BROWSERID_MANAGER_NAME
                 )
@@ -167,7 +160,7 @@
             self.obpath = None # undefined state
         elif type(path) is type(''):
             if bad_path_chars_in(path):
-                raise SessionDataManagerErr, (
+                raise SessionDataManagerErr(
                     'Container path contains characters invalid in a Zope '
                     'object path'
                     )
@@ -175,7 +168,7 @@
         elif type(path) in (type([]), type(())):
             self.obpath = list(path) # sequence
         else:
-            raise SessionDataManagerErr, ('Bad path value %s' % path)
+            raise SessionDataManagerErr('Bad path value %s' % path)
             
     security.declareProtected(MGMT_SCREEN_PERM, 'getContainerPath')
     def getContainerPath(self):
@@ -236,7 +229,7 @@
         except ConflictError:
             raise
         except:
-            raise SessionDataManagerErr, (
+            raise SessionDataManagerErr(
                 "External session data container '%s' not found." %
                 '/'.join(self.obpath)
                 )
@@ -270,6 +263,8 @@
             self._hasTraversalHook = 1
             self._requestSessionName = requestSessionName
 
+InitializeClass(SessionDataManager)
+
 class SessionDataManagerTraverser(Persistent):
     def __init__(self, requestSessionName, sessionDataManagerName):
         self._requestSessionName = requestSessionName
@@ -303,6 +298,3 @@
         # set the getSessionData method in the "lazy" namespace
         if self._requestSessionName is not None:
             request.set_lazy(self._requestSessionName, getSessionData)
-
-
-InitializeClass(SessionDataManager)

Modified: Zope/trunk/src/Products/Sessions/SessionInterfaces.py
===================================================================
--- Zope/trunk/src/Products/Sessions/SessionInterfaces.py	2010-01-04 18:20:30 UTC (rev 107641)
+++ Zope/trunk/src/Products/Sessions/SessionInterfaces.py	2010-01-04 19:16:31 UTC (rev 107642)
@@ -10,224 +10,13 @@
 # FOR A PARTICULAR PURPOSE
 #
 ############################################################################
-""" Session APIs
+# BBB location for APIs now defined in Products.Sessions.interfaces
 
-o See Also
-
-    - "Transient Object API":../../Transience/Help/TransienceInterfaces.py
-
-"""
-
-from zope.interface import Interface
-
-class IBrowserIdManager(Interface):
-    """ Zope Browser Id Manager interface.
-
-    A Zope Browser Id Manager is responsible for assigning ids to site
-    visitors, and for servicing requests from Session Data Managers
-    related to the browser id.
-    """
-    def hasBrowserId():
-        """ Return true if there is a browser id for the current request.
-
-        o Permission required: Access contents information
-
-        o Does *not* raise an error if the request contains a broken
-          browser id.
-        """
-
-    def getBrowserId(create=1):
-        """ Return a browser id for the current request.
-
-        o If create is false, return None if there is no browser id associated
-          with the current request.
-          
-        o If create is true, return a newly-created browser id if
-          there is no browser id associated with the current request.
-          
-        o This method is useful in conjunction with 'getBrowserIdName' if you
-          wish to embed the browser-id-name/browser-id combination as a hidden
-          value in a POST-based form.
-          
-        o The browser id is opaque, has no business meaning, and its length,
-          type, and composition are subject to change.
-
-        o Permission required: Access contents information
-
-        o Raises BrowserIdManagerErr if an ill-formed browser id
-          is found in REQUEST.
-        """
-
-    def getBrowserIdName():
-        """
-        Returns a string with the name of the cookie/form variable which is
-        used by the current browser id manager as the name to look up when
-        attempting to obtain the browser id value.  For example, '_ZopeId'.
-
-        Permission required: Access contents information
-        """
-
-    def isBrowserIdNew():
-        """
-        Returns true if browser id is 'new'.  A browser id is 'new'
-        when it is first created and the client has therefore not sent it
-        back to the server in any request.
-
-        Permission required: Access contents information
-
-        Raises:  BrowserIdManagerErr.  If there is no current browser id.
-        """
-
-    def isBrowserIdFromCookie():
-        """ Return true if browser id comes from a cookie.
-
-        o Permission required: Access contents information
-
-        o Raise BrowserIdManagerErr if there is no current browser id.
-        """
-
-    def isBrowserIdFromForm():
-        """ Return true if browser id comes from a form variable.
-        
-        o Variable may come from either the query string or a post.
-
-        o Permission required: Access contents information
-
-        o Raise BrowserIdManagerErr if there is no current browser id.
-        """
-
-    def isBrowserIdFromUrl():
-        """ Return true if browser id comes from a cookie.
-
-        o Permission required: Access contents information
-
-        o Raise BrowserIdManagerErr if there is no current browser id.
-        """
-
-    def flushBrowserIdCookie():
-        """ Deletes the browser id cookie from the client browser.
-
-        o Permission required: Access contents information
-
-        o Raise BrowserIdManagerErr if the 'cookies' namespace isn't
-          a browser id namespace.
-        """
-
-    def setBrowserIdCookieByForce(bid):
-        """ Sets the browser id cookie to browser id 'bid' by force.
-
-        o Useful when you need to 'chain' browser id cookies across domains
-          for the same user (perhaps temporarily using query strings).
-
-        o Permission required: Access contents information
-
-        o Raise BrowserIdManagerErr if the 'cookies' namespace isn't
-          a browser id namespace.
-        """
-
-    def getHiddenFormField():
-        """ Return a string usable as a hidden form field for the browser id.
-        
-        o String is of the form::
-
-          <input type="hidden" name="_ZopeId" value="H7HJGYUFGFyHKH*" />
-
-        o name and the value represent the current browser id
-          name and current browser id.
-        """
-
-    def encodeUrl(url, style='querystring'):
-        """ Encode a given URL with the current browser id.
-        
-        o Two forms of URL-encoding are supported: 'querystring' and 'inline'.
-        
-        o 'querystring' is the default.
-
-        o If the 'querystring' form is used, the browser id name/value pair
-          are postfixed onto the URL as a query string.
-          
-        o If the 'inline' form is used, the browser id name/value pair
-          are prefixed onto the URL as the first two path segment elements.
-
-        o For example:
-
-          - The call encodeUrl('http://foo.com/amethod', style='querystring')
-            might return 'http://foo.com/amethod?_ZopeId=as9dfu0adfu0ad'.
-
-          - The call encodeUrl('http://foo.com/amethod, style='inline')
-            might return 'http://foo.com/_ZopeId/as9dfu0adfu0ad/amethod'.
-
-        o Permission required: Access contents information
-
-        o Raise BrowserIdManagerErr if there is no current browser id.
-        """
-
+from Products.Sessions.interfaces import IBrowserIdManager
 BrowserIdManagerInterface = IBrowserIdManager # BBB
 
-class ISessionDataManager(Interface):
-    """ Zope Session Data Manager interface.
+from Products.Sessions.interfaces import ISessionDataManager
+SessionDataManagerInterface = ISessionDataManager
 
-    A Zope Session Data Manager is responsible for maintaining Session
-    Data Objects, and for servicing requests from application code
-    related to Session Data Objects.  It also communicates with a Browser
-    Id Manager to provide information about browser ids.
-    """
-    def getBrowserIdManager():
-        """ Return the nearest acquirable browser id manager.
-
-        o Raise SessionDataManagerErr if no browser id manager can be found.
-
-        o Permission required: Access session data
-        """
-
-    def getSessionData(create=1):
-        """ Return a Session Data Object for the current browser id.
-        
-        o If there is no current browser id, and create is true,
-          return a new Session Data Object.
-          
-        o If there is no current browser id and create is false, returns None.
-
-        o Permission required: Access session data
-        """
-
-    def hasSessionData():
-        """ Does a Session Data Object exist for the current browser id?
-
-        o Do not create a Session Data Object if one does not exist.
-
-        o Permission required: Access session data
-        """
-
-    def getSessionDataByKey(key):
-        """ Return a Session Data Object associated with 'key'.
-        
-        o If there is no Session Data Object associated with 'key',
-          return None.
-
-        o Permission required: Access arbitrary user session data
-        """
-
-SessionDataManagerInterface = ISessionDataManager  # BBB
-
-class SessionDataManagerErr(ValueError):
-    """ Error raised during some session data manager operations
-    
-    o See ISesseionDataManager.
-
-    o This exception may be caught in PythonScripts.  A successful
-      import of the exception for PythonScript use would need to be::
-
-       from Products.Sessions import SessionDataManagerErr
-    """
-
-class BrowserIdManagerErr(ValueError):
-    """ Error raised during some browser id manager operations
-    
-    o See IBrowserIdManager methods.
-
-    o This exception may be caught in PythonScripts.  A successful
-      import of the exception for PythonScript use would need to be::
-
-       from Products.Sessions import BrowserIdManagerErr
-    """
+from Products.Sessions.interfaces import SessionDataManagerErr
+from Products.Sessions.interfaces import BrowserIdManagerErr

Modified: Zope/trunk/src/Products/Sessions/__init__.py
===================================================================
--- Zope/trunk/src/Products/Sessions/__init__.py	2010-01-04 18:20:30 UTC (rev 107641)
+++ Zope/trunk/src/Products/Sessions/__init__.py	2010-01-04 19:16:31 UTC (rev 107642)
@@ -10,19 +10,15 @@
 # FOR A PARTICULAR PURPOSE
 #
 ##############################################################################
+""" Session managemnt product initialization
 """
-Session initialization routines
+from Products.Sessions.interfaces import BrowserIdManagerErr    #BBB
+from Products.Sessions.interfaces import SessionDataManagerErr  #BBB
 
-$Id$
-"""
+def initialize(context):
+    import BrowserIdManager
+    import SessionDataManager
 
-import ZODB # this is for testrunner to be happy
-import BrowserIdManager
-import SessionDataManager
-from BrowserIdManager import BrowserIdManagerErr
-from SessionDataManager import SessionDataManagerErr
-
-def initialize(context):
     context.registerClass(
         BrowserIdManager.BrowserIdManager,
         icon="www/idmgr.gif",
@@ -41,6 +37,7 @@
 
     context.registerHelp()
     context.registerHelpTitle("Zope Help")
+
     # do module security declarations so folks can use some of the
     # module-level stuff in PythonScripts
     #
@@ -51,8 +48,13 @@
     security = ModuleSecurityInfo('Products')
     security.declarePublic('Sessions')
     security.declarePublic('Transience')
+    security = ModuleSecurityInfo('Products.Sessions.interfaces')
+    security.declareObjectPublic()
+    security.setDefaultAccess('allow')
+    security = ModuleSecurityInfo('Products.Transience')
+    security.declarePublic('MaxTransientObjectsExceeded')
+
+    #BBB for names which should be imported from Products.Sessions.interfaces
     security = ModuleSecurityInfo('Products.Sessions')
     security.declarePublic('BrowserIdManagerErr')
     security.declarePublic('SessionDataManagerErr')
-    security = ModuleSecurityInfo('Products.Transience')
-    security.declarePublic('MaxTransientObjectsExceeded')

Copied: Zope/trunk/src/Products/Sessions/interfaces.py (from rev 107477, Zope/trunk/src/Products/Sessions/SessionInterfaces.py)
===================================================================
--- Zope/trunk/src/Products/Sessions/interfaces.py	                        (rev 0)
+++ Zope/trunk/src/Products/Sessions/interfaces.py	2010-01-04 19:16:31 UTC (rev 107642)
@@ -0,0 +1,228 @@
+############################################################################
+#
+# Copyright (c) 2002 Zope Corporation and Contributors. All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (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
+#
+############################################################################
+""" Session APIs
+
+o See Also
+
+    - "Transient Object API":../../Transience/Help/TransienceInterfaces.py
+
+"""
+from zope.interface import Interface
+
+class IBrowserIdManager(Interface):
+    """ Zope Browser Id Manager interface.
+
+    A Zope Browser Id Manager is responsible for assigning ids to site
+    visitors, and for servicing requests from Session Data Managers
+    related to the browser id.
+    """
+    def hasBrowserId():
+        """ Return true if there is a browser id for the current request.
+
+        o Permission required: Access contents information
+
+        o Does *not* raise an error if the request contains a broken
+          browser id.
+        """
+
+    def getBrowserId(create=1):
+        """ Return a browser id for the current request.
+
+        o If create is false, return None if there is no browser id associated
+          with the current request.
+          
+        o If create is true, return a newly-created browser id if
+          there is no browser id associated with the current request.
+          
+        o This method is useful in conjunction with 'getBrowserIdName' if you
+          wish to embed the browser-id-name/browser-id combination as a hidden
+          value in a POST-based form.
+          
+        o The browser id is opaque, has no business meaning, and its length,
+          type, and composition are subject to change.
+
+        o Permission required: Access contents information
+
+        o Raises BrowserIdManagerErr if an ill-formed browser id
+          is found in REQUEST.
+        """
+
+    def getBrowserIdName():
+        """
+        Returns a string with the name of the cookie/form variable which is
+        used by the current browser id manager as the name to look up when
+        attempting to obtain the browser id value.  For example, '_ZopeId'.
+
+        Permission required: Access contents information
+        """
+
+    def isBrowserIdNew():
+        """
+        Returns true if browser id is 'new'.  A browser id is 'new'
+        when it is first created and the client has therefore not sent it
+        back to the server in any request.
+
+        Permission required: Access contents information
+
+        Raises:  BrowserIdManagerErr.  If there is no current browser id.
+        """
+
+    def isBrowserIdFromCookie():
+        """ Return true if browser id comes from a cookie.
+
+        o Permission required: Access contents information
+
+        o Raise BrowserIdManagerErr if there is no current browser id.
+        """
+
+    def isBrowserIdFromForm():
+        """ Return true if browser id comes from a form variable.
+        
+        o Variable may come from either the query string or a post.
+
+        o Permission required: Access contents information
+
+        o Raise BrowserIdManagerErr if there is no current browser id.
+        """
+
+    def isBrowserIdFromUrl():
+        """ Return true if browser id comes from a cookie.
+
+        o Permission required: Access contents information
+
+        o Raise BrowserIdManagerErr if there is no current browser id.
+        """
+
+    def flushBrowserIdCookie():
+        """ Deletes the browser id cookie from the client browser.
+
+        o Permission required: Access contents information
+
+        o Raise BrowserIdManagerErr if the 'cookies' namespace isn't
+          a browser id namespace.
+        """
+
+    def setBrowserIdCookieByForce(bid):
+        """ Sets the browser id cookie to browser id 'bid' by force.
+
+        o Useful when you need to 'chain' browser id cookies across domains
+          for the same user (perhaps temporarily using query strings).
+
+        o Permission required: Access contents information
+
+        o Raise BrowserIdManagerErr if the 'cookies' namespace isn't
+          a browser id namespace.
+        """
+
+    def getHiddenFormField():
+        """ Return a string usable as a hidden form field for the browser id.
+        
+        o String is of the form::
+
+          <input type="hidden" name="_ZopeId" value="H7HJGYUFGFyHKH*" />
+
+        o name and the value represent the current browser id
+          name and current browser id.
+        """
+
+    def encodeUrl(url, style='querystring'):
+        """ Encode a given URL with the current browser id.
+        
+        o Two forms of URL-encoding are supported: 'querystring' and 'inline'.
+        
+        o 'querystring' is the default.
+
+        o If the 'querystring' form is used, the browser id name/value pair
+          are postfixed onto the URL as a query string.
+          
+        o If the 'inline' form is used, the browser id name/value pair
+          are prefixed onto the URL as the first two path segment elements.
+
+        o For example:
+
+          - The call encodeUrl('http://foo.com/amethod', style='querystring')
+            might return 'http://foo.com/amethod?_ZopeId=as9dfu0adfu0ad'.
+
+          - The call encodeUrl('http://foo.com/amethod, style='inline')
+            might return 'http://foo.com/_ZopeId/as9dfu0adfu0ad/amethod'.
+
+        o Permission required: Access contents information
+
+        o Raise BrowserIdManagerErr if there is no current browser id.
+        """
+
+class BrowserIdManagerErr(ValueError):
+    """ Error raised during some browser id manager operations
+    
+    o See IBrowserIdManager methods.
+
+    o This exception may be caught in PythonScripts.  A successful
+      import of the exception for PythonScript use would need to be::
+
+       from Products.Sessions.interfaces import BrowserIdManagerErr
+    """
+
+class ISessionDataManager(Interface):
+    """ Zope Session Data Manager interface.
+
+    A Zope Session Data Manager is responsible for maintaining Session
+    Data Objects, and for servicing requests from application code
+    related to Session Data Objects.  It also communicates with a Browser
+    Id Manager to provide information about browser ids.
+    """
+    def getBrowserIdManager():
+        """ Return the nearest acquirable browser id manager.
+
+        o Raise SessionDataManagerErr if no browser id manager can be found.
+
+        o Permission required: Access session data
+        """
+
+    def getSessionData(create=1):
+        """ Return a Session Data Object for the current browser id.
+        
+        o If there is no current browser id, and create is true,
+          return a new Session Data Object.
+          
+        o If there is no current browser id and create is false, returns None.
+
+        o Permission required: Access session data
+        """
+
+    def hasSessionData():
+        """ Does a Session Data Object exist for the current browser id?
+
+        o Do not create a Session Data Object if one does not exist.
+
+        o Permission required: Access session data
+        """
+
+    def getSessionDataByKey(key):
+        """ Return a Session Data Object associated with 'key'.
+        
+        o If there is no Session Data Object associated with 'key',
+          return None.
+
+        o Permission required: Access arbitrary user session data
+        """
+
+class SessionDataManagerErr(ValueError):
+    """ Error raised during some session data manager operations
+    
+    o See ISesseionDataManager.
+
+    o This exception may be caught in PythonScripts.  A successful
+      import of the exception for PythonScript use would need to be::
+
+       from Products.Sessions.interfaces import SessionDataManagerErr
+    """


Property changes on: Zope/trunk/src/Products/Sessions/interfaces.py
___________________________________________________________________
Added: cvs2svn:cvs-rev
   + 1.12
Added: svn:mergeinfo
   + 
Added: svn:eol-style
   + native



More information about the Zope-Checkins mailing list