annotate MoinMoin/config/multiconfig.py @ 3783:d9431d180aff

config improvements wrt. computed settings
author Johannes Berg <johannes AT sipsolutions DOT net>
date Tue, 24 Jun 2008 12:27:59 +0200
parents 791011b5c3fd
children 951ed1df8ec3
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.
3783
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
7 2008 MoinMoin:JohannesBerg
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
8 @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
9 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
10
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
11 import re
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
12 import os
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
13 import sys
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
14 import time
3107
c6e39279f83b refactor logging usage
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3097
diff changeset
15
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
16 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
17 logging = log.getLogger(__name__)
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
18
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
19 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
20 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
21 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
22 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
23 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
24 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
25 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
26 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
27 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
28 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
29
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
30 _url_re_cache = None
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
31 _farmconfig_mtime = None
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
32 _config_cache = {}
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
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
35 def _importConfigModule(name):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
36 """ 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
37
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
38 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
39 always an error.
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
40
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
41 @param name: module name
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
42 @rtype: tuple
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
43 @return: module, modification time
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
44 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
45 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
46 module = __import__(name, globals(), {})
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
47 mtime = os.path.getmtime(module.__file__)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
48 except ImportError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
49 raise
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
50 except IndentationError, err:
3157
b8cb12fa571b logging: using more logging.exception
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3149
diff changeset
51 logging.exception('Your source code / config file is not correctly indented!')
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
52 msg = """IndentationError: %(err)s
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
53
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
54 The configuration files are Python modules. Therefore, whitespace is
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
55 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
56 You have to use four spaces at the beginning of the line mostly.
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
57 """ % {
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
58 '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
59 }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
60 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
61 except Exception, err:
3157
b8cb12fa571b logging: using more logging.exception
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3149
diff changeset
62 logging.exception('An exception happened.')
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
63 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
64 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
65 return module, mtime
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
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
68 def _url_re_list():
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
69 """ Return url matching regular expression
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
70
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
71 Import wikis list from farmconfig on the first call and compile the
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
72 regexes. Later just return the cached regex list.
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
73
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
74 @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
75 @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
76 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
77 global _url_re_cache, _farmconfig_mtime
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
78 if _url_re_cache is None:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
79 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
80 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
81 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
82 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
83 # 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
84 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
85 _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
86 _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
87 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
88 # 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
89 raise
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
90 else:
3129
d57fed1b0b43 multiconfig: also log which farmconfig we use
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3126
diff changeset
91 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
92 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
93 cache = []
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
94 for name, regex in farmconfig.wikis:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
95 cache.append((name, re.compile(regex)))
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
96 _url_re_cache = cache
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
97 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
98 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
99 msg = """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
100 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
101
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
102 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
103 use wikiconfig.py.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
104 """
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
105 raise error.ConfigurationError(msg)
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
106 return _url_re_cache
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
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
109 def _makeConfig(name):
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
110 """ 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
111
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
112 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
113 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
114
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
115 @param name: module name
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
116 @rtype: DefaultConfig sub class instance
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
117 @return: new configuration instance
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
118 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
119 global _farmconfig_mtime
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
120 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
121 module, mtime = _importConfigModule(name)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
122 configClass = getattr(module, 'Config')
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
123 cfg = configClass(name)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
124 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
125 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
126 except ImportError, err:
3157
b8cb12fa571b logging: using more logging.exception
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3149
diff changeset
127 logging.exception('Could not import.')
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
128 msg = """ImportError: %(err)s
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
129
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
130 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
131 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
132 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
133 the top of the server script.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
134
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
135 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
136 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
137 module name does not include the ".py" suffix.
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
138 """ % {
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
139 '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
140 }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
141 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
142 except AttributeError, err:
3157
b8cb12fa571b logging: using more logging.exception
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3149
diff changeset
143 logging.exception('An exception occured.')
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
144 msg = """AttributeError: %(err)s
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
145
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 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
147
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 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
149 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
150
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 Another reason for this could be a name clash. It is not possible to have
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
152 config names like e.g. stats.py - because that collides with MoinMoin/stats/ -
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
153 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
154 possible.
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
155
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
156 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
157 use the wikiconfig.py file from the distribution.
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
158 """ % {
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
159 '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
160 '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
161 }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
162 raise error.ConfigurationError(msg)
2009
1b14cc05a54a refactor authentication and split out session handling
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 1984
diff changeset
163
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
164 return cfg
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
165
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
166
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
167 def _getConfigName(url):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
168 """ 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
169 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
170 match = regex.match(url)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
171 if match:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
172 return name
1575
45f876b6a109 raise NoConfigMatchedError
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1573
diff changeset
173 raise error.NoConfigMatchedError
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
174
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
175
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
176 def getConfig(url):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
177 """ 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
178
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
179 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
180 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
181 returned, using dict.setdefault.
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 @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
184 @rtype: DefaultConfig subclass instance
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
185 @return: config object for specific wiki
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
186 """
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
187 cfgName = _getConfigName(url)
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
188 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
189 cfg = _config_cache[cfgName]
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
190 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
191 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
192 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
193 return cfg
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
194
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 # 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
197 # 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
198 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
199 return text
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
200
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
201
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
202 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
203 """ 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
204 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
205
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
206
3763
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
207 class ConfigFunctionality(object):
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
208 """ Configuration base class with config class behaviour.
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
209
3763
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
210 This class contains the functionality for the DefaultConfig
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
211 class for the benefit of the WikiConfig macro.
3482
b0a794176dc4 sorted builtin default config, added more comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3476
diff changeset
212 """
3783
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
213
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
214 # attributes of this class that should not be shown
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
215 # in the WikiConfig() macro.
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
216 cfg_mtime = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
217 siteid = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
218 cache = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
219 mail_enabled = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
220 jabber_enabled = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
221 auth_can_logout = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
222 auth_have_login = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
223 auth_login_inputs = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
224 _site_plugin_lists = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
225 _iwid = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
226 _iwid_full = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
227 xapian_searchers = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
228 moinmoin_dir = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
229 # will be lazily loaded by interwiki code when needed (?)
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
230 shared_intermap_files = None
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
231
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
232 def __init__(self, siteid):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
233 """ Init Config instance """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
234 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
235 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
236
1624
0b0b94e1680f cache pagelist using new cache mechanism
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1620
diff changeset
237 from MoinMoin.Page import ItemCache
0b0b94e1680f cache pagelist using new cache mechanism
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1620
diff changeset
238 self.cache.meta = ItemCache('meta')
0b0b94e1680f cache pagelist using new cache mechanism
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1620
diff changeset
239 self.cache.pagelists = ItemCache('pagelists')
1620
a86f20280204 implement and use ItemMetaDataCache
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1615
diff changeset
240
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
241 if self.config_check_enabled:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
242 self._config_check()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
243
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
244 # 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
245 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
246 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
247 self.data_dir = data_dir
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
248 for dirname in ('user', 'cache', 'plugin'):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
249 name = dirname + '_dir'
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
250 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
251 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
252
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
253 # 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
254 self._decode()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
255
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
256 # 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
257 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
258 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
259 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
260 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
261
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 # 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
263 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
264 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
265 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
266 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
267
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
268 self.cache.ua_spiders = self.ua_spiders and re.compile(self.ua_spiders, re.IGNORECASE)
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
269
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
270 self._check_directories()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
271
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
272 if not isinstance(self.superuser, list):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
273 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
274 (e.g. ['Sample User', 'AnotherUser']).
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
275 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
276 raise error.ConfigurationError(msg)
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
277
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
278 self._loadPluginModule()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
279
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
280 # Preparse user dicts
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
281 self._fillDicts()
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
282
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
283 # Normalize values
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
284 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
285
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
286 # 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
287 if self.logo_string is None:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
288 self.logo_string = self.sitename
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
289
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
290 # Check for needed modules
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
291
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
292 # 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
293 # 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
294 # 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
295 # current code.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
296 if self.chart_options:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
297 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
298 import gdchart
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
299 except ImportError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
300 self.chart_options = None
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
301
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
302 # 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
303
3761
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
304 # 'setuid' special auth method auth method can log out
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
305 self.auth_can_logout = ['setuid']
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
306 self.auth_login_inputs = []
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
307 found_names = []
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
308 for auth in self.auth:
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
309 if not auth.name:
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
310 raise error.ConfigurationError("Auth methods must have a name.")
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
311 if auth.name in found_names:
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
312 raise error.ConfigurationError("Auth method names must be unique.")
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
313 found_names.append(auth.name)
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
314 if auth.logout_possible and auth.name:
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
315 self.auth_can_logout.append(auth.name)
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
316 for input in auth.login_inputs:
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
317 if not input in self.auth_login_inputs:
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
318 self.auth_login_inputs.append(input)
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
319 self.auth_have_login = len(self.auth_login_inputs) > 0
24e9fecdd81c config: move auth post-processing to proper place
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3760
diff changeset
320
2430
c7bb078d3318 commit b8b87daf7cc4 broke farms because one dict was shared, fix it
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 2429
diff changeset
321 # 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
322 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
323
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
324 # 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
325 # 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
326 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
327 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
328
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
329 # 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
330 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
331 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
332 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
333 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
334 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
335 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
336
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
337 # 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
338 self.xapian_searchers = []
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
339
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
340 # 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
341 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
342 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
343
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
344 # 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
345 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
346
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
347 # 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
348 if self.jabber_enabled:
2336
10be78f1fa97 Merge main.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2331 2286
diff changeset
349
2331
493565b060ff Raise exception if notifications are enabled but no secret is set.
Karol Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2324
diff changeset
350 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
351 try:
493565b060ff Raise exception if notifications are enabled but no secret is set.
Karol Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2324
diff changeset
352 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
353 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
354 except AttributeError, err:
3175
2a3a6cb34e45 pylint findings: fix some harmless stuff
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3157
diff changeset
355 raise error.ConfigurationError(errmsg)
2336
10be78f1fa97 Merge main.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2331 2286
diff changeset
356
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
357 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
358 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
359
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
360 # 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
361 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
362
1552
f9639ed07af2 using request.cfg.cache more
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1549
diff changeset
363 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
364 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
365 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
366
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
367 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
368 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
369 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
370
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
371 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
372 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
373
3767
0b7f7b9226df config: improve some lazy-loading code
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3766
diff changeset
374 _meta_dict = None
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
375 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
376 """ The meta_dict contains meta data about the wiki instance. """
3767
0b7f7b9226df config: improve some lazy-loading code
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3766
diff changeset
377 if self._meta_dict is None:
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
378 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
379 return self._meta_dict
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
380 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
381
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
382 # lazily load iwid(_full)
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
383 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
384 def getter(self):
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
385 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
386 self.load_IWID()
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
387 return getattr(self, attr)
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
388 return property(getter)
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
389 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
390 iwid_full = make_iwid_property("_iwid_full")
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
391
2643
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
392 # lazily create a list of event handlers
3767
0b7f7b9226df config: improve some lazy-loading code
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3766
diff changeset
393 _event_handlers = None
2643
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
394 def make_event_handlers_prop():
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
395 def getter(self):
3767
0b7f7b9226df config: improve some lazy-loading code
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3766
diff changeset
396 if self._event_handlers is None:
2643
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
397 self._event_handlers = events.get_handlers(self)
3767
0b7f7b9226df config: improve some lazy-loading code
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3766
diff changeset
398 return self._event_handlers
3240
e8fcaf99434f config.multiconfig: PEP8 fixed
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3223
diff changeset
399
3223
6ca25943fd1a Fixed PageEditor tests; also fixed the subscribable_events property
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 3215
diff changeset
400 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
401 self._event_handlers = new_handlers
3240
e8fcaf99434f config.multiconfig: PEP8 fixed
Reimar Bauer <rb.proj AT googlemail DOT com>
parents: 3223
diff changeset
402
3223
6ca25943fd1a Fixed PageEditor tests; also fixed the subscribable_events property
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 3215
diff changeset
403 return property(getter, setter)
2643
ec855cfb2561 Load event handler lazily.
Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl>
parents: 2595
diff changeset
404 event_handlers = make_event_handlers_prop()
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
405
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
406 def load_IWID(self):
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
407 """ 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
408 globally.
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
409 The IWID is available as cfg.iwid
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
410 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
411 This method is called by the property.
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
412 """
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
413 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
414 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
415 except KeyError:
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
416 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
417 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
418 self.meta_dict.sync()
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
419
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
420 self._iwid = iwid
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
421 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
422 self._iwid_full = packLine([iwid, self.interwikiname])
1053
6632f9919a89 Implemented IWID system.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1011
diff changeset
423 else:
1118
156d160b1dd9 Load the IWID and the meta dict lazily.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 1111
diff changeset
424 self._iwid_full = packLine([iwid])
706
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 def _config_check(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
427 """ 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
428
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
429 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
430 modules, classes, _private or __magic__ names.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
431
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
432 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
433 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
434 """
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
435 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
436 if not name.startswith('_') and
1868
64507f46beb2 reduce usage of has_key()
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1799
diff changeset
437 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
438 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
439 if unknown:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
440 msg = """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
441 Unknown configuration options: %s.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
442
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
443 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
444 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
445 """ % ', '.join(unknown)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
446 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
447
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
448 def _decode(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
449 """ 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
450
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
451 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
452
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
453 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
454 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
455 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
456
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
457 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
458 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
459 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
460 config files.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
461 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
462 charset = 'utf-8'
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
463 message = u"""
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
464 "%(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
465 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
466
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
467 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
468 file. It should match the actual charset of the configuration file.
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
469 """
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
470
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
471 decode_names = (
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
472 '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
473 '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
474 '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
475 '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
476 '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
477 )
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
478
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
479 for name in decode_names:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
480 attr = getattr(self, name, None)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
481 if attr:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
482 # Try to decode strings
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
483 if isinstance(attr, str):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
484 try:
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
485 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
486 except UnicodeError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
487 raise error.ConfigurationError(message %
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
488 {'name': name})
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
489 # 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
490 elif isinstance(attr, list):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
491 for i in xrange(len(attr)):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
492 item = attr[i]
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
493 if isinstance(item, str):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
494 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
495 attr[i] = unicode(item, charset)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
496 except UnicodeError:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
497 raise error.ConfigurationError(message %
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
498 {'name': name})
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 def _check_directories(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
501 """ Make sure directories are accessible
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
502
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
503 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
504 execute.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
505 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
506 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
507 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
508 path = getattr(self, attr)
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
509
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
510 # 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
511 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
512 continue
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
513
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
514 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
515 if not (os.path.isdir(path_pages) and os.access(path_pages, mode)):
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
516 msg = """
3490
af3460a4cb79 fix some typos in messages / comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3485
diff changeset
517 %(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
518 permissions.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
519
3490
af3460a4cb79 fix some typos in messages / comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3485
diff changeset
520 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
521 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
522 and group.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
523
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
524 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
525 also the spelling of the directory name.
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
526 """ % {'attr': attr, 'path': path, }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
527 raise error.ConfigurationError(msg)
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
528
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
529 def _loadPluginModule(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
530 """ import plugin module under configname.plugin
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
531
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
532 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
533 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
534 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
535
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
536 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
537 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
538 """
1791
6dd2e29acffe Eclipse PyDev Check: fixed lots of its errors and warnings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 1787
diff changeset
539 import imp
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
540
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
541 name = self.siteid + '.plugin'
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
542 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
543 # 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
544 imp.acquire_lock()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
545 try:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
546 # 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
547 if not name in sys.modules:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
548 # 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
549 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
550 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
551 try:
2286
01f05e74aa9c Big PEP8 and whitespace cleanup
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 2227
diff changeset
552 # 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
553 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
554 sys.modules[self.siteid].plugin = module
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
555 finally:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
556 # Make sure fp is closed properly
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
557 if fp:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
558 fp.close()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
559 finally:
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
560 imp.release_lock()
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
561 except ImportError, err:
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
562 msg = """
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
563 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
564 %(err)s.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
565
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
566 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
567 that the data/plugin directory has an __init__.py file.
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
568 """ % {
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
569 '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
570 '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
571 }
706
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
572 raise error.ConfigurationError(msg)
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 def _fillDicts(self):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
575 """ fill config dicts
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
576
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
577 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
578 them from this base class.
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
579 """
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
580 # user checkbox defaults
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
581 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
582 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
583 self.user_checkbox_defaults[key] = value
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
584
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
585 def __getitem__(self, item):
fce105e8b3df Fixed line endings in multiconfig.py
Alexander Schremmer <alex AT alexanderweb DOT de>
parents: 705
diff changeset
586 """ 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
587 return getattr(self, item)
931
141083b64fb1 whitespace and minor style changes only
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 928
diff changeset
588
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
589
3763
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
590 class DefaultConfig(ConfigFunctionality):
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
591 """ Configuration base class with default config values
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
592 (added below)
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
593 """
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
594 # Do not add anything into this class. Functionality must
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
595 # be added above to avoid having the methods show up in
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
596 # the WikiConfig macro. Settings must be added below to
0284379adbc8 some config refactorings, add WikiConfig macro
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3761
diff changeset
597 # the options dictionary.
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
598
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
599
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
600 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
601 """ 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
602 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
603
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
604 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
605 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
606
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
607 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
608
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
609 @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
610 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
611 """
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
612 try:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
613 # 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
614 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
615 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
616 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
617 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
618
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
619 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
620 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
621 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
622 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
623 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
624
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
625 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
626 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
627 ) # add more keyboards!
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
628 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
629 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
630 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
631 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
632 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
633 return None
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
634 except ValueError, err:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
635 return str(err)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
636
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
637
3748
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
638 class DefaultExpression(object):
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
639 def __init__(self, exprstr):
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
640 self.text = exprstr
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
641 self.value = eval(exprstr)
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
642
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
643
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
644 options_no_group_name = {
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
645 # ==========================================================================
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
646 'session': ('Session settings', "Session-related settings, see HelpOnSessions.", (
3749
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
647 ('session_handler', DefaultExpression('session.DefaultSessionHandler()'),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
648 "See HelpOnSessions."),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
649 ('session_id_handler', DefaultExpression('session.MoinCookieSessionIDHandler()'),
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
650 "Only used by the DefaultSessionHandler, see HelpOnSessions."),
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
651 ('cookie_domain', None,
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
652 'Domain used in the session cookie. (None = do not specify domain).'),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
653 ('cookie_path', None,
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
654 'Path used in the session cookie (None = auto-detect).'),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
655 ('cookie_lifetime', 12,
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
656 'Session lifetime [h] of logged-in users (see HelpOnSessions for details).'),
3750
d5b786be06d7 make anonymous_session_lifetime a proper setting
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3749
diff changeset
657 ('anonymous_session_lifetime', None,
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
658 'Session lifetime [h] of users who are not logged in (None = disable anon sessions).'),
3749
b0d5f7f41d4b split out session settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3748
diff changeset
659 )),
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
660 # ==========================================================================
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
661 'auth': ('Authentication / Authorization / Security settings', None, (
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
662 ('superuser', [],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
663 "List of trusted user names with wiki system administration super powers (not to be confused with ACL admin rights!). Used for e.g. making full backups, software installation, language installation via SystemPagesSetup and more. See also HelpOnSuperUser."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
664 ('auth', DefaultExpression('[MoinAuth()]'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
665 "list of auth objects, to be called in this order (see HelpOnAuthentication)"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
666 ('auth_methods_trusted', ['http', 'xmlrpc_applytoken'],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
667 'authentication methods for which users should be included in the special "Trusted" ACL group.'),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
668 ('DesktopEdition',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
669 False,
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
670 "if True, give all local users special powers - ''only use this for a local desktop wiki!''"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
671 ('SecurityPolicy',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
672 None,
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
673 "Class object hook for implementing security restrictions or relaxations"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
674 ('actions_excluded',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
675 ['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
676 '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
677 '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
678 ],
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
679 "Exclude unwanted actions (list of strings)"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
680
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
681 ('allow_xslt', False,
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
682 "if True, enables XSLT processing via 4Suite (note that this enables anyone with enough know-how to insert '''arbitrary HTML''' into your wiki, which is why it defaults to `False`)"),
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
683
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
684 ('password_checker', DefaultExpression('_default_password_checker'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
685 'checks whether a password is acceptable (default check is length >= 6, at least 4 different chars, no keyboard sequence, not username used somehow (you can switch this off by using `None`)'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
686
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
687 )),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
688 # ==========================================================================
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
689 'spam_leech_dos': ('Anti-Spam/Leech/DOS', None, (
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
690 ('hosts_deny', [], "List of denied IPs; if an IP ends with a dot, it denies a whole subnet (class A, B or C)"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
691
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
692 ('surge_action_limits',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
693 {# allow max. <count> <action> requests per <dt> secs
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
694 # action: (count, dt)
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
695 'all': (30, 30),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
696 'show': (30, 60),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
697 'recall': (10, 120),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
698 'raw': (20, 40), # some people use this for css
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
699 'AttachFile': (90, 60),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
700 'diff': (30, 60),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
701 'fullsearch': (10, 120),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
702 'edit': (30, 300), # can be lowered after making preview different from edit
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
703 'rss_rc': (1, 60),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
704 'default': (30, 60),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
705 },
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
706 "Surge protection tries to deny clients causing too much load/traffic, see /SurgeProtection."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
707 ('surge_lockout_time', 3600, "time [s] someone gets locked out when ignoring the warnings"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
708
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
709 ('textchas', None,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
710 "Spam protection setup using site-specific questions/answers, see HelpOnTextChas."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
711 ('textchas_disabled_group', None,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
712 "Name of a group of trusted users who do not get asked TextCha questions."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
713
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
714 ('antispam_master_url', "http://master.moinmo.in/?action=xmlrpc2",
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
715 "where antispam security policy fetches spam pattern updates (if it is enabled)"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
716
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
717 # a regex of HTTP_USER_AGENTS that should be excluded from logging
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
718 # and receive a FORBIDDEN for anything except viewing a page
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
719 # list must not contain 'java' because of twikidraw wanting to save drawing uses this useragent
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
720 ('ua_spiders',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
721 ('archiver|cfetch|charlotte|crawler|curl|gigabot|googlebot|heritrix|holmes|htdig|httrack|httpunit|'
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
722 'intelix|jeeves|larbin|leech|libwww-perl|linkbot|linkmap|linkwalk|litefinder|mercator|'
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
723 'microsoft.url.control|mirror| mj12bot|msnbot|msrbot|neomo|nutbot|omniexplorer|puf|robot|scooter|seekbot|'
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
724 'sherlock|slurp|sitecheck|snoopy|spider|teleport|twiceler|voilabot|voyager|webreaper|wget|yeti'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
725 "A regex of HTTP_USER_AGENTs that should be excluded from logging and are not allowed to use actions."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
726
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
727 ('unzip_single_file_size', 2.0 * 1000 ** 2,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
728 "max. number of files which are extracted from the zip file"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
729 ('unzip_attachments_space', 200.0 * 1000 ** 2,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
730 "max. total amount of bytes can be used to unzip files [bytes]"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
731 ('unzip_attachments_count', 101,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
732 "max. size of a single file in the archive which will be extracted [bytes]"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
733 )),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
734 # ==========================================================================
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
735 'style': ('Style / Theme / UI related', None, (
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
736 ('sitename', u'Untitled Wiki',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
737 "Short description of your wiki site, displayed below the logo on each page, and used in RSS documents as the channel title [Unicode]"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
738 ('interwikiname', None, "unique and stable InterWiki name (prefix, moniker) of the site, or None"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
739 ('logo_string', None, "The wiki logo top of page, HTML is allowed (`<img>` is possible as well) [Unicode]"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
740 ('html_pagetitle', None, "Allows you to set a specific HTML page title (if None, it defaults to the value of `sitename`)"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
741 ('navi_bar', [u'RecentChanges', u'FindPage', u'HelpContents', ],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
742 'Most important page names. Users can add more names in their quick links in user preferences. To link to URL, use `u"[url link title]"`, to use a shortened name for long page name, use `u"[LongLongPageName title]"`. To use page names with spaces, use `u"[page_name_with_spaces any title]"` [list of Unicode strings]'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
743
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
744 ('theme_default', 'modern',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
745 "the name of the theme that is used by default (see HelpOnThemes)"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
746 ('theme_force', False,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
747 "if True, do not allow to change the theme"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
748
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
749 ('stylesheets', [],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
750 "List of tuples (media, csshref) to insert after theme css, before user css, see HelpOnThemes."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
751
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
752 ('supplementation_page', False,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
753 "if True, show a link to the supplementation page in the theme"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
754 ('supplementation_page_name', u'Discussion',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
755 "default name of the supplementation (sub)page [unicode]"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
756 ('supplementation_page_template', u'DiscussionTemplate',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
757 "default template used for creation of the supplementation page [unicode]"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
758
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
759 ('interwiki_preferred', [], "In dialogues, show those wikis at the top of the list."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
760 ('sistersites', [], "list of tuples `('WikiName', 'sisterpagelist_fetch_url')`"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
761
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
762 ('trail_size', 5,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
763 "Number of pages in the trail of visited pages"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
764
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
765 ('page_footer1', '', "Custom HTML markup sent ''before'' the system footer."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
766 ('page_footer2', '', "Custom HTML markup sent ''after'' the system footer."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
767 ('page_header1', '', "Custom HTML markup sent ''before'' the system header / title area but after the body tag."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
768 ('page_header2', '', "Custom HTML markup sent ''after'' the system header / title area (and body tag)."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
769
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
770 ('changed_time_fmt', '%H:%M', "Time format used on Recent``Changes for page edits within the last 24 hours"),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
771 ('date_fmt', '%Y-%m-%d', "System date format, used mostly in Recent``Changes"),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
772 ('datetime_fmt', '%Y-%m-%d %H:%M:%S', 'Default format for dates and times (when the user has no preferences or chose the "default" date format)'),
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
773 ('chart_options', None, "If you have gdchart, use something like chart_options = {'width': 720, 'height': 540}"),
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
774
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
775 ('edit_bar', ['Edit', 'Comments', 'Discussion', 'Info', 'Subscribe', 'Quicklink', 'Attachments', 'ActionsMenu'],
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
776 'list of edit bar entries'),
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
777 ('history_count', (100, 200), "number of revisions shown for info/history action (default_count_shown, max_count_shown)"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
778
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
779 ('show_hosts', True,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
780 "if True, show host names and IPs. Set to False to hide them."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
781 ('show_interwiki', False,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
782 "if True, let the theme display your interwiki name"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
783 ('show_names', True,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
784 "if True, show user names in the revision history and on Recent``Changes. Set to False to hide them."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
785 ('show_section_numbers', False,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
786 'show section numbers in headings by default'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
787 ('show_timings', False, "show some timing values at bottom of a page"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
788 ('show_version', False, "show moin's version at the bottom of a page"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
789 ('traceback_show', True,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
790 "if True, show debug tracebacks to users when moin crashes"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
791
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
792 ('page_credits',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
793 [
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
794 '<a href="http://moinmo.in/" title="This site uses the MoinMoin Wiki software.">MoinMoin Powered</a>',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
795 '<a href="http://moinmo.in/Python" title="MoinMoin is written in Python.">Python Powered</a>',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
796 '<a href="http://moinmo.in/GPL" title="MoinMoin is GPL licensed.">GPL licensed</a>',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
797 '<a href="http://validator.w3.org/check?uri=referer" title="Click here to validate this page.">Valid HTML 4.01</a>',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
798 ],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
799 'list with html fragments with logos or strings for crediting.'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
800
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
801 # These icons will show in this order in the iconbar, unless they
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
802 # are not relevant, e.g email icon when the wiki is not configured
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
803 # for email.
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
804 ('page_iconbar', ["up", "edit", "view", "diff", "info", "subscribe", "raw", "print", ],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
805 'list of icons to show in iconbar, valid values are only those in page_icons_table. Available only in classic theme.'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
806
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
807 # Standard buttons in the iconbar
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
808 ('page_icons_table',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
809 {
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
810 # key pagekey, querystr dict, title, icon-key
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
811 'diff': ('page', {'action': 'diff'}, _("Diffs"), "diff"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
812 'info': ('page', {'action': 'info'}, _("Info"), "info"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
813 'edit': ('page', {'action': 'edit'}, _("Edit"), "edit"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
814 'unsubscribe': ('page', {'action': 'unsubscribe'}, _("UnSubscribe"), "unsubscribe"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
815 'subscribe': ('page', {'action': 'subscribe'}, _("Subscribe"), "subscribe"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
816 'raw': ('page', {'action': 'raw'}, _("Raw"), "raw"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
817 'xml': ('page', {'action': 'show', 'mimetype': 'text/xml'}, _("XML"), "xml"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
818 'print': ('page', {'action': 'print'}, _("Print"), "print"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
819 'view': ('page', {}, _("View"), "view"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
820 'up': ('page_parent_page', {}, _("Up"), "up"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
821 },
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
822 "dict of {'iconname': (url, title, icon-img-key), ...}. Available only in classic theme."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
823
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
824 )),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
825 # ==========================================================================
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
826 'editor': ('Editor related', None, (
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
827 ('editor_default', 'text', "Editor to use by default, 'text' or 'gui'"),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
828 ('editor_force', False, "if True, force using the default editor"),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
829 ('editor_ui', 'freechoice', "Editor choice shown on the user interface, 'freechoice' or 'theonepreferred'"),
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
830 ('page_license_enabled', False, 'if True, show a license hint in page editor.'),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
831 ('editor_quickhelp', {
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
832 # 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
833 # 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
834 'wiki': _(u"""\
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
835 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
836 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
837 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
838 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
839 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
840
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
841 (!) 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
842 """),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
843 'rst': _("""\
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 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
846
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
847 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
848 ========= --------- ~~~~~~~~~
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
849
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
850 Horizontal rule: ----
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
851
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
852 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
853
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
854 .. _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
855
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
856 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
857 }}}
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
858 (!) 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
859 [[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
860 """),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
861 'creole': _(u"""\
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
862 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
863 Horizontal Rule:: <<Verbatim(----)>>
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
864 Force Linebreak:: <<Verbatim(\\\\)>>
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
865 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
866 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
867 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
868 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
869
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
870 (!) 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
871 """),
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
872 },
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
873 "Quickhelp provided at the bottom of edit pages. To customize, specify a dictionary with key matching default_markup (e.g. 'wiki') and give a string value containing wiki markup."),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
874 ('edit_locking', 'warn 10', "Editor locking policy: `None`, `'warn <timeout in minutes>'`, or `'lock <timeout in minutes>'`"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
875 ('edit_ticketing', True, None),
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
876 ('edit_rows', 20, "Default height of the edit box"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
877
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
878 )),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
879 # ==========================================================================
3783
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
880 'paths': ('Paths', None, (
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
881 ('data_dir', './data/', "Path to the data directory containing your (locally made) wiki pages."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
882 ('data_underlay_dir', './underlay/', "Path to the underlay directory containing distribution system and help pages."),
3783
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
883 ('cache_dir', None, "Directory for caching, by default computed from `data_dir`/cache."),
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
884 ('user_dir', None, "Directory for user storage, by default computed to be `data_dir`/user."),
d9431d180aff config improvements wrt. computed settings
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3782
diff changeset
885 ('plugin_dir', None, "Plugin directory, by default computed to be `data_dir`/user."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
886
3782
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
887 ('docbook_html_dir', r"/usr/share/xml/docbook/stylesheet/nwalsh/html/",
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
888 'Path to the directory with the Docbook to HTML XSLT files (optional, used by the docbook parser). The default value is correct for Debian Etch.'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
889 ('shared_intermap', None,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
890 "Path to a file containing global InterWiki definitions (or a list of such filenames)"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
891 )),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
892 # ==========================================================================
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
893 'urls': ('URLs', None, (
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
894 # includes the moin version number, so we can have a unlimited cache lifetime
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
895 # for the static stuff. if stuff changes on version upgrade, url will change
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
896 # immediately and we have no problem with stale caches.
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
897 ('url_prefix_static', config.url_prefix_static,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
898 "used as the base URL for icons, css, etc. - includes the moin version number and changes on every release. This replaces the deprecated and sometimes confusing `url_prefix = '/wiki'` setting."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
899 ('url_prefix_local', None,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
900 "used as the base URL for some Javascript - set this to a URL on same server as the wiki if your url_prefix_static points to a different server."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
901
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
902 ('url_prefix_action', None,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
903 "Use 'action' to enable action URL generation to be compatible with robots.txt. It will generate .../action/info/PageName?action=info then. Recommended for internet wikis."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
904
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
905 ('notification_bot_uri', None, "URI of the Jabber notification bot."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
906
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
907 ('url_mappings', {},
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
908 "lookup table to remap URL prefixes (dict of {{{'prefix': 'replacement'}}}); especially useful in intranets, when whole trees of externally hosted documents move around"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
909
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
910 )),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
911 # ==========================================================================
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
912 'pages': ('Special page names', None, (
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
913 ('page_front_page', u'HelpOnLanguages',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
914 "Name of the front page. We don't expect you to keep the default. Just read HelpOnLanguages in case you're wondering... [Unicode]"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
915
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
916 # the following regexes should match the complete name when used in free text
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
917 # the group 'all' shall match all, while the group 'key' shall match the key only
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
918 # e.g. CategoryFoo -> group 'all' == CategoryFoo, group 'key' == Foo
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
919 # moin's code will add ^ / $ at beginning / end when needed
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
920 ('page_category_regex', ur'(?P<all>Category(?P<key>\S+))',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
921 'Pagenames exactly matching this regex are regarded as Wiki categories [Unicode]'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
922 ('page_dict_regex', ur'(?P<all>(?P<key>\S+)Dict)',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
923 'Pagenames exactly matching this regex are regarded as pages containing variable dictionary definitions [Unicode]'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
924 ('page_group_regex', ur'(?P<all>(?P<key>\S+)Group)',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
925 'Pagenames exactly matching this regex are regarded as pages containing group definitions [Unicode]'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
926 ('page_template_regex', ur'(?P<all>(?P<key>\S+)Template)',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
927 'Pagenames exactly matching this regex are regarded as pages containing templates for new pages [Unicode]'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
928
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
929 ('page_license_page', u'WikiLicense', 'Page linked from the license hint. [Unicode]'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
930
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
931 ('page_local_spelling_words', u'LocalSpellingWords',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
932 'Name of the page containing user-provided spellchecker words [Unicode]'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
933 )),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
934 # ==========================================================================
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
935 'user': ('User Preferences related', None, (
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
936 ('quicklinks_default', [],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
937 'List of preset quicklinks for a newly created user accounts. Existing accounts are not affected by this option whereas changes in navi_bar do always affect existing accounts. Preset quicklinks can be removed by the user in the user preferences menu, navi_bar settings not.'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
938 ('subscribed_pages_default', [],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
939 "List of pagenames used for presetting page subscriptions for newly created user accounts."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
940
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
941 ('email_subscribed_events_default',
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
942 [
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
943 PageChangedEvent.__name__,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
944 PageRenamedEvent.__name__,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
945 PageDeletedEvent.__name__,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
946 PageCopiedEvent.__name__,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
947 PageRevertedEvent.__name__,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
948 FileAttachedEvent.__name__,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
949 ], None),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
950 ('jabber_subscribed_events_default', [], None),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
951
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
952 ('tz_offset', 0.0,
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
953 "default time zone offset in hours from UTC"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
954
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
955 ('userprefs_disabled', [],
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
956 "Disable the listed user preferences plugins."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
957 )),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
958 # ==========================================================================
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
959 'various': ('Various', None, (
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
960 ('bang_meta', True, 'if True, enable {{{!NoWikiName}}} markup'),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
961 ('caching_formats', ['text_html'], "output formats that are cached; set to [] to turn off caching (useful for development)"),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
962
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
963 ('config_check_enabled', False, "if True, check configuration for unknown settings."),
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
964
791011b5c3fd multiconfig: better grouping of settings
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3781
diff changeset
965 ('default_markup', 'wiki', 'Default page parser / format (name of module in `MoinMoin.parser`)'),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
966
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
967 ('html_head', '', "Additional <HEAD> tags, see HelpOnThemes."),
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
968 ('html_head_queries', '<meta name="robots" content="noindex,nofollow">\n',
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
969 "Additional <HEAD> tags for requests with query strings, like actions."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
970 ('html_head_posts', '<meta name="robots" content="noindex,nofollow">\n',
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
971 "Additional <HEAD> tags for POST requests."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
972 ('html_head_index', '<meta name="robots" content="index,follow">\n',
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
973 "Additional <HEAD> tags for some few index pages."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
974 ('html_head_normal', '<meta name="robots" content="index,nofollow">\n',
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
975 "Additional <HEAD> tags for most normal pages."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
976
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
977 ('language_default', 'en', "Default language for user interface and page content, see HelpOnLanguages."),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
978 ('language_ignore_browser', False, "if True, ignore user's browser language settings, see HelpOnLanguages."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
979
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
980 ('log_reverse_dns_lookups', True,
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
981 "if True, do a reverse DNS lookup on page SAVE. If your DNS is broken, set this to False to speed up SAVE."),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
982 ('log_timing', False,
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
983 "if True, add timing infos to the log output to analyse load conditions"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
984
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
985 # 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
986 # 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
987 # 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
988 ('mimetypes_xss_protect',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
989 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
990 'text/html',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
991 '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
992 'application/xhtml+xml',
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
993 ],
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
994 '"content-disposition: inline" isn\'t used for them when a user downloads such attachments'),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
995
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
996 ('mimetypes_embed',
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 'application/x-dvi',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
999 'application/postscript',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1000 'application/pdf',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1001 'application/ogg',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1002 'application/vnd.visio',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1003 '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
1004 'image/svg+xml',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1005 'image/tiff',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1006 'image/x-photoshop',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1007 'audio/mpeg',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1008 'audio/midi',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1009 'audio/x-wav',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1010 'video/fli',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1011 'video/mpeg',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1012 'video/quicktime',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1013 'video/x-msvideo',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1014 'chemical/x-pdb',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1015 'x-world/x-vrml',
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1016 ],
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1017 'mimetypes that can be embedded by the [[HelpOnMacros/EmbedObject|EmbedObject macro]]'),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1018
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1019 ('refresh', None,
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1020 "refresh = (minimum_delay_s, targets_allowed) enables use of `#refresh 5 PageName` processing instruction, targets_allowed must be either `'internal'` or `'external'`"),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1021 ('rss_cache', 60, "suggested caching time for Recent''''''Changes RSS, in second"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1022
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1023 ('search_results_per_page', 25, "Number of hits shown per page in the search results"),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1024
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1025 ('siteid', 'default', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1026 )),
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
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1029 options = {
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1030 '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
1031 ('hierarchic', False, 'True to use hierarchical ACLs'),
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1032 ('rights_default', u"Trusted:read,write,delete,revert Known:read,write,delete,revert All:read,write",
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1033 "ACL used if no ACL is specified on the page"),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1034 ('rights_before', u"",
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1035 "ACL that is processed before the on-page/default ACL"),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1036 ('rights_after', u"",
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1037 "ACL that is processed after the on-page/default ACL"),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1038 ('rights_valid', ['read', 'write', 'delete', 'revert', 'admin'],
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1039 "Valid tokens for right sides of ACL entries."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1040 )),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1041
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1042 'xapian': ('Xapian search', "Configuration of the Xapian based indexed search, see HelpOnXapian.", (
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1043 ('search', False,
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1044 "True to enable the fast, indexed search (based on the Xapian search library)"),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1045 ('index_dir', None,
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1046 "Directory where the Xapian search index is stored (None = auto-configure wiki local storage)"),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1047 ('stemming', False,
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1048 "True to enable Xapian word stemmer usage for indexing / searching."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1049 ('index_history', False,
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1050 "True to enable indexing of non-current page revisions."),
3740
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 'user': ('Users / User settings', None, (
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1054 ('autocreate', False,
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1055 "if True, user accounts are created automatically (see HelpOnAuthentication)."),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1056 ('email_unique', True,
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1057 "if True, check email addresses for uniqueness and don't accept duplicates."),
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1058 ('jid_unique', True,
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1059 "if True, check Jabber IDs for uniqueness and don't accept duplicates."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1060
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1061 ('homewiki', 'Self',
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1062 "interwiki name of the wiki where the user home pages are located (useful if you have ''many'' users). You could even link to nonwiki \"user pages\" if the wiki username is in the target URL."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1063
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1064 ('checkbox_fields',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1065 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1066 ('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
1067 ('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
1068 ('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
1069 ('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
1070 ('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
1071 ('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
1072 ('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
1073 ('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
1074 ('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
1075 ('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
1076 ('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
1077
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1078 ('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
1079 # 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
1080 # 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
1081 # 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
1082 ],
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1083 "Describes user preferences, see /UserPreferences."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1084
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1085 ('checkbox_defaults',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1086 {
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1087 'mailto_author': 0,
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1088 '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
1089 'remember_last_visit': 0,
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1090 'show_comments': 0,
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1091 'show_nonexist_qm': False,
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1092 'show_page_trail': 1,
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1093 'show_toolbar': 1,
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1094 'show_topbottom': 0,
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1095 'show_fancy_diff': 1,
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1096 'wikiname_add_spaces': 0,
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1097 'remember_me': 1,
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1098 },
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1099 "Defaults for user preferences, see /UserPreferences."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1100
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1101 ('checkbox_disable', [],
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1102 "Disable user preferences, see /UserPreferences."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1103
3766
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1104 ('checkbox_remove', [],
6a618481be28 add help texts to configuration items
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3763
diff changeset
1105 "Remove user preferences, see /UserPreferences."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1106
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1107 ('form_fields',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1108 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1109 ('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
1110 ('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
1111 ('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
1112 ('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
1113 ('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
1114 ('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
1115 ],
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1116 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1117
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1118 ('form_defaults',
3779
9aad6c344482 multiconfig: PEP8 fixes, typos, no code change
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3771
diff changeset
1119 {# key: default - do NOT remove keys from here!
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1120 'name': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1121 'aliasname': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1122 'password': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1123 'password2': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1124 'email': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1125 'jid': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1126 'css_url': '',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1127 'edit_rows': "20",
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1128 },
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1129 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1130
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1131 ('form_disable', [], "list of field names used to disable user preferences form fields"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1132
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1133 ('form_remove', [], "list of field names used to remove user preferences form fields"),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1134
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1135 ('transient_fields',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1136 ['id', 'valid', 'may', 'auth_username', 'password', 'password2', 'auth_method', 'auth_attribs', ],
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1137 "User object attributes that are not persisted to permanent storage (internal use)."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1138 )),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1139
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1140 '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
1141 ('compression', 'gz', None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1142 ('users', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1143 ('include', [], None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1144 ('exclude',
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1145 [
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1146 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
1147 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
1148 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
1149 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
1150 ],
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1151 None),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1152 ('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
1153 ('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
1154 )),
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1155
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1156 'openid_server': ('OpenID Server',
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1157 '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
1158 (
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1159 ('enabled', False, "True to enable the built-in OpenID server."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1160 ('restricted_users_group', None, "If set to a group name, the group members are allowed to use the wiki as an OpenID provider. (None = allow for all users)"),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1161 ('enable_user', False, "If True, the OpenIDUser processing instruction is allowed."),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1162 )),
3746
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1163
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1164 'mail': ('Mail settings',
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1165 '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
1166 (
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1167 ('from', None, "Used as From: address for generated mail."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1168 ('login', None, "'username userpass' for SMTP server authentication (None = don't use auth)."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1169 ('smarthost', None, "Address of SMTP server to use for sending mail (None = don't use SMTP server)."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1170 ('sendmail', None, "sendmail command to use for sending mail (None = don't use sendmail)"),
3746
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1171
3781
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1172 ('import_secret', "", "Shared secret for mail importing"),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1173 ('import_subpage_template', u"$from-$date-$subject", "Create subpages using this template when importing mail."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1174 ('import_pagename_search', ['subject', 'to', ], "Where to look for target pagename specification."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1175 ('import_pagename_envelope', u"%s", "Use this to add some fixed prefix/postfix to the generated target pagename."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1176 ('import_pagename_regex', r'\[\[([^\]]*)\]\]', "Regular expression used to search for target pagename specification."),
a637edbeb5fa multiconfig: added more setting descriptions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 3779
diff changeset
1177 ('import_wiki_addrs', [], "Target mail addresses to consider when importing mail"),
3746
510db268574b make mail settings group
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3744
diff changeset
1178 )),
3740
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1179 }
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1180
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1181 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
1182 for groupname in opts:
3744
1eabe89b773b add longer group help text
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3741
diff changeset
1183 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
1184 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
1185 if addgroup:
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1186 name = groupname + '_' + name
3748
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
1187 if isinstance(default, DefaultExpression):
dc917a577d38 add multiconfig.DefaultExpression for documentation
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3747
diff changeset
1188 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
1189 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
1190
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolutions DOT net>
parents: 3738
diff changeset
1191 _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
1192 _add_options_to_defconfig(options_no_group_name, False)
67e6b9620ae0 move all default settings into a dict/list structure
Johannes Berg <johannes AT sipsolution