annotate MoinMoin/config/multiconfig.py @ 3759:2b78179acbea

normalise mail_enabled to a boolean
author Johannes Berg <johannes AT sipsolutions DOT net>
date Sun, 22 Jun 2008 02:09:17 +0200
parents 507867abcc19
children f004cd750c86
rev   line source
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
1 # -*- coding: iso-8859-1 -*-
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
2 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
3 MoinMoin - Multiple configuration handler and Configuration defaults class
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
4
1918
bb2e053067fb fixing copyright headers: remove umlauts (encoding troubles), make epydoc compatible, reformat
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1868
diff changeset
5 @copyright: 2000-2004 Juergen Hermann <jh@web.de>,
3126
fac1b1e9ea95 multiconfig: better logging, tell path of config that is used
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3120
diff changeset
6 2005-2008 MoinMoin:ThomasWaldmann.
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
7 @license: GNU GPL, see COPYING for details.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
8 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
9
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
10 import re
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
11 import os
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
12 import sys
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
13 import time
3107
c6e39279f83b refactor logging usage
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3097
diff changeset
14
3110
a48929a5036c logging: make it work correctly by doing logging configuration very early
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3107
diff changeset
15 from MoinMoin import log
a48929a5036c logging: make it work correctly by doing logging configuration very early
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3107
diff changeset
16 logging = log.getLogger(__name__)
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
17
1582
f37b49b6313d url_prefix_static: move default to MoinMoin.config, use matching defaults for Twisted/standalone
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1575
diff changeset
18 from MoinMoin import config, error, util, wikiutil
3748
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
19 from MoinMoin.auth import MoinAuth
2307
fe37834deb3d Move a list of event handlers and subscribable events to config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2227
diff changeset
20 import MoinMoin.events as events
2429
0cd1152b8da5 default to email notification of all events to ease migration from old scheme
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 2426
diff changeset
21 from MoinMoin.events import PageChangedEvent, PageRenamedEvent
0cd1152b8da5 default to email notification of all events to ease migration from old scheme
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 2426
diff changeset
22 from MoinMoin.events import PageDeletedEvent, PageCopiedEvent
0cd1152b8da5 default to email notification of all events to ease migration from old scheme
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 2426
diff changeset
23 from MoinMoin.events import PageRevertedEvent, FileAttachedEvent
2009
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
24 from MoinMoin import session
1096
33927b0256ce Changed marshalling format of the full IWID, load full IWID into the RemoteWiki object.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1080
diff changeset
25 from MoinMoin.packages import packLine
1276
7c29a18a7e26 more memory efficient and faster ACL processing, do not have before/after/default acl in ACL object, but only once in cfg
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1212
diff changeset
26 from MoinMoin.security import AccessControlList
2595
5e7b45489430 moved python2.3/2.4 compatibility code to MoinMoin.support.python_compatibility (thanks to Heinrich Wendel)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2491
diff changeset
27 from MoinMoin.support.python_compatibility import set
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
28
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
29 _url_re_cache = None
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
30 _farmconfig_mtime = None
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
31 _config_cache = {}
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
32
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
33
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
34 def _importConfigModule(name):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
35 """ Import and return configuration module and its modification time
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
36
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
37 Handle all errors except ImportError, because missing file is not
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
38 always an error.
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
39
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
40 @param name: module name
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
41 @rtype: tuple
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
42 @return: module, modification time
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
43 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
44 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
45 module = __import__(name, globals(), {})
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
46 mtime = os.path.getmtime(module.__file__)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
47 except ImportError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
48 raise
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
49 except IndentationError, err:
3157
b8cb12fa571b logging: using more logging.exception
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3149
diff changeset
50 logging.exception('Your source code / config file is not correctly indented!')
915
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
51 msg = '''IndentationError: %(err)s
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
52
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
53 The configuration files are python modules. Therefore, whitespace is
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
54 important. Make sure that you use only spaces, no tabs are allowed here!
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
55 You have to use four spaces at the beginning of the line mostly.
915
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
56 ''' % {
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
57 'err': err,
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
58 }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
59 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
60 except Exception, err:
3157
b8cb12fa571b logging: using more logging.exception
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3149
diff changeset
61 logging.exception('An exception happened.')
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
62 msg = '%s: %s' % (err.__class__.__name__, str(err))
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
63 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
64 return module, mtime
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
65
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
66
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
67 def _url_re_list():
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
68 """ Return url matching regular expression
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
69
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
70 Import wikis list from farmconfig on the first call and compile the
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
71 regexes. Later then return the cached regex list.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
72
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
73 @rtype: list of tuples of (name, compiled re object)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
74 @return: url to wiki config name matching list
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
75 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
76 global _url_re_cache, _farmconfig_mtime
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
77 if _url_re_cache is None:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
78 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
79 farmconfig, _farmconfig_mtime = _importConfigModule('farmconfig')
3626
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
80 except ImportError, err:
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
81 if 'farmconfig' in str(err):
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
82 # we failed importing farmconfig
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
83 logging.debug("could not import farmconfig, mapping all URLs to wikiconfig")
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
84 _farmconfig_mtime = 0
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
85 _url_re_cache = [('wikiconfig', re.compile(r'.')), ] # matches everything
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
86 else:
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
87 # maybe there was a failing import statement inside farmconfig
a4e5eed662e1 better handling of ImportErrors within farmconfig (before this fix, it just switched to wikiconfig in that case and confused users with errors about wikiconfig not found...)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3573
diff changeset
88 raise
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
89 else:
3129
d57fed1b0b43 multiconfig: also log which farmconfig we use
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3126
diff changeset
90 logging.info("using farm config: %s" % os.path.abspath(farmconfig.__file__))
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
91 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
92 cache = []
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
93 for name, regex in farmconfig.wikis:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
94 cache.append((name, re.compile(regex)))
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
95 _url_re_cache = cache
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
96 except AttributeError:
3126
fac1b1e9ea95 multiconfig: better logging, tell path of config that is used
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3120
diff changeset
97 logging.error("required 'wikis' list missing in farmconfig")
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
98 msg = """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
99 Missing required 'wikis' list in 'farmconfig.py'.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
100
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
101 If you run a single wiki you do not need farmconfig.py. Delete it and
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
102 use wikiconfig.py.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
103 """
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
104 raise error.ConfigurationError(msg)
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
105 return _url_re_cache
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
106
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
107
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
108 def _makeConfig(name):
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
109 """ Create and return a config instance
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
110
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
111 Timestamp config with either module mtime or farmconfig mtime. This
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
112 mtime can be used later to invalidate older caches.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
113
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
114 @param name: module name
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
115 @rtype: DefaultConfig sub class instance
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
116 @return: new configuration instance
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
117 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
118 global _farmconfig_mtime
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
119 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
120 module, mtime = _importConfigModule(name)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
121 configClass = getattr(module, 'Config')
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
122 cfg = configClass(name)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
123 cfg.cfg_mtime = max(mtime, _farmconfig_mtime)
3129
d57fed1b0b43 multiconfig: also log which farmconfig we use
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3126
diff changeset
124 logging.info("using wiki config: %s" % os.path.abspath(module.__file__))
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
125 except ImportError, err:
3157
b8cb12fa571b logging: using more logging.exception
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3149
diff changeset
126 logging.exception('Could not import.')
915
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
127 msg = '''ImportError: %(err)s
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
128
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
129 Check that the file is in the same directory as the server script. If
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
130 it is not, you must add the path of the directory where the file is
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
131 located to the python path in the server script. See the comments at
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
132 the top of the server script.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
133
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
134 Check that the configuration file name is either "wikiconfig.py" or the
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
135 module name specified in the wikis list in farmconfig.py. Note that the
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
136 module name does not include the ".py" suffix.
915
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
137 ''' % {
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
138 'err': err,
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
139 }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
140 raise error.ConfigurationError(msg)
915
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
141 except AttributeError, err:
3157
b8cb12fa571b logging: using more logging.exception
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3149
diff changeset
142 logging.exception('An exception occured.')
915
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
143 msg = '''AttributeError: %(err)s
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
144
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
145 Could not find required "Config" class in "%(name)s.py".
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
146
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
147 This might happen if you are trying to use a pre 1.3 configuration file, or
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
148 made a syntax or spelling error.
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
149
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
150 Another reason for this could be a name clash. It is not possible to have
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
151 config names like e.g. stats.py - because that colides with MoinMoin/stats/ -
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
152 have a look into your MoinMoin code directory what other names are NOT
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
153 possible.
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
154
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
155 Please check your configuration file. As an example for correct syntax,
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
156 use the wikiconfig.py file from the distribution.
915
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
157 ''' % {
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
158 'name': name,
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
159 'err': err,
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
160 }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
161 raise error.ConfigurationError(msg)
2009
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
162
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
163 # postprocess configuration
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
164 # 'setuid' special auth method auth method can log out
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
165 cfg.auth_can_logout = ['setuid']
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
166 cfg.auth_login_inputs = []
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
167 found_names = []
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
168 for auth in cfg.auth:
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
169 if not auth.name:
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
170 raise error.ConfigurationError("Auth methods must have a name.")
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
171 if auth.name in found_names:
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
172 raise error.ConfigurationError("Auth method names must be unique.")
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
173 found_names.append(auth.name)
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
174 if auth.logout_possible and auth.name:
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
175 cfg.auth_can_logout.append(auth.name)
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
176 for input in auth.login_inputs:
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
177 if not input in cfg.auth_login_inputs:
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
178 cfg.auth_login_inputs.append(input)
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
179 cfg.auth_have_login = len(cfg.auth_login_inputs) > 0
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
180
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
181 return cfg
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
182
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
183
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
184 def _getConfigName(url):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
185 """ Return config name for url or raise """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
186 for name, regex in _url_re_list():
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
187 match = regex.match(url)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
188 if match:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
189 return name
1575
45f876b6a109 raise NoConfigMatchedError
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1573
diff changeset
190 raise error.NoConfigMatchedError
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
191
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
192
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
193 def getConfig(url):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
194 """ Return cached config instance for url or create new one
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
195
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
196 If called by many threads in the same time multiple config
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
197 instances might be created. The first created item will be
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
198 returned, using dict.setdefault.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
199
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
200 @param url: the url from request, possibly matching specific wiki
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
201 @rtype: DefaultConfig subclass instance
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
202 @return: config object for specific wiki
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
203 """
1582
f37b49b6313d url_prefix_static: move default to MoinMoin.config, use matching defaults for Twisted/standalone
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1575
diff changeset
204 cfgName = _getConfigName(url)
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
205 try:
1582
f37b49b6313d url_prefix_static: move default to MoinMoin.config, use matching defaults for Twisted/standalone
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1575
diff changeset
206 cfg = _config_cache[cfgName]
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
207 except KeyError:
1582
f37b49b6313d url_prefix_static: move default to MoinMoin.config, use matching defaults for Twisted/standalone
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1575
diff changeset
208 cfg = _makeConfig(cfgName)
f37b49b6313d url_prefix_static: move default to MoinMoin.config, use matching defaults for Twisted/standalone
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1575
diff changeset
209 cfg = _config_cache.setdefault(cfgName, cfg)
f37b49b6313d url_prefix_static: move default to MoinMoin.config, use matching defaults for Twisted/standalone
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1575
diff changeset
210 return cfg
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
211
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
212
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
213 # This is a way to mark some text for the gettext tools so that they don't
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
214 # get orphaned. See http://www.python.org/doc/current/lib/node278.html.
1920
b06ef2a53efa 'make pylint', fixed lots of minor stuff found by pylint (and there is still lots left to do)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1918
diff changeset
215 def _(text):
b06ef2a53efa 'make pylint', fixed lots of minor stuff found by pylint (and there is still lots left to do)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1918
diff changeset
216 return text
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
217
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
218
1549
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
219 class CacheClass:
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
220 """ just a container for stuff we cache """
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
221 pass
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
222
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
223
3215
f12af017cfd1 fix DefaultConfig to be a new style class (it is using properties!)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3175
diff changeset
224 class DefaultConfig(object):
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
225 """ Configuration base class with default config values
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
226 (added below)
3482
b0a794176dc4 sorted builtin default config, added more comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3476
diff changeset
227 """
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
228 # Things that shouldn't be here...
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
229 _subscribable_events = None
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
230
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
231 def __init__(self, siteid):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
232 """ Init Config instance """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
233 self.siteid = siteid
1549
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
234 self.cache = CacheClass()
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
235
1624
0b0b94e1680f cache pagelist using new cache mechanism
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1620
diff changeset
236 from MoinMoin.Page import ItemCache
0b0b94e1680f cache pagelist using new cache mechanism
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1620
diff changeset
237 self.cache.meta = ItemCache('meta')
0b0b94e1680f cache pagelist using new cache mechanism
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1620
diff changeset
238 self.cache.pagelists = ItemCache('pagelists')
1620
a86f20280204 implement and use ItemMetaDataCache
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1615
diff changeset
239
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
240 if self.config_check_enabled:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
241 self._config_check()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
242
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
243 # define directories
1011
58f5af49cd03 move config and multiconfig to config/ package, see HINT in CHANGES
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 932
diff changeset
244 self.moinmoin_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
245 data_dir = os.path.normpath(self.data_dir)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
246 self.data_dir = data_dir
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
247 for dirname in ('user', 'cache', 'plugin'):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
248 name = dirname + '_dir'
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
249 if not getattr(self, name, None):
1929
aa6aa944246b introduce per-user and per-session secrets that are used for the cookie
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1920
diff changeset
250 setattr(self, name, os.path.abspath(os.path.join(data_dir, dirname)))
855
481c72d4a181 support for common indices directory cfg.xapian_index_dir
Franz Pletz <fpletz AT franz-pletz DOT org>
parents: 838
diff changeset
251
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
252 # Try to decode certain names which allow unicode
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
253 self._decode()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
254
1549
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
255 # After that, pre-compile some regexes
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
256 self.cache.page_category_regex = re.compile(self.page_category_regex, re.UNICODE)
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
257 self.cache.page_dict_regex = re.compile(self.page_dict_regex, re.UNICODE)
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
258 self.cache.page_group_regex = re.compile(self.page_group_regex, re.UNICODE)
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
259 self.cache.page_template_regex = re.compile(self.page_template_regex, re.UNICODE)
3573
124d0ef138aa change page_*_regex processing, see docs/CHANGES (fixes Xapian category search for non-english)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3541
diff changeset
260
124d0ef138aa change page_*_regex processing, see docs/CHANGES (fixes Xapian category search for non-english)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3541
diff changeset
261 # the ..._regexact versions only match if nothing is left (exact match)
124d0ef138aa change page_*_regex processing, see docs/CHANGES (fixes Xapian category search for non-english)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3541
diff changeset
262 self.cache.page_category_regexact = re.compile(u'^%s$' % self.page_category_regex, re.UNICODE)
124d0ef138aa change page_*_regex processing, see docs/CHANGES (fixes Xapian category search for non-english)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3541
diff changeset
263 self.cache.page_dict_regexact = re.compile(u'^%s$' % self.page_dict_regex, re.UNICODE)
124d0ef138aa change page_*_regex processing, see docs/CHANGES (fixes Xapian category search for non-english)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3541
diff changeset
264 self.cache.page_group_regexact = re.compile(u'^%s$' % self.page_group_regex, re.UNICODE)
124d0ef138aa change page_*_regex processing, see docs/CHANGES (fixes Xapian category search for non-english)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3541
diff changeset
265 self.cache.page_template_regexact = re.compile(u'^%s$' % self.page_template_regex, re.UNICODE)
124d0ef138aa change page_*_regex processing, see docs/CHANGES (fixes Xapian category search for non-english)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3541
diff changeset
266
1557
60067807cf9a Allow empty strings for ua_spiders.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1555
diff changeset
267 self.cache.ua_spiders = self.ua_spiders and re.compile(self.ua_spiders, re.I)
1549
e36313297589 introduce request.cfg.cache object, start using it for some precompiled regexes
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1548
diff changeset
268
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
269 self._check_directories()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
270
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
271 if not isinstance(self.superuser, list):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
272 msg = """The superuser setting in your wiki configuration is not a list
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
273 (e.g. ['Sample User', 'AnotherUser']).
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
274 Please change it in your wiki configuration and try again."""
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
275 raise error.ConfigurationError(msg)
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
276
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
277 self._loadPluginModule()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
278
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
279 # Preparse user dicts
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
280 self._fillDicts()
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
281
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
282 # Normalize values
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
283 self.language_default = self.language_default.lower()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
284
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
285 # Use site name as default name-logo
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
286 if self.logo_string is None:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
287 self.logo_string = self.sitename
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
288
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
289 # Check for needed modules
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
290
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
291 # FIXME: maybe we should do this check later, just before a
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
292 # chart is needed, maybe in the chart module, instead doing it
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
293 # for each request. But this require a large refactoring of
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
294 # current code.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
295 if self.chart_options:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
296 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
297 import gdchart
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
298 except ImportError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
299 self.chart_options = None
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
300
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
301 # post process
2430
c7bb078d3318 commit b8b87daf7cc4 broke farms because one dict was shared, fix it
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 2429
diff changeset
302
c7bb078d3318 commit b8b87daf7cc4 broke farms because one dict was shared, fix it
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 2429
diff changeset
303 # internal dict for plugin `modules' lists
c7bb078d3318 commit b8b87daf7cc4 broke farms because one dict was shared, fix it
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 2429
diff changeset
304 self._site_plugin_lists = {}
c7bb078d3318 commit b8b87daf7cc4 broke farms because one dict was shared, fix it
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 2429
diff changeset
305
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
306 # we replace any string placeholders with config values
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
307 # e.g u'%(page_front_page)s' % self
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
308 self.navi_bar = [elem % self for elem in self.navi_bar]
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
309 self.backup_exclude = [elem % self for elem in self.backup_exclude]
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
310
2989
c678e73b7730 auto-disable xapian_search when xapian fails to import (port from 1.6)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2985
diff changeset
311 # check if python-xapian is installed
c678e73b7730 auto-disable xapian_search when xapian fails to import (port from 1.6)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2985
diff changeset
312 if self.xapian_search:
c678e73b7730 auto-disable xapian_search when xapian fails to import (port from 1.6)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2985
diff changeset
313 try:
c678e73b7730 auto-disable xapian_search when xapian fails to import (port from 1.6)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2985
diff changeset
314 import xapian
c678e73b7730 auto-disable xapian_search when xapian fails to import (port from 1.6)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2985
diff changeset
315 except ImportError, err:
c678e73b7730 auto-disable xapian_search when xapian fails to import (port from 1.6)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2985
diff changeset
316 self.xapian_search = False
c678e73b7730 auto-disable xapian_search when xapian fails to import (port from 1.6)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2985
diff changeset
317 logging.error("xapian_search was auto-disabled because python-xapian is not installed [%s]." % str(err))
c678e73b7730 auto-disable xapian_search when xapian fails to import (port from 1.6)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2985
diff changeset
318
788
4840926790f5 indexed search: added Xapian support (needs more work), removed Lupy support
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 528
diff changeset
319 # list to cache xapian searcher objects
4840926790f5 indexed search: added Xapian support (needs more work), removed Lupy support
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 528
diff changeset
320 self.xapian_searchers = []
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
321
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
322 # check if mail is possible and set flag:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
323 self.mail_enabled = (self.mail_smarthost is not None or self.mail_sendmail is not None) and self.mail_from
3759
2b78179acbea normalise mail_enabled to a boolean
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3751
diff changeset
324 self.mail_enabled = self.mail_enabled and True or False
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
325
2072
d347a0303be1 Add JID field and a button to send account details with Jabber to user preferences.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2021
diff changeset
326 # check if jabber bot is available and set flag:
2160
7c8ee12f8c1d Fix an error with missing bot_host attribute. Use more descriptive names.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2152
diff changeset
327 self.jabber_enabled = self.notification_bot_uri is not None
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
328
2147
b01a6ef1be4c Get rid of the global xmlrpc Server object. Instantiate one in config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2091
diff changeset
329 # if we are to use the jabber bot, instantiate a server object for future use
b01a6ef1be4c Get rid of the global xmlrpc Server object. Instantiate one in config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2091
diff changeset
330 if self.jabber_enabled:
2336
10be78f1fa97 Merge main.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2331 2286
diff changeset
331
2331
493565b060ff Raise exception if notifications are enabled but no secret is set.
Karol Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2324
diff changeset
332 errmsg = "You must set a (long) secret string to send notifications!"
493565b060ff Raise exception if notifications are enabled but no secret is set.
Karol Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2324
diff changeset
333 try:
493565b060ff Raise exception if notifications are enabled but no secret is set.
Karol Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2324
diff changeset
334 if not self.secret:
493565b060ff Raise exception if notifications are enabled but no secret is set.
Karol Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2324
diff changeset
335 raise error.ConfigurationError(errmsg)
493565b060ff Raise exception if notifications are enabled but no secret is set.
Karol Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2324
diff changeset
336 except AttributeError, err:
3175
2a3a6cb34e45 pylint findings: fix some harmless stuff
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3157
diff changeset
337 raise error.ConfigurationError(errmsg)
2336
10be78f1fa97 Merge main.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2331 2286
diff changeset
338
2147
b01a6ef1be4c Get rid of the global xmlrpc Server object. Instantiate one in config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2091
diff changeset
339 from xmlrpclib import Server
2160
7c8ee12f8c1d Fix an error with missing bot_host attribute. Use more descriptive names.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2152
diff changeset
340 self.notification_server = Server(self.notification_bot_uri, )
1080
f8ba3b0ca9f4 Use the meta dict instead of a distinct file for the IWID.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1053
diff changeset
341
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
342 # Cache variables for the properties below
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
343 self._iwid = self._iwid_full = self._meta_dict = None
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
344
1552
f9639ed07af2 using request.cfg.cache more
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1549
diff changeset
345 self.cache.acl_rights_before = AccessControlList(self, [self.acl_rights_before])
f9639ed07af2 using request.cfg.cache more
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1549
diff changeset
346 self.cache.acl_rights_default = AccessControlList(self, [self.acl_rights_default])
f9639ed07af2 using request.cfg.cache more
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1549
diff changeset
347 self.cache.acl_rights_after = AccessControlList(self, [self.acl_rights_after])
1276
7c29a18a7e26 more memory efficient and faster ACL processing, do not have before/after/default acl in ACL object, but only once in cfg
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1212
diff changeset
348
1339
544b931cd965 new setting url_prefix_action, cleanup page.url/link_to, wikiutil.link_tag
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1318
diff changeset
349 action_prefix = self.url_prefix_action
544b931cd965 new setting url_prefix_action, cleanup page.url/link_to, wikiutil.link_tag
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1318
diff changeset
350 if action_prefix is not None and action_prefix.endswith('/'): # make sure there is no trailing '/'
544b931cd965 new setting url_prefix_action, cleanup page.url/link_to, wikiutil.link_tag
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1318
diff changeset
351 self.url_prefix_action = action_prefix[:-1]
544b931cd965 new setting url_prefix_action, cleanup page.url/link_to, wikiutil.link_tag
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1318
diff changeset
352
1654
2a1f570ea6d4 cfg.url_prefix_local for stuff that needs to be loaded from same-site to work correctly (e.g. FCKeditor - ported from 1.5)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1624
diff changeset
353 if self.url_prefix_local is None:
2a1f570ea6d4 cfg.url_prefix_local for stuff that needs to be loaded from same-site to work correctly (e.g. FCKeditor - ported from 1.5)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1624
diff changeset
354 self.url_prefix_local = self.url_prefix_static
2a1f570ea6d4 cfg.url_prefix_local for stuff that needs to be loaded from same-site to work correctly (e.g. FCKeditor - ported from 1.5)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1624
diff changeset
355
2a1f570ea6d4 cfg.url_prefix_local for stuff that needs to be loaded from same-site to work correctly (e.g. FCKeditor - ported from 1.5)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1624
diff changeset
356
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
357 def load_meta_dict(self):
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
358 """ The meta_dict contains meta data about the wiki instance. """
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
359 if getattr(self, "_meta_dict", None) is None:
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
360 self._meta_dict = wikiutil.MetaDict(os.path.join(self.data_dir, 'meta'), self.cache_dir)
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
361 return self._meta_dict
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
362 meta_dict = property(load_meta_dict)
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
363
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
364 # lazily load iwid(_full)
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
365 def make_iwid_property(attr):
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
366 def getter(self):
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
367 if getattr(self, attr, None) is None:
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
368 self.load_IWID()
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
369 return getattr(self, attr)
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
370 return property(getter)
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
371 iwid = make_iwid_property("_iwid")
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
372 iwid_full = make_iwid_property("_iwid_full")
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
373
2307
fe37834deb3d Move a list of event handlers and subscribable events to config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2227
diff changeset
374 # lazily load a list of events a user can subscribe to
fe37834deb3d Move a list of event handlers and subscribable events to config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2227
diff changeset
375 def make_subscribable_events_prop():
fe37834deb3d Move a list of event handlers and subscribable events to config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2227
diff changeset
376 def getter(self):
fe37834deb3d Move a list of event handlers and subscribable events to config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2227
diff changeset
377 if getattr(self, "_subscribable_events", None) is None:
fe37834deb3d Move a list of event handlers and subscribable events to config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2227
diff changeset
378 self._subscribable_events = events.get_subscribable_events()
fe37834deb3d Move a list of event handlers and subscribable events to config.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2227
diff changeset
379 return getattr(self, "_subscribable_events")
2643
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
380
3223
6ca25943fd1a Fixed PageEditor tests; also fixed the subscribable_events property
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 3215
diff changeset
381 def setter(self, new_events):
6ca25943fd1a Fixed PageEditor tests; also fixed the subscribable_events property
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 3215
diff changeset
382 self._subscribable_events = new_events
2643
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
383
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
384 return property(getter, setter)
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
385 subscribable_events = make_subscribable_events_prop()
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
386
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
387 # lazily create a list of event handlers
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
388 def make_event_handlers_prop():
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
389 def getter(self):
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
390 if getattr(self, "_event_handlers", None) is None:
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
391 self._event_handlers = events.get_handlers(self)
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
392 return getattr(self, "_event_handlers")
3240
e8fcaf99434f config.multiconfig: PEP8 fixed
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3223
diff changeset
393
3223
6ca25943fd1a Fixed PageEditor tests; also fixed the subscribable_events property
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 3215
diff changeset
394 def setter(self, new_handlers):
6ca25943fd1a Fixed PageEditor tests; also fixed the subscribable_events property
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 3215
diff changeset
395 self._event_handlers = new_handlers
3240
e8fcaf99434f config.multiconfig: PEP8 fixed
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3223
diff changeset
396
3223
6ca25943fd1a Fixed PageEditor tests; also fixed the subscribable_events property
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 3215
diff changeset
397 return property(getter, setter)
2643
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
398 event_handlers = make_event_handlers_prop()
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
399
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
400 def load_IWID(self):
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
401 """ Loads the InterWikiID of this instance. It is used to identify the instance
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
402 globally.
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
403 The IWID is available as cfg.iwid
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
404 The full IWID containing the interwiki name is available as cfg.iwid_full
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
405 This method is called by the property.
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
406 """
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
407 try:
1080
f8ba3b0ca9f4 Use the meta dict instead of a distinct file for the IWID.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1053
diff changeset
408 iwid = self.meta_dict['IWID']
f8ba3b0ca9f4 Use the meta dict instead of a distinct file for the IWID.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1053
diff changeset
409 except KeyError:
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
410 iwid = util.random_string(16).encode("hex") + "-" + str(int(time.time()))
1080
f8ba3b0ca9f4 Use the meta dict instead of a distinct file for the IWID.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1053
diff changeset
411 self.meta_dict['IWID'] = iwid
f8ba3b0ca9f4 Use the meta dict instead of a distinct file for the IWID.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1053
diff changeset
412 self.meta_dict.sync()
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
413
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
414 self._iwid = iwid
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
415 if self.interwikiname is not None:
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
416 self._iwid_full = packLine([iwid, self.interwikiname])
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
417 else:
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
418 self._iwid_full = packLine([iwid])
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
419
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
420 def _config_check(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
421 """ Check namespace and warn about unknown names
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
422
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
423 Warn about names which are not used by DefaultConfig, except
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
424 modules, classes, _private or __magic__ names.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
425
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
426 This check is disabled by default, when enabled, it will show an
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
427 error message with unknown names.
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
428 """
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
429 unknown = ['"%s"' % name for name in dir(self)
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
430 if not name.startswith('_') and
1868
64507f46beb2 reduce usage of has_key()
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1799
diff changeset
431 name not in DefaultConfig.__dict__ and
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
432 not isinstance(getattr(self, name), (type(sys), type(DefaultConfig)))]
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
433 if unknown:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
434 msg = """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
435 Unknown configuration options: %s.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
436
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
437 For more information, visit HelpOnConfiguration. Please check your
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
438 configuration for typos before requesting support or reporting a bug.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
439 """ % ', '.join(unknown)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
440 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
441
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
442 def _decode(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
443 """ Try to decode certain names, ignore unicode values
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
444
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
445 Try to decode str using utf-8. If the decode fail, raise FatalError.
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
446
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
447 Certain config variables should contain unicode values, and
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
448 should be defined with u'text' syntax. Python decode these if
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
449 the file have a 'coding' line.
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
450
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
451 This will allow utf-8 users to use simple strings using, without
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
452 using u'string'. Other users will have to use u'string' for
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
453 these names, because we don't know what is the charset of the
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
454 config files.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
455 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
456 charset = 'utf-8'
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
457 message = u'''
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
458 "%(name)s" configuration variable is a string, but should be
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
459 unicode. Use %(name)s = u"value" syntax for unicode variables.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
460
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
461 Also check your "-*- coding -*-" line at the top of your configuration
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
462 file. It should match the actual charset of the configuration file.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
463 '''
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
464
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
465 decode_names = (
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
466 'sitename', 'logo_string', 'navi_bar', 'page_front_page',
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
467 'page_category_regex', 'page_dict_regex',
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
468 'page_group_regex', 'page_template_regex', 'page_license_page',
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
469 'page_local_spelling_words', 'acl_rights_default',
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
470 'acl_rights_before', 'acl_rights_after', 'mail_from'
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
471 )
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
472
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
473 for name in decode_names:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
474 attr = getattr(self, name, None)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
475 if attr:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
476 # Try to decode strings
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
477 if isinstance(attr, str):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
478 try:
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
479 setattr(self, name, unicode(attr, charset))
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
480 except UnicodeError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
481 raise error.ConfigurationError(message %
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
482 {'name': name})
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
483 # Look into lists and try to decode strings inside them
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
484 elif isinstance(attr, list):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
485 for i in xrange(len(attr)):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
486 item = attr[i]
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
487 if isinstance(item, str):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
488 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
489 attr[i] = unicode(item, charset)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
490 except UnicodeError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
491 raise error.ConfigurationError(message %
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
492 {'name': name})
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
493
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
494 def _check_directories(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
495 """ Make sure directories are accessible
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
496
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
497 Both data and underlay should exists and allow read, write and
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
498 execute.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
499 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
500 mode = os.F_OK | os.R_OK | os.W_OK | os.X_OK
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
501 for attr in ('data_dir', 'data_underlay_dir'):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
502 path = getattr(self, attr)
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
503
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
504 # allow an empty underlay path or None
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
505 if attr == 'data_underlay_dir' and not path:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
506 continue
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
507
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
508 path_pages = os.path.join(path, "pages")
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
509 if not (os.path.isdir(path_pages) and os.access(path_pages, mode)):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
510 msg = '''
3490
af3460a4cb79 fix some typos in messages / comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3485
diff changeset
511 %(attr)s "%(path)s" does not exist, or has incorrect ownership or
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
512 permissions.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
513
3490
af3460a4cb79 fix some typos in messages / comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3485
diff changeset
514 Make sure the directory and the subdirectory "pages" are owned by the web
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
515 server and are readable, writable and executable by the web server user
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
516 and group.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
517
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
518 It is recommended to use absolute paths and not relative paths. Check
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
519 also the spelling of the directory name.
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
520 ''' % {'attr': attr, 'path': path, }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
521 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
522
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
523 def _loadPluginModule(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
524 """ import plugin module under configname.plugin
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
525
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
526 To be able to import plugin from arbitrary path, we have to load
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
527 the base package once using imp.load_module. Later, we can use
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
528 standard __import__ call to load plugins in this package.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
529
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
530 Since each wiki has unique plugins, we load the plugin package
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
531 under the wiki configuration module, named self.siteid.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
532 """
1791
6dd2e29acffe Eclipse PyDev Check: fixed lots of its errors and warnings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1787
diff changeset
533 import imp
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
534
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
535 name = self.siteid + '.plugin'
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
536 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
537 # Lock other threads while we check and import
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
538 imp.acquire_lock()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
539 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
540 # If the module is not loaded, try to load it
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
541 if not name in sys.modules:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
542 # Find module on disk and try to load - slow!
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
543 plugin_parent_dir = os.path.abspath(os.path.join(self.plugin_dir, '..'))
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
544 fp, path, info = imp.find_module('plugin', [plugin_parent_dir])
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
545 try:
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
546 # Load the module and set in sys.modules
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
547 module = imp.load_module(name, fp, path, info)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
548 sys.modules[self.siteid].plugin = module
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
549 finally:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
550 # Make sure fp is closed properly
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
551 if fp:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
552 fp.close()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
553 finally:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
554 imp.release_lock()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
555 except ImportError, err:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
556 msg = '''
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
557 Could not import plugin package "%(path)s/plugin" because of ImportError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
558 %(err)s.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
559
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
560 Make sure your data directory path is correct, check permissions, and
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
561 that the data/plugin directory has an __init__.py file.
915
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
562 ''' % {
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
563 'path': self.data_dir,
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
564 'err': str(err),
f3f38ecf4cf3 add hint to configuration error msg about potential name clash reason
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 877
diff changeset
565 }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
566 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
567
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
568 def _fillDicts(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
569 """ fill config dicts
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
570
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
571 Fills in missing dict keys of derived user config by copying
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
572 them from this base class.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
573 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
574 # user checkbox defaults
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
575 for key, value in DefaultConfig.user_checkbox_defaults.items():
1868
64507f46beb2 reduce usage of has_key()
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1799
diff changeset
576 if key not in self.user_checkbox_defaults:
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
577 self.user_checkbox_defaults[key] = value
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
578
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
579 def __getitem__(self, item):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
580 """ Make it possible to access a config object like a dict """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
581 return getattr(self, item)
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
582
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
583
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
584 def _default_password_checker(request, username, password):
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
585 """ Check if a password is secure enough.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
586 We use a built-in check to get rid of the worst passwords.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
587
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
588 We do NOT use cracklib / python-crack here any more because it is
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
589 not thread-safe (we experienced segmentation faults when using it).
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
590
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
591 If you don't want to check passwords, use password_checker = None.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
592
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
593 @return: None if there is no problem with the password,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
594 some string with an error msg, if the password is problematic.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
595 """
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
596
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
597 try:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
598 # in any case, do a very simple built-in check to avoid the worst passwords
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
599 if len(password) < 6:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
600 raise ValueError("Password too short.")
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
601 if len(set(password)) < 4:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
602 raise ValueError("Password has not enough different characters.")
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
603
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
604 username_lower = username.lower()
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
605 password_lower = password.lower()
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
606 if username in password or password in username or \
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
607 username_lower in password_lower or password_lower in username_lower:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
608 raise ValueError("Password too easy (containment).")
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
609
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
610 keyboards = (ur"`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./", # US kbd
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
611 ur"^1234567890ß´qwertzuiopü+asdfghjklöä#yxcvbnm,.-", # german kbd
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
612 ) # add more keyboards!
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
613 for kbd in keyboards:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
614 rev_kbd = kbd[::-1]
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
615 if password in kbd or password in rev_kbd or \
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
616 password_lower in kbd or password_lower in rev_kbd:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
617 raise ValueError("Password too easy (kbd sequence)")
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
618 return None
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
619 except ValueError, err:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
620 return str(err)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
621
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
622
3748
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
623 class DefaultExpression(object):
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
624 def __init__(self, exprstr):
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
625 self.text = exprstr
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
626 self.value = eval(exprstr)
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
627
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
628 options_no_group_name = {
3749
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
629 'session': ('Session settings', None, (
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
630 ('session_handler', DefaultExpression('session.DefaultSessionHandler()'),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
631 "See HelpOnSessions."),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
632 ('session_id_handler', DefaultExpression('session.MoinCookieSessionIDHandler()'),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
633 "Only used by the DefaultSessionHandler, see HelpOnSessions."),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
634 ('cookie_domain', None, None),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
635 ('cookie_path', None, None),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
636 ('cookie_lifetime', 12, None),
3750
d5b786be06d7 make anonymous_session_lifetime a proper setting
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3749
diff changeset
637 ('anonymous_session_lifetime', None,
d5b786be06d7 make anonymous_session_lifetime a proper setting
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3749
diff changeset
638 'Session lifetime of users who are not logged in.'),
3749
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
639 )),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
640
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
641 'various': ('Various', None, (
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
642 ('DesktopEdition',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
643 False,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
644 'True gives all local users special powers - ONLY use for MMDE style usage!'),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
645 ('SecurityPolicy',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
646 None,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
647 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
648
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
649 ('actions_excluded',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
650 ['xmlrpc', # we do not want wiki admins unknowingly offering xmlrpc service
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
651 'MyPages', # only works when used with a non-default SecurityPolicy (e.g. autoadmin)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
652 'CopyPage', # has questionable behaviour regarding subpages a user can't read, but can copy
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
653 ],
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
654 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
655
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
656 ('allow_xslt', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
657 ('antispam_master_url', "http://master.moinmo.in/?action=xmlrpc2", None),
3748
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
658 ('auth', DefaultExpression('[MoinAuth()]'), None),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
659 ('auth_methods_trusted', ['http', 'xmlrpc_applytoken'], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
660
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
661 ('bang_meta', True, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
662 ('caching_formats', ['text_html'], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
663 ('changed_time_fmt', '%H:%M', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
664
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
665 ('chart_options', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
666
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
667 ('config_check_enabled', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
668
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
669 ('data_dir', './data/', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
670 ('data_underlay_dir', './underlay/', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
671
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
672 ('date_fmt', '%Y-%m-%d', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
673 ('datetime_fmt', '%Y-%m-%d %H:%M:%S', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
674
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
675 ('default_markup', 'wiki', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
676 ('docbook_html_dir', r"/usr/share/xml/docbook/stylesheet/nwalsh/html/", None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
677
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
678 ('edit_bar', ['Edit', 'Comments', 'Discussion', 'Info', 'Subscribe', 'Quicklink', 'Attachments', 'ActionsMenu'], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
679 ('editor_default', 'text', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
680 ('editor_force', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
681 ('editor_ui', 'freechoice', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
682 ('editor_quickhelp', {
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
683 # editor markup hints quickhelp
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
684 # MUST be in wiki markup, even if the help is not for the wiki parser!
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
685 'wiki': _(u"""\
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
686 Emphasis:: <<Verbatim('')>>''italics''<<Verbatim('')>>; <<Verbatim(''')>>'''bold'''<<Verbatim(''')>>; <<Verbatim(''''')>>'''''bold italics'''''<<Verbatim(''''')>>; <<Verbatim('')>>''mixed ''<<Verbatim(''')>>'''''bold'''<<Verbatim(''')>> and italics''<<Verbatim('')>>; <<Verbatim(----)>> horizontal rule.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
687 Headings:: = Title 1 =; == Title 2 ==; === Title 3 ===; ==== Title 4 ====; ===== Title 5 =====.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
688 Lists:: space and one of: * bullets; 1., a., A., i., I. numbered items; 1.#n start numbering at n; space alone indents.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
689 Links:: <<Verbatim(JoinCapitalizedWords)>>; <<Verbatim([[target|linktext]])>>.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
690 Tables:: || cell text |||| cell text spanning 2 columns ||; no trailing white space allowed after tables or titles.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
691
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
692 (!) For more help, see HelpOnEditing or SyntaxReference.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
693 """),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
694 'rst': _("""\
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
695 {{{
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
696 Emphasis: *italic* **bold** ``monospace``
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
697
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
698 Headings: Heading 1 Heading 2 Heading 3
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
699 ========= --------- ~~~~~~~~~
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
700
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
701 Horizontal rule: ----
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
702
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
703 Links: TrailingUnderscore_ `multi word with backticks`_ external_
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
704
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
705 .. _external: http://external-site.example.org/foo/
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
706
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
707 Lists: * bullets; 1., a. numbered items.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
708 }}}
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
709 (!) For more help, see the
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
710 [[http://docutils.sourceforge.net/docs/user/rst/quickref.html|reStructuredText Quick Reference]].
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
711 """),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
712 'creole': _(u"""\
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
713 Emphasis:: <<Verbatim(//)>>''italics''<<Verbatim(//)>>; <<Verbatim(**)>>'''bold'''<<Verbatim(**)>>; <<Verbatim(**//)>>'''''bold italics'''''<<Verbatim(//**)>>; <<Verbatim(//)>>''mixed ''<<Verbatim(**)>>'''''bold'''<<Verbatim(**)>> and italics''<<Verbatim(//)>>;
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
714 Horizontal Rule:: <<Verbatim(----)>>
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
715 Force Linebreak:: <<Verbatim(\\\\)>>
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
716 Headings:: = Title 1 =; == Title 2 ==; === Title 3 ===; ==== Title 4 ====; ===== Title 5 =====.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
717 Lists:: * bullets; ** sub-bullets; # numbered items; ## numbered sub items.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
718 Links:: <<Verbatim([[target]])>>; <<Verbatim([[target|linktext]])>>.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
719 Tables:: |= header text | cell text | more cell text |;
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
720
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
721 (!) For more help, see HelpOnEditing or HelpOnCreoleSyntax.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
722 """),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
723 }, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
724 ('edit_locking', 'warn 10', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
725 ('edit_ticketing', True, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
726 ('edit_rows', 20, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
727
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
728 ('history_count', (100, 200), None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
729
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
730 ('hosts_deny', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
731
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
732 ('html_head', '', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
733 ('html_head_queries', '''<meta name="robots" content="noindex,nofollow">\n''', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
734 ('html_head_posts', '''<meta name="robots" content="noindex,nofollow">\n''', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
735 ('html_head_index', '''<meta name="robots" content="index,follow">\n''', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
736 ('html_head_normal', '''<meta name="robots" content="index,nofollow">\n''', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
737 ('html_pagetitle', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
738
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
739 ('interwikiname', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
740 ('interwiki_preferred', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
741
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
742 ('language_default', 'en', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
743 ('language_ignore_browser', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
744
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
745 ('logo_string', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
746
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
747 ('log_reverse_dns_lookups', True, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
748 ('log_timing', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
749
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
750 # some dangerous mimetypes (we don't use "content-disposition: inline" for them when a user
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
751 # downloads such attachments, because the browser might execute e.g. Javascript contained
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
752 # in the HTML and steal your moin session cookie or do other nasty stuff)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
753 ('mimetypes_xss_protect',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
754 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
755 'text/html',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
756 'application/x-shockwave-flash',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
757 'application/xhtml+xml',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
758 ], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
759
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
760 ('mimetypes_embed',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
761 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
762 'application/x-dvi',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
763 'application/postscript',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
764 'application/pdf',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
765 'application/ogg',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
766 'application/vnd.visio',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
767 'image/x-ms-bmp',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
768 'image/svg+xml',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
769 'image/tiff',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
770 'image/x-photoshop',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
771 'audio/mpeg',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
772 'audio/midi',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
773 'audio/x-wav',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
774 'video/fli',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
775 'video/mpeg',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
776 'video/quicktime',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
777 'video/x-msvideo',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
778 'chemical/x-pdb',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
779 'x-world/x-vrml',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
780 ], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
781
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
782
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
783 ('navi_bar', [u'RecentChanges', u'FindPage', u'HelpContents', ], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
784
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
785 ('notification_bot_uri', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
786
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
787 ('page_credits',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
788 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
789 '<a href="http://moinmo.in/" title="This site uses the MoinMoin Wiki software.">MoinMoin Powered</a>',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
790 '<a href="http://moinmo.in/Python" title="MoinMoin is written in Python.">Python Powered</a>',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
791 '<a href="http://moinmo.in/GPL" title="MoinMoin is GPL licensed.">GPL licensed</a>',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
792 '<a href="http://validator.w3.org/check?uri=referer" title="Click here to validate this page.">Valid HTML 4.01</a>',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
793 ], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
794
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
795 ('page_footer1', '', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
796 ('page_footer2', '', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
797 ('page_header1', '', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
798 ('page_header2', '', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
799
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
800 ('page_front_page', u'HelpOnLanguages', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
801 ('page_local_spelling_words', u'LocalSpellingWords', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
802
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
803 # the following regexes should match the complete name when used in free text
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
804 # the group 'all' shall match all, while the group 'key' shall match the key only
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
805 # e.g. CategoryFoo -> group 'all' == CategoryFoo, group 'key' == Foo
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
806 # moin's code will add ^ / $ at beginning / end when needed
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
807 ('page_category_regex', ur'(?P<all>Category(?P<key>\S+))', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
808 ('page_dict_regex', ur'(?P<all>(?P<key>\S+)Dict)', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
809 ('page_group_regex', ur'(?P<all>(?P<key>\S+)Group)', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
810 ('page_template_regex', ur'(?P<all>(?P<key>\S+)Template)', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
811
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
812 ('page_license_enabled', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
813 ('page_license_page', u'WikiLicense', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
814
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
815 # These icons will show in this order in the iconbar, unless they
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
816 # are not relevant, e.g email icon when the wiki is not configured
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
817 # for email.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
818 ('page_iconbar', ["up", "edit", "view", "diff", "info", "subscribe", "raw", "print", ], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
819
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
820 # Standard buttons in the iconbar
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
821 ('page_icons_table',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
822 {
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
823 # key pagekey, querystr dict, title, icon-key
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
824 'diff': ('page', {'action': 'diff'}, _("Diffs"), "diff"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
825 'info': ('page', {'action': 'info'}, _("Info"), "info"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
826 'edit': ('page', {'action': 'edit'}, _("Edit"), "edit"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
827 'unsubscribe': ('page', {'action': 'unsubscribe'}, _("UnSubscribe"), "unsubscribe"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
828 'subscribe': ('page', {'action': 'subscribe'}, _("Subscribe"), "subscribe"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
829 'raw': ('page', {'action': 'raw'}, _("Raw"), "raw"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
830 'xml': ('page', {'action': 'show', 'mimetype': 'text/xml'}, _("XML"), "xml"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
831 'print': ('page', {'action': 'print'}, _("Print"), "print"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
832 'view': ('page', {}, _("View"), "view"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
833 'up': ('page_parent_page', {}, _("Up"), "up"),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
834 }, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
835
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
836
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
837
3748
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
838 ('password_checker', DefaultExpression('_default_password_checker'), None),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
839
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
840 ('quicklinks_default', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
841
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
842 ('refresh', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
843 ('rss_cache', 60, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
844
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
845 ('search_results_per_page', 25, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
846
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
847 ('shared_intermap', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
848
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
849 ('show_hosts', True, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
850 ('show_interwiki', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
851 ('show_names', True, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
852 ('show_section_numbers', 0, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
853 ('show_timings', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
854 ('show_version', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
855
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
856 ('sistersites', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
857
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
858 ('siteid', 'default', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
859 ('sitename', u'Untitled Wiki', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
860
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
861 ('stylesheets', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
862
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
863 ('subscribed_pages_default', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
864 ('email_subscribed_events_default',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
865 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
866 PageChangedEvent.__name__,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
867 PageRenamedEvent.__name__,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
868 PageDeletedEvent.__name__,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
869 PageCopiedEvent.__name__,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
870 PageRevertedEvent.__name__,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
871 FileAttachedEvent.__name__,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
872 ], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
873 ('jabber_subscribed_events_default', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
874
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
875 ('superuser', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
876
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
877 ('supplementation_page', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
878 ('supplementation_page_name', u'Discussion', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
879 ('supplementation_page_template', u'DiscussionTemplate', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
880
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
881 ('surge_action_limits',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
882 {# allow max. <count> <action> requests per <dt> secs
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
883 # action: (count, dt)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
884 'all': (30, 30),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
885 'show': (30, 60),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
886 'recall': (10, 120),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
887 'raw': (20, 40), # some people use this for css
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
888 'AttachFile': (90, 60),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
889 'diff': (30, 60),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
890 'fullsearch': (10, 120),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
891 'edit': (30, 300), # can be lowered after making preview different from edit
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
892 'rss_rc': (1, 60),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
893 'default': (30, 60),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
894 }, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
895 ('surge_lockout_time', 3600, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
896
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
897 ('textchas', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
898 ('textchas_disabled_group', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
899
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
900 ('theme_default', 'modern', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
901 ('theme_force', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
902
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
903 ('traceback_show', True, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
904 ('traceback_log_dir', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
905
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
906 ('trail_size', 5, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
907 ('tz_offset', 0.0, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
908
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
909 # a regex of HTTP_USER_AGENTS that should be excluded from logging
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
910 # and receive a FORBIDDEN for anything except viewing a page
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
911 # list must not contain 'java' because of twikidraw wanting to save drawing uses this useragent
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
912 ('ua_spiders',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
913 ('archiver|cfetch|charlotte|crawler|curl|gigabot|googlebot|heritrix|holmes|htdig|httrack|httpunit|'
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
914 'intelix|jeeves|larbin|leech|libwww-perl|linkbot|linkmap|linkwalk|litefinder|mercator|'
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
915 'microsoft.url.control|mirror| mj12bot|msnbot|msrbot|neomo|nutbot|omniexplorer|puf|robot|scooter|seekbot|'
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
916 'sherlock|slurp|sitecheck|snoopy|spider|teleport|twiceler|voilabot|voyager|webreaper|wget|yeti'),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
917 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
918
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
919 ('unzip_single_file_size', 2.0 * 1000 ** 2, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
920 ('unzip_attachments_space', 200.0 * 1000 ** 2, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
921 ('unzip_attachments_count', 101, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
922
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
923 ('url_mappings', {}, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
924
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
925 # includes the moin version number, so we can have a unlimited cache lifetime
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
926 # for the static stuff. if stuff changes on version upgrade, url will change
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
927 # immediately and we have no problem with stale caches.
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
928 ('url_prefix_static', config.url_prefix_static, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
929 ('url_prefix_local', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
930
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
931 # we could prefix actions to be able to exclude them by robots.txt:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
932 #url_prefix_action', 'action' # no leading or trailing '/'
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
933 ('url_prefix_action', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
934
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
935 # allow disabling certain userpreferences plugins
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
936 ('userprefs_disabled', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
937 )),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
938 }
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
939
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
940 options = {
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
941 'acl': ('Access control lists', None, (
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
942 ('hierarchic', False, 'True to use hierarchical ACLs'),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
943 ('rights_default', u"Trusted:read,write,delete,revert Known:read,write,delete,revert All:read,write", None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
944 ('rights_before', u"", None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
945 ('rights_after', u"", None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
946 ('rights_valid', ['read', 'write', 'delete', 'revert', 'admin'], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
947 )),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
948
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
949 'xapian': ('Xapian search', None, (
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
950 ('search', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
951 ('index_dir', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
952 ('stemming', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
953 ('index_history', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
954 )),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
955
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
956 'user': ('Users / User settings', None, (
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
957 ('autocreate', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
958 ('email_unique', True, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
959 ('jid_unique', True, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
960
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
961 ('homewiki', 'Self', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
962
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
963 ('checkbox_fields',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
964 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
965 ('mailto_author', lambda _: _('Publish my email (not my wiki homepage) in author info')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
966 ('edit_on_doubleclick', lambda _: _('Open editor on double click')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
967 ('remember_last_visit', lambda _: _('After login, jump to last visited page')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
968 ('show_comments', lambda _: _('Show comment sections')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
969 ('show_nonexist_qm', lambda _: _('Show question mark for non-existing pagelinks')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
970 ('show_page_trail', lambda _: _('Show page trail')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
971 ('show_toolbar', lambda _: _('Show icon toolbar')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
972 ('show_topbottom', lambda _: _('Show top/bottom links in headings')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
973 ('show_fancy_diff', lambda _: _('Show fancy diffs')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
974 ('wikiname_add_spaces', lambda _: _('Add spaces to displayed wiki names')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
975 ('remember_me', lambda _: _('Remember login information')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
976
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
977 ('disabled', lambda _: _('Disable this account forever')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
978 # if an account is disabled, it may be used for looking up
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
979 # id -> username for page info and recent changes, but it
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
980 # is not usable for the user any more:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
981 ],
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
982 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
983
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
984 ('checkbox_defaults',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
985 {
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
986 'mailto_author': 0,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
987 'edit_on_doubleclick': 0,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
988 'remember_last_visit': 0,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
989 'show_comments': 0,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
990 'show_nonexist_qm': False,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
991 'show_page_trail': 1,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
992 'show_toolbar': 1,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
993 'show_topbottom': 0,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
994 'show_fancy_diff': 1,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
995 'wikiname_add_spaces': 0,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
996 'remember_me': 1,
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
997 },
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
998 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
999
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1000 ('checkbox_disable', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1001
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1002 ('checkbox_remove', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1003
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1004 ('form_fields',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1005 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1006 ('name', _('Name'), "text", "36", _("(Use FirstnameLastname)")),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1007 ('aliasname', _('Alias-Name'), "text", "36", ''),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1008 ('email', _('Email'), "text", "36", ''),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1009 ('jid', _('Jabber ID'), "text", "36", ''),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1010 ('css_url', _('User CSS URL'), "text", "40", _('(Leave it empty for disabling user CSS)')),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1011 ('edit_rows', _('Editor size'), "text", "3", ''),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1012 ],
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1013 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1014
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1015 ('form_defaults',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1016 { # key: default - do NOT remove keys from here!
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1017 'name': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1018 'aliasname': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1019 'password': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1020 'password2': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1021 'email': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1022 'jid': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1023 'css_url': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1024 'edit_rows': "20",
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1025 },
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1026 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1027
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1028 ('form_disable', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1029
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1030 ('form_remove', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1031
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1032 ('transient_fields',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1033 ['id', 'valid', 'may', 'auth_username', 'password', 'password2', 'auth_method', 'auth_attribs', ],
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1034 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1035 )),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1036
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1037 'backup': ('Backup', None, (
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1038 ('compression', 'gz', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1039 ('users', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1040 ('include', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1041 ('exclude',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1042 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1043 r"(.+\.py(c|o)$)",
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1044 r"%(cache_dir)s",
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1045 r"%(/)spages%(/)s.+%(/)scache%(/)s[^%(/)s]+$" % {'/': os.sep},
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1046 r"%(/)s(edit-lock|event-log|\.DS_Store)$" % {'/': os.sep},
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1047 ],
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1048 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1049 ('storage_dir', '/tmp', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1050 ('restore_target_dir', '/tmp', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1051 )),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1052
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1053 'openid_server': ('OpenID Server',
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1054 'These settings control the built-in OpenID Identity Provider (server).',
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1055 (
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1056 ('enabled', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1057 ('restricted_users_group', None, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1058 ('enable_user', False, None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1059 )),
3746
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1060
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1061 'mail': ('Mail settings',
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1062 'These settings control outgoing and incoming email from and to the wiki.',
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1063 (
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1064 ('from', None, None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1065 ('login', None, None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1066 ('smarthost', None, None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1067 ('sendmail', None, None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1068
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1069 ('import_secret', "", None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1070 ('import_subpage_template', u"$from-$date-$subject", None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1071 ('import_pagename_search', ['subject', 'to', ], None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1072 ('import_pagename_envelope', u"%s", None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1073 ('import_pagename_regex', r'\[\[([^\]]*)\]\]', None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1074 ('import_wiki_addrs', [], None),
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1075 )),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1076 }
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1077
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1078 def _add_options_to_defconfig(opts, addgroup=True):
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1079 for groupname in opts:
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1080 group_short, group_doc, group_opts = opts[groupname]
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1081 for name, default, doc in group_opts:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1082 if addgroup:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1083 name = groupname + '_' + name
3748
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
1084 if isinstance(default, DefaultExpression):
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
1085 default = default.value
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1086 setattr(DefaultConfig, name, default)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1087
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1088 _add_options_to_defconfig(options)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1089 _add_options_to_defconfig(options_no_group_name, False)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1090
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
1091 # remove the gettext pseudo function
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
1092 del _