Pavlos Christoforou wrote I will add _force_new_session as well as a corresponding method. Maybe we should decide on some common interface/API to make it easier for users to switch from one to the other.
Excellent plan. I can see two interfaces to define: The interface to the Session object (the thing that's called to populate REQUEST with the SESSION object) The interface to the SESSION object (the dictionary-like thing that's inserted into the REQUEST). SESSION API: SESSION.getName() - returns the session id of the current session. Supports dictionary interface, that is: SESSION.__getitem__ SESSION.__setitem__ SESSION.__delitem__ SESSION.keys SESSION.values SESSION.items SESSION.has_key SESSION.clear SESSION.update Query: should it also support __getattr__ ? I've resisted it so far as 'feature duplication', since there's nothing that you absolutely _need_ it for - e.g. for <dtml-with> you can just write <dtml-with SESSION mapping> to put the SESSION values in the namespace. SESSION.copy - unimplemented, raises error. SESSION.get -- alias for SESSION.__getitem__ SESSION.set -- alias for SESSION.__getitem__ Session object API: Session.__call__(REQUEST=None, session_id=None, noCookie=None, validSession=None) if noCookie is set, do _not_ set a cookie. if validSession is set, do _not_ create a new session if none is specified, or if the one specified is invalid. if session_id is set, use this ID to connect to an existing session (and populate REQUEST.SESSION and any cookie, as appropriate). if REQUEST._force_new_session = 1, then always create a new session. returns the string '<!-- session is "%s" -->'%sessionName (useful for debugging, use dtml-var Session, rather than dtml-call Session. Session.cookie_name - string containing the name of the session cookie. This list is just cribbed from the CVS of release 0.2.3... Did I miss anything - and is there anything from FSSession that should be included? Anthony