~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to wiki/underlay/pages/HelpOnSessions/revisions/00000001

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mto: This revision was merged to the branch mainline in revision 18.
  • Revision ID: james.westby@ubuntu.com-20080622211713-inlv5k4eifxckelr
ImportĀ upstreamĀ versionĀ 1.7.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
## Please edit system and help pages ONLY in the master wiki!
 
2
## For more information, please see MoinMoin:MoinDev/Translation.
 
3
##master-page:Unknown-Page
 
4
##master-date:Unknown-Date
 
5
#acl -All:write Default
 
6
#format wiki
 
7
#language en
 
8
= How sessions work in MoinMoin =
 
9
 
 
10
Sessions in MoinMoin are implemented using a special session handler that can be configured in `cfg.session_handler`. By default, an instance of the class `MoinMoin.session.DefaultSessionHandler` is used for managing sessions.
 
11
 
 
12
Code using the session framework currently includes:
 
13
 * the superuser "change user" functionality, see HelpOnSuperUser
 
14
 * the visited pages trail
 
15
 
 
16
== Session related configuration ==
 
17
|| cookie_domain || `None` || Domain used in the session cookie. ||
 
18
|| cookie_path || `None` || Path used in the session cookie. ||
 
19
|| cookie_lifetime || `12` ||=0: forever, ignore user 'remember_me' setting; >0: n hours, or forever if user checked 'remember_me'; <0 -n hours, ignore user 'remember_me' setting ||
 
20
|| anonymous_session_lifetime || undefined || Set this to a non-zero value to enable anonymous sessions (can be fractional) [hours]. ||
 
21
 
 
22
(!) If you run a wiki farm and you want to share the session cookie between farm wikis, you want to change `cookie_domain` and/or `cookie_path`.
 
23
 
 
24
(!) If you want anonymous users to get session features (e.g. a trail), set `anonymous_session_lifetime`.
 
25
 
 
26
== Replacing session storage ==
 
27
Should you wish to store session data somewhere other than the filesystem cache Moin uses, you can use the `DefaultSessionHandler` along with a different class descending from `DefaultSessionData`. See `MoinMoin/session.py` for more details.
 
28
 
 
29
It is also possible but not recommended to use a different session handler altogether.
 
30
 
 
31
== Session example code ==
 
32
 
 
33
As an extension programmer, in order to use session variables, you can use `request.session` like a dict, values stored there are automatically saved and restored if a session is available. Some more advanced usage is possible, see `MoinMoin.session.SessionData` in the file `MoinMoin/session.py`.
 
34
 
 
35
Here's an example macro using the session code:
 
36
{{{
 
37
#!python
 
38
# -*- coding: iso-8859-1 -*-
 
39
 
 
40
"""
 
41
    Tests session state.
 
42
"""
 
43
 
 
44
Dependencies = ['time']
 
45
 
 
46
def execute(macro, args):
 
47
    if macro.request.session.is_new:
 
48
        return macro.formatter.text('Not storing any state until you send a cookie.')
 
49
    if 'test' in macro.request.session:
 
50
        return macro.formatter.text("Loaded value %d" % macro.request.session['test'])
 
51
    import random
 
52
    value = random.randint(1, 100000)
 
53
    macro.request.session['test'] = value
 
54
    return macro.formatter.text("Set to value %d" % value)
 
55
}}}