Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Z
Zope
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
Zope
Commits
2e1e8089
Commit
2e1e8089
authored
Nov 01, 2001
by
matt@zope.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Get Sessions working
parent
58fbd57b
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
2038 additions
and
18 deletions
+2038
-18
lib/python/Products/Sessions/BrowserIdManager.py
lib/python/Products/Sessions/BrowserIdManager.py
+5
-3
lib/python/Products/Sessions/RAM_DB.py
lib/python/Products/Sessions/RAM_DB.py
+47
-7
lib/python/Products/Sessions/SessionDataManager.py
lib/python/Products/Sessions/SessionDataManager.py
+75
-8
lib/python/Products/Sessions/__init__.py
lib/python/Products/Sessions/__init__.py
+122
-0
lib/python/Products/Sessions/dtml/addDataManager.dtml
lib/python/Products/Sessions/dtml/addDataManager.dtml
+75
-0
lib/python/Products/Sessions/dtml/addIdManager.dtml
lib/python/Products/Sessions/dtml/addIdManager.dtml
+154
-0
lib/python/Products/Sessions/dtml/addRAMDB.dtml
lib/python/Products/Sessions/dtml/addRAMDB.dtml
+49
-0
lib/python/Products/Sessions/dtml/manageDataManager.dtml
lib/python/Products/Sessions/dtml/manageDataManager.dtml
+57
-0
lib/python/Products/Sessions/dtml/manageIdManager.dtml
lib/python/Products/Sessions/dtml/manageIdManager.dtml
+144
-0
lib/python/Products/Sessions/dtml/mountfail.dtml
lib/python/Products/Sessions/dtml/mountfail.dtml
+21
-0
lib/python/Products/Sessions/help/Sessions.stx
lib/python/Products/Sessions/help/Sessions.stx
+1289
-0
lib/python/Products/Sessions/www/datamgr.gif
lib/python/Products/Sessions/www/datamgr.gif
+0
-0
lib/python/Products/Sessions/www/idmgr.gif
lib/python/Products/Sessions/www/idmgr.gif
+0
-0
lib/python/Products/Sessions/www/ramdb.gif
lib/python/Products/Sessions/www/ramdb.gif
+0
-0
No files found.
lib/python/Products/Sessions/BrowserIdManager.py
View file @
2e1e8089
__version__
=
'$Revision: 1.
1
$'
[
11
:
-
2
]
__version__
=
'$Revision: 1.
2
$'
[
11
:
-
2
]
import
Globals
from
Persistence
import
Persistent
from
ZODB
import
TimeStamp
...
...
@@ -23,7 +23,9 @@ twodotsin = re.compile('(\w*\.){2,}').search
_marker = []
constructBrowserIdManagerForm = Globals.DTMLFile('
addIdManager
',globals())
constructBrowserIdManagerForm = Globals.DTMLFile('
dtml
/
addIdManager
',globals())
ADD_BROWSER_ID_MANAGER_PERM="Add Browser ID Manager"
def constructBrowserIdManager(
self, id, title='', tokenkey='
_ZopeId
', cookiepri=1, formpri=2,
...
...
@@ -217,7 +219,7 @@ class BrowserIdManager(Item, Persistent, Implicit, RoleManager, Owned, Tabs):
# non-delegating methods follow
security
.
declareProtected
(
MGMT_SCREEN_PERM
,
'manage_browseridmgr'
)
manage_browseridmgr
=
Globals
.
DTMLFile
(
'manageIdManager'
,
globals
())
manage_browseridmgr
=
Globals
.
DTMLFile
(
'
dtml/
manageIdManager'
,
globals
())
security
.
declareProtected
(
CHANGE_IDMGR_PERM
,
'manage_changeBrowserIdManager'
)
...
...
lib/python/Products/Sessions/RAM_DB.py
View file @
2e1e8089
...
...
@@ -84,13 +84,30 @@
##############################################################################
"""Mounted database support
$Id: RAM_DB.py,v 1.
1 2001/10/31 15:36:04 chrism
Exp $"""
__version__
=
'$Revision: 1.
1
$'
[
11
:
-
2
]
$Id: RAM_DB.py,v 1.
2 2001/11/01 19:20:34 matt
Exp $"""
__version__
=
'$Revision: 1.
2
$'
[
11
:
-
2
]
import
Globals
from
Globals
import
HTMLFile
from
ZODB.Mount
import
MountPoint
import
string
import
OFS
import
os
,
os
.
path
ADD_RAMDB_PERM
=
"Add RAM Databases"
def
constructRAMDB
(
self
,
id
,
title
=
None
,
REQUEST
=
None
):
""" """
ms
=
MountedRAM_DB
(
id
,
title
)
self
.
_setObject
(
id
,
ms
)
if
REQUEST
is
not
None
:
return
self
.
manage_main
(
self
,
REQUEST
,
update_menu
=
1
)
constructRAMDBForm
=
HTMLFile
(
'dtml/addRAMDB'
,
globals
())
class
MountedRAM_DB
(
MountPoint
,
OFS
.
SimpleItem
.
Item
):
"""
...
...
@@ -101,13 +118,14 @@ class MountedRAM_DB(MountPoint, OFS.SimpleItem.Item):
manage_options
=
({
'label'
:
'Traceback'
,
'action'
:
'manage_traceback'
},)
meta_type
=
'Broken Mounted RAM Database'
def
__init__
(
self
,
id
,
params
=
None
):
def
__init__
(
self
,
id
,
title
=
''
,
params
=
None
):
self
.
id
=
str
(
id
)
MountPoint
.
__init__
(
self
,
path
=
'/'
,
params
)
manage_traceback
=
Globals
.
DTMLFile
(
'mountfail'
,
globals
())
self
.
title
=
title
MountPoint
.
__init__
(
self
,
path
=
'/'
)
# Eep
def
_createDB
(
self
,
db
=
db
):
manage_traceback
=
Globals
.
DTMLFile
(
'dtml/mountfail'
,
globals
())
def
_createDB
(
self
,
db
=
None
):
# huh? db=db was original
""" Create a mounted RAM database """
from
SessionStorage
import
SessionStorage
from
ZODB.DB
import
DB
...
...
@@ -120,9 +138,31 @@ class MountedRAM_DB(MountPoint, OFS.SimpleItem.Item):
sdc
=
root
.
get
(
'folder'
,
None
)
if
sdc
is
None
:
sdc
=
root
[
'folder'
]
=
OFS
.
Folder
.
Folder
()
self
.
_populate
(
sdc
,
root
)
return
sdc
def
mount_error_
(
self
):
return
self
.
_v_connect_error
def
_populate
(
self
,
folder
,
root
):
# Set up our folder object
folder
.
id
=
self
.
id
# be a chameleon
folder
.
title
=
self
.
title
folder
.
icon
=
"misc_/Sessions/ramdb.gif"
importdir
=
os
.
path
.
join
(
Globals
.
data_dir
,
self
.
id
+
"Imports"
)
#conn = folder._p_jar # Can we do that yet?
conn
=
root
.
_p_jar
try
:
for
file
in
os
.
listdir
(
importdir
):
if
file
[
-
5
:]
==
".zexp"
:
id
=
file
[:
-
5
]
# Import this!
ob
=
conn
.
importFile
(
os
.
path
.
join
(
importdir
,
file
))
folder
.
_setObject
(
id
,
ob
)
except
OSError
:
pass
# (no such dir)
lib/python/Products/Sessions/SessionDataManager.py
View file @
2e1e8089
...
...
@@ -11,18 +11,25 @@ from AccessControl import ClassSecurityInfo
import
SessionInterfaces
from
SessionPermissions
import
*
from
common
import
DEBUG
from
ZPublisher.BeforeTraverse
import
registerBeforeTraverse
,
\
unregisterBeforeTraverse
,
NameCaller
import
traceback
BID_MGR_NAME
=
'browser_id_m
anage
r'
BID_MGR_NAME
=
'browser_id_m
g
r'
bad_path_chars_in
=
re
.
compile
(
'[^a-zA-Z0-9-_~
\
,
\
.
\
/]
'
).search
class SessionDataManagerErr(Exception): pass
constructSessionDataManagerForm = Globals.DTMLFile('
addDataManager
', globals())
constructSessionDataManagerForm = Globals.DTMLFile('
dtml
/
addDataManager
',
globals())
def constructSessionDataManager(self, id, title='', path=None)
ADD_SESSION_DATAMANAGER_PERM="Add Session Data Manager"
def constructSessionDataManager(self, id, title='', path=None, automatic=None,
REQUEST=None):
""" """
ob = SessionDataManager(id, path, title)
ob = SessionDataManager(id, path, title
, automatic
)
self._setObject(id, ob)
if REQUEST is not None:
return self.manage_main(self, REQUEST, update_menu=1)
...
...
@@ -58,7 +65,8 @@ class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs):
__implements__ = (SessionInterfaces.SessionDataManagerInterface, )
manage_sessiondatamgr = Globals.DTMLFile('
manageDataManager
', globals())
manage_sessiondatamgr = Globals.DTMLFile('
dtml
/
manageDataManager
',
globals())
# INTERFACE METHODS FOLLOW
...
...
@@ -92,16 +100,25 @@ class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs):
# END INTERFACE METHODS
def __init__(self, id, path=None, title=''):
def __init__(self, id, path=None, title=''
, automatic=None
):
self.id = id
self.setContainerPath(path)
self.setTitle(title)
if automatic:
self._requestSessionName='
SESSION
'
else:
self._requestSessionName=None
security.declareProtected(CHANGE_DATAMGR_PERM, '
manage_changeSDM
')
def manage_changeSDM(self, title, path=None, REQUEST=None):
def manage_changeSDM(self, title, path=None,
automatic=None,
REQUEST=None):
""" """
self.setContainerPath(path)
self.setTitle(title)
if automatic:
self.updateTraversalData('
SESSION
')
else:
self.updateTraversalData(None)
if REQUEST is not None:
return self.manage_sessiondatamgr(self, REQUEST)
...
...
@@ -179,4 +196,54 @@ class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs):
string.join(self.obpath,'
/
')
)
security.declareProtected(MGMT_SCREEN_PERM, '
getAutomatic
')
def getAutomatic(self):
""" """
if hasattr(self,'
_hasTraversalHook
'): return 1
return 0
def manage_afterAdd(self, item, container):
""" Add our traversal hook """
self.updateTraversalData(self._requestSessionName)
def manage_beforeDelete(self, item, container):
""" Clean up on delete """
self.updateTraversalData(None)
def updateTraversalData(self, requestSessionName=None):
# Note this cant be called directly at add -- manage_afterAdd will work
# though.
parent = self.aq_inner.aq_parent
if getattr(self,'
_hasTraversalHook
', None):
unregisterBeforeTraverse(parent, '
SessionDataManager
')
del self._hasTraversalHook
self._requestSessionName = None
if requestSessionName:
hook = SessionDataManagerTraverser(requestSessionName, self)
registerBeforeTraverse(parent, hook, '
SessionDataManager
', 50)
self._hasTraversalHook = 1
self._requestSessionName = requestSessionName
class SessionDataManagerTraverser(NameCaller):
meta_type = "Session ID Insertion Traversal Rule"
def __init__(self, requestSessionName, sdm):
self._requestSessionName = requestSessionName
self._sessionDataManager = sdm
def __call__(self, container, request):
sdm = self._sessionDataManager.__of__(container)
# Yank our session & stuff into request
try:
session = sdm.getSessionData()
except:
LOG('
Session
Tracking
', WARNING, '
Session
automatic
traversal
'
'
failed
to
get
session
data
', error=sys.exc_info())
return # Throw our hands up but dont fail
if self._requestSessionName is not None:
request[self._requestSessionName] = session
NameCaller.__call__(self, container, request)
lib/python/Products/Sessions/__init__.py
View file @
2e1e8089
##############################################################################
#
# Zope Public License (ZPL) Version 1.0
# -------------------------------------
#
# Copyright (c) Digital Creations. All rights reserved.
#
# This license has been certified as Open Source(tm).
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions in source code must retain the above copyright
# notice, this list of conditions, and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions, and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
#
# 3. Digital Creations requests that attribution be given to Zope
# in any manner possible. Zope includes a "Powered by Zope"
# button that is installed by default. While it is not a license
# violation to remove this button, it is requested that the
# attribution remain. A significant investment has been put
# into Zope, and this effort will continue if the Zope community
# continues to grow. This is one way to assure that growth.
#
# 4. All advertising materials and documentation mentioning
# features derived from or use of this software must display
# the following acknowledgement:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# In the event that the product being advertised includes an
# intact Zope distribution (with copyright and license included)
# then this clause is waived.
#
# 5. Names associated with Zope or Digital Creations must not be used to
# endorse or promote products derived from this software without
# prior written permission from Digital Creations.
#
# 6. Modified redistributions of any form whatsoever must retain
# the following acknowledgment:
#
# "This product includes software developed by Digital Creations
# for use in the Z Object Publishing Environment
# (http://www.zope.org/)."
#
# Intact (re-)distributions of any official Zope release do not
# require an external acknowledgement.
#
# 7. Modifications are encouraged but must be packaged separately as
# patches to official Zope releases. Distributions that do not
# clearly separate the patches from the original work must be clearly
# labeled as unofficial distributions. Modifications which do not
# carry the name Zope may be packaged in any form, as long as they
# conform to all of the clauses above.
#
#
# Disclaimer
#
# THIS SOFTWARE IS PROVIdED BY DIGITAL CREATIONS ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DIGITAL CREATIONS OR ITS
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIdENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#
# This software consists of contributions made by Digital Creations and
# many individuals on behalf of Digital Creations. Specific
# attributions are listed in the accompanying credits file.
#
##############################################################################
"""
Session initialization routines
$Id: __init__.py,v 1.2 2001/11/01 19:20:35 matt Exp $
"""
import
BrowserIdManager
import
RAM_DB
import
SessionDataManager
def
initialize
(
context
):
context
.
registerClass
(
RAM_DB
.
MountedRAM_DB
,
permission
=
RAM_DB
.
ADD_RAMDB_PERM
,
icon
=
'www/ramdb.gif'
,
meta_type
=
'Temporary Folder'
,
constructors
=
(
RAM_DB
.
constructRAMDBForm
,
RAM_DB
.
constructRAMDB
)
)
context
.
registerClass
(
BrowserIdManager
.
BrowserIdManager
,
icon
=
"www/idmgr.gif"
,
permission
=
BrowserIdManager
.
ADD_BROWSER_ID_MANAGER_PERM
,
constructors
=
(
BrowserIdManager
.
constructBrowserIdManagerForm
,
BrowserIdManager
.
constructBrowserIdManager
)
)
context
.
registerClass
(
SessionDataManager
.
SessionDataManager
,
icon
=
'www/datamgr.gif'
,
permission
=
SessionDataManager
.
ADD_SESSION_DATAMANAGER_PERM
,
constructors
=
(
SessionDataManager
.
constructSessionDataManagerForm
,
SessionDataManager
.
constructSessionDataManager
)
)
context
.
registerHelp
()
lib/python/Products/Sessions/dtml/addDataManager.dtml
0 → 100644
View file @
2e1e8089
<dtml-var manage_page_header>
<dtml-var "manage_form_title(this(), _,
form_title='Add Session Data Manager',
help_product='Sessions',
help_topic='Sessions.stx'
)">
<FORM ACTION="constructSessionDataManager" METHOD="POST">
<TABLE CELLSPACING="2">
<tr>
<div class="form-help">
Zope Session Data Managers objects keep track of your users' session data
objects. Developers interact with a Session Data Manager in order to store
and retrieve information during a user session. A Session Data Manager
communicates with a Browser Id Manager to determine the session information
for the current user, and hands out Session Data Objects related to that
user obtained from a Transient Object Container.
</div>
</tr>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Id
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="id" SIZE="20">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Title
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="title" SIZE="40">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Transient Object Container Path
</div>
<div class="form-help">e.g. '/tempFolder/transientObjectContainer'.</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="path" SIZE="60" value="/tempFolder/transientObjectContainer">
</TD>
</TR>
<tr>
<td align="LEFT" valign="TOP">
<div class="form-label">
Automatic SESSION placement in REQUEST object
</div>
</td>
<td align="LEFT" valign="TOP">
<input class="form-element" type='CHECKBOX' name='automatic' CHECKED>
</td>
</tr>
<tr>
</TR>
<TR>
<TD>
</TD>
<TD> <BR><INPUT class="form-element" TYPE="SUBMIT" VALUE=" Add "> </TD>
</TR>
</TABLE>
</FORM>
<dtml-var manage_page_footer>
lib/python/Products/Sessions/dtml/addIdManager.dtml
0 → 100644
View file @
2e1e8089
<dtml-var manage_page_header>
<dtml-var "manage_form_title(this(), _,
form_title='Add Browser Id Manager',
help_product='Browsers',
help_topic='Browsers.stx'
)">
<FORM ACTION="constructBrowserIdManager" METHOD="POST">
<input type=hidden name="id" value="browser_id_mgr">
<TABLE CELLSPACING="2">
<tr>
<div class="form-help">
Zope Browser Id Manager objects perform the task of setting and retrieving
Zope browser ids for remote users. They are used primarily by Session
Data Manager objects. A Browser Id Manager's 'id' must always be
'browser_id_mgr' in order for it to be found by Session Data Managers.
</div>
</tr>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Id
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">This object's Zope id will be<br>
"browser_id_mgr"
</div>
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Title
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="title" SIZE="40">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Browser Token Key
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="tokenkey" SIZE="20" value="_ZopeId">
</TD>
</TR>
<tr>
<td> </td>
</tr>
<th align="left"><strong><em>Token Key Search Namespaces</strong></em></th>
<th align="left"><strong><em>Priority (1 is highest)</strong></em></th>
<tr>
<th align=left class="form-label">Cookies</th>
<td>
<table border=1>
<tr>
<td align=left>
<input type="radio" name="cookiepri:int" value="1" CHECKED> 1
</td>
<td align=left>
<input type="radio" name="cookiepri:int" value="2"> 2
</td>
<td align=left>
<input type="radio" name="cookiepri:int" value="0"> Off
</td>
</tr>
</table>
</td>
</tr>
<tr>
<th align=left class="form-label">Form vars</th>
<td align=left>
<table border=1>
<tr>
<td align=left>
<input type="radio" name="formpri:int" value="1"> 1
</td>
<td align=left>
<input type="radio" name="formpri:int" value="2" CHECKED> 2
</td>
<td align=left>
<input type="radio" name="formpri:int" value="0"> Off
</td> </tr>
</table>
</td>
</tr>
<td> </td>
<tr>
</tr>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Cookie Path
</div>
<div class="form-help">
leave blank to provide no path info in the browser cookie
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="cookiepath" SIZE="20" value="/">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Cookie Domain
</div>
<div class="form-help">
leave blank to send cookies without domain<br>
info -- however, if cookie domain is not blank,<br>
it must contain at least two dots
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="cookiedomain" SIZE="20">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Cookie Lifetime In Days
</div>
<div class="form-help">
0 means send cookies which last only for the<br>
lifetime of the browser
</div>
</EM>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="cookielifedays:int" SIZE="20" value="0">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Only Send Cookie Over HTTPS
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="checkbox" NAME="cookiesecure">
</TD>
</TR>
</TR> <TR> <TD></TD> <TD>
<INPUT class="form-element" TYPE="SUBMIT" VALUE=" Add ">
</TD> </TR> </TABLE> </FORM>
<dtml-var manage_page_footer>
lib/python/Products/Sessions/dtml/addRAMDB.dtml
0 → 100644
View file @
2e1e8089
<dtml-var manage_page_header>
<dtml-var "manage_form_title(this(), _,
form_title='Add Temporary Folder',
help_product='Sessions',
help_topic='Sessions.stx'
)">
<form action="manage_addRAMDB" method="POST">
<div class="form-help">
<p>
Temporary Folders are in-storage databases, which are created anew at every
initialization of Zope. They are useful for storing temporary objects in.
</p>
</div>
<table cellspacing="2">
<tr>
<td align="LEFT" valign="TOP">
<div class="form-label">
Id
</div>
</td>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="id" size="20" value="tempFolder" />
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">
<div class="form-label">
<em>Title</em>
</div>
</td>
<td align="LEFT" valign="TOP">
<input type="TEXT" name="title" size="40" />
</td>
</tr>
<tr>
<td></td>
<td><br><input class="form-element" type="SUBMIT" value=" Add "></td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
lib/python/Products/Sessions/dtml/manageDataManager.dtml
0 → 100644
View file @
2e1e8089
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<form action="manage_changeSDM" method="post">
<table cellspacing="2">
<tr>
<td align="left" valign="top">
<div class="form-label">
Title
</div>
</td>
<td align="left" valign="top">
<input type="text" name="title" size="60" value="&dtml-title;">
</td>
</tr>
<tr>
<td align="left" valign="top">
<div class="form-label">
Transient Object Container Path
</div>
<div class="form-help">
e.g. '/tempFolder/transientObjectContainer'
</div>
</td>
<td align="left" valign="top">
<input type="text" name="path" size="60"
value="&dtml-getContainerPath;">
</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">
<div class="form-label">
Automatic SESSION placement in REQUEST object
</div>
</td>
<td align="LEFT" valign="TOP">
<dtml-if getAutomatic>
<input class="form-element" type='CHECKBOX' name='automatic' CHECKED>
<dtml-else>
<input class="form-element" type='CHECKBOX' name='automatic'>
</dtml-if>
</td>
</tr>
<tr>
<td>
</td>
<td align="left" valign="top">
<div class="form-element">
<input class="form-element" type="submit" value = " Change ">
</div>
</td>
</tr>
</table>
</form>
<dtml-var manage_page_footer>
lib/python/Products/Sessions/dtml/manageIdManager.dtml
0 → 100644
View file @
2e1e8089
<dtml-var manage_page_header>
<dtml-var manage_tabs>
<FORM ACTION="manage_changeBrowserIdManager" METHOD="POST">
<TABLE CELLSPACING="2">
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Browser Id Mgr On
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="checkbox" NAME="on"
<dtml-if isOn>CHECKED</dtml-if>>
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Title
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="title" SIZE="30" value="&dtml-title;">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Browser Token Key
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="tokenkey" SIZE="20" value="&dtml-getTokenKey;">
</TD>
</TR>
<th align=left><strong><em>Token Key Search Namespaces</strong></em></th>
<th align=left><strong><em>Priority</strong></em> (1 is highest)</th>
<tr>
<th align=left class="form-label">Cookies</th>
<td align=left>
<table border=1>
<tr>
<td align=left>
<input type="radio" name="cookiepri:int" value="1"
<dtml-if "getTokenKeyNamespaces().get(1, _.None) == 'cookies'">CHECKED</dtml-if>>1
</td>
<td align=left>
<input type="radio" name="cookiepri:int" value="2"
<dtml-if "getTokenKeyNamespaces().get(2, _.None) == 'cookies'">CHECKED</dtml-if>>2
</td>
<td align=left>
<input type="radio" name="cookiepri:int" value="0"
<dtml-if "'cookies' not in getTokenKeyNamespaces().values()">CHECKED</dtml-if>>Off
</td>
</tr>
</table>
</td>
</tr>
<tr>
<th align=left class="form-label">Form vars</th>
<td align=left>
<table border=1>
<tr>
<td align=left>
<input type="radio" name="formpri:int" value="1"
<dtml-if "getTokenKeyNamespaces().get(1, _.None) == 'form'">CHECKED</dtml-if>>1
</td>
<td align=left>
<input type="radio" name="formpri:int" value="2"
<dtml-if "getTokenKeyNamespaces().get(2, _.None) == 'form'">CHECKED</dtml-if>>2
</td>
<td align=left>
<input type="radio" name="formpri:int" value="0"
<dtml-if "'form' not in getTokenKeyNamespaces().values()">CHECKED</dtml-if>>Off
</td>
</tr>
</table>
</td>
</tr>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Cookie Path
</div>
<div class="form-help">
leave blank to provide no path info in the browser cookie
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="cookiepath" SIZE="20"
value="<dtml-var getCookiePath html_quote>">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Cookie Domain
</div>
<div class="form-help">
leave blank to send cookies without domain <br>
info -- however, if cookie domain is not blank,<br>
it must contain at least two dots)
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="cookiedomain" SIZE="20"
value="<dtml-var getCookieDomain html_quote>">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Cookie Lifetime In Days
</div>
<div class="form-help">
0 means send cookies which last only for the<br>
lifetime of the browser
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="TEXT" NAME="cookielifedays:int" SIZE="20"
value="<dtml-var getCookieLifeDays html_quote>">
</TD>
</TR>
<TR>
<TD ALIGN="LEFT" VALIGN="TOP">
<div class="form-label">
Only Send Cookie Over HTTPS
</div>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP">
<INPUT TYPE="checkbox" NAME="cookiesecure"
<dtml-if getCookieSecure>CHECKED</dtml-if>>
</TD>
</TR>
<TR>
<TD></TD>
<TD><BR><INPUT class="form-element" TYPE="SUBMIT" VALUE=" Change "></TD>
</TR>
</TABLE>
</FORM>
<dtml-var manage_page_footer>
lib/python/Products/Sessions/dtml/mountfail.dtml
0 → 100644
View file @
2e1e8089
<HTML><HEAD><TITLE>Mount Failure Traceback</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" LINK="#000099" VLINK="#555555">
<dtml-var manage_tabs>
<h3>Mount Failure Traceback</h3>
<dtml-let exc=mount_error_>
<dtml-if exc>
<strong>Error type:</strong> <dtml-var "exc[0]" html_quote><br>
<strong>Error value:</strong> <dtml-var "exc[1]" html_quote><br>
<pre>
<dtml-var "exc[2]" html_quote>
</pre>
<dtml-else>
Database not mounted.
</dtml-if>
</dtml-let>
</BODY>
</HTML>
lib/python/Products/Sessions/help/Sessions.stx
0 → 100644
View file @
2e1e8089
This diff is collapsed.
Click to expand it.
lib/python/Products/Sessions/www/datamgr.gif
0 → 100644
View file @
2e1e8089
115 Bytes
lib/python/Products/Sessions/www/idmgr.gif
0 → 100644
View file @
2e1e8089
88 Bytes
lib/python/Products/Sessions/www/ramdb.gif
0 → 100644
View file @
2e1e8089
212 Bytes
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment