Mercurial > hg > bitsyblog
annotate bitsyblog/factory.py @ 71:0c98d1c2c6df
fix syntax errors
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Thu, 08 Jul 2010 10:40:43 -0700 |
parents | f6a6a4b072e7 |
children | e6055bf127eb |
rev | line source |
---|---|
45 | 1 from bitsyauth import BitsyAuth |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
2 from bitsyblog import BitsyBlog, BitsierBlog |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
3 from getpass import getpass |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
4 from paste.httpexceptions import HTTPExceptionHandler |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
5 |
52
3ddb2ca12178
allow for multiple template directories
k0s <k0scist@gmail.com>
parents:
50
diff
changeset
|
6 # accepted configuration keys, e.g. 'bitsyblog.file_dir' |
58 | 7 config = set(['file_dir', |
8 'date_format', | |
9 'subject', | |
10 'n_links', | |
11 'help_file', | |
12 'header', | |
13 'template_directories', | |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
14 'feed_items', |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
15 ]) |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
16 |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
17 def get_args(app_conf): |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
18 """return arguments for bitsyblog and its handlers""" |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
19 key_str = 'bitsyblog.' |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
20 bitsyblog_args = {} |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
21 handler_args = {} |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
22 for key, value in app_conf.items(): |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
23 if key.startswith(key_str): |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
24 key = key.split(key_str, 1)[-1] |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
25 if key in config: |
71 | 26 bitsyblog_args[key] = value |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
27 else: |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
28 if '.' in key: |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
29 section, key = key.split('.', 1) |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
30 handler_args.setdefault(section, {})[key] = value |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
31 return bitsyblog_args, handler_args |
52
3ddb2ca12178
allow for multiple template directories
k0s <k0scist@gmail.com>
parents:
50
diff
changeset
|
32 |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
33 def factory(global_conf, **app_conf): |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
34 """make bitsyauth app and wrap it in middleware""" |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
35 bitsyblog_args, handler_args = get_args(app_conf) |
71 | 36 app = BitsyBlog(bitsyblog_args, handler_args) |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
37 secret = app_conf.get('secret', 'secret') |
59 | 38 return BitsyAuth(HTTPExceptionHandler(app), |
39 global_conf, | |
40 app.passwords, | |
41 app.newuser, | |
42 'bitsyblog', | |
43 secret) | |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
44 |
40 | 45 |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
46 def bitsierfactory(global_conf, **app_conf): |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
47 """make single-user bitsyblog""" |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
48 bitsyblog_args, handler_args = get_args(app_conf) |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
49 user = app_conf['bitsyblog.user'] # ensure this exist |
71 | 50 app = BitsierBlog(bitsyblog_args, handler_args) |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
51 app.user = user |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
52 secret = app_conf.get('secret', 'secret') |
59 | 53 auth = BitsyAuth(HTTPExceptionHandler(app), |
54 global_conf, | |
55 app.passwords, | |
56 newuser=None, | |
57 site=app_conf.get('site', 'bitsyblog'), | |
58 secret=secret) | |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
59 if not user in app.users: |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
60 pw = getpass('Enter password for %s: ' % user) |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
61 app.newuser(user, auth.hash(app.user, pw)) |
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
62 return auth |