Mercurial > hg > bitsyblog
annotate bitsyblog/factory.py @ 105:67e01fc5e360
STUB: bitsyblog/bitsyblog.py bitsyblog/factory.py bitsyblog/user.py
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 23 Feb 2014 17:45:22 -0800 |
parents | 3198edbf7d8e |
children | e2f7dccbac26 |
rev | line source |
---|---|
103 | 1 """ |
2 factories for bistyblog | |
3 """ | |
4 | |
45 | 5 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
|
6 from bitsyblog import BitsyBlog, BitsierBlog |
103 | 7 from getpass import getpass |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
8 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
|
9 |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
10 def get_args(app_conf, app=BitsyBlog): |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
11 """return arguments for bitsyblog and its handlers""" |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
12 |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
13 # accepted configuration keys, e.g. 'bitsyblog.file_dir' |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
14 config = set(app.defaults.keys()) |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
15 key_str = app_conf.get('namespace', 'bitsyblog.') |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
16 bitsyblog_args = {} |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
17 handler_args = {} |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
18 for key, value in app_conf.items(): |
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
19 if key.startswith(key_str): |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
20 if key_str: |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
21 key = key.split(key_str, 1)[-1] |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
22 if key in config: |
71 | 23 bitsyblog_args[key] = value |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
24 continue |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
25 |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
26 # handler args |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
27 if '.' in key: |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
28 section, key = key.split('.', 1) |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
29 handler_args.setdefault(section, {})[key] = value |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
30 return bitsyblog_args, handler_args |
52
3ddb2ca12178
allow for multiple template directories
k0s <k0scist@gmail.com>
parents:
50
diff
changeset
|
31 |
103 | 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""" |
103 | 35 |
70
f6a6a4b072e7
complete overhaul to allow event handlers
Jeff Hammel <jhammel@mozilla.com>
parents:
59
diff
changeset
|
36 bitsyblog_args, handler_args = get_args(app_conf) |
71 | 37 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
|
38 secret = app_conf.get('secret', 'secret') |
103 | 39 return BitsyAuth(HTTPExceptionHandler(app), |
59 | 40 global_conf, |
41 app.passwords, | |
42 app.newuser, | |
103 | 43 'bitsyblog', |
59 | 44 secret) |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
45 |
103 | 46 |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
47 def basebitsierfactory(global_conf, bitsyblog_args, handler_args): |
103 | 48 """make single-user bitsyblog, base function""" |
49 | |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
50 user = bitsyblog_args['user'] # ensure this exists |
71 | 51 app = BitsierBlog(bitsyblog_args, handler_args) |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
52 secret = bitsyblog_args.get('secret', 'secret') |
59 | 53 auth = BitsyAuth(HTTPExceptionHandler(app), |
54 global_conf, | |
55 app.passwords, | |
56 newuser=None, | |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
57 site=bitsyblog_args.get('site', 'bitsyblog'), |
59 | 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: |
105
67e01fc5e360
STUB: bitsyblog/bitsyblog.py bitsyblog/factory.py bitsyblog/user.py
Jeff Hammel <k0scist@gmail.com>
parents:
104
diff
changeset
|
60 # create a new user |
67e01fc5e360
STUB: bitsyblog/bitsyblog.py bitsyblog/factory.py bitsyblog/user.py
Jeff Hammel <k0scist@gmail.com>
parents:
104
diff
changeset
|
61 # really, should go in CLI or what not |
0
e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
62 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
|
63 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
|
64 return auth |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
65 |
104 | 66 |
80
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
67 def bitsierfactory(global_conf, **app_conf): |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
68 """make single-user bitsyblog""" |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
69 bitsyblog_args, handler_args = get_args(app_conf, BitsierBlog) |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
70 app = basebitsierfactory(global_conf, bitsyblog_args, handler_args) |
51b49bc484ff
partial refactor of factories; really, i dont know what im doing
Jeff Hammel <jhammel@mozilla.com>
parents:
73
diff
changeset
|
71 return app |