Mercurial > hg > bitsyblog
diff bitsyblog/factory.py @ 0:e3823be6a423
initial commit of bitsyblog, from https://svn.openplans.org/svn/standalone/bitsyblog/trunk/
author | k0s <k0scist@gmail.com> |
---|---|
date | Sat, 12 Sep 2009 16:06:57 -0400 |
parents | |
children | c293bcbe6e03 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bitsyblog/factory.py Sat Sep 12 16:06:57 2009 -0400 @@ -0,0 +1,36 @@ +from bitsyauth import BitsyAuth +from bitsyblog import BitsyBlog, BitsierBlog +from getpass import getpass +from paste.httpexceptions import HTTPExceptionHandler + +def factory(global_conf, **app_conf): + """make bitsyauth app and wrap it in middleware""" + + config = [ 'file_dir', 'date_format', 'subject', 'n_links', 'help_file' ] + key_str = 'bitsyblog.%s' + args = dict([ (key, app_conf[ key_str % key]) for key in config + if app_conf.has_key(key_str % key) ]) + + app = BitsyBlog(**args) + secret = app_conf.get('secret', 'secret') + return BitsyAuth(HTTPExceptionHandler(app), global_conf, app.passwords, app.newuser, 'bitsyblog', secret) + +# TODO: use wsgifilter.proxyapp.DebugHeaders to debug the headers apache +# doesn't like + +def bitsierfactory(global_conf, **app_conf): + """make single-user bitsyblog""" + config = [ 'file_dir', 'date_format', 'subject', 'n_links', 'help_file' ] + key_str = 'bitsyblog.%s' + args = dict([ (key, app_conf[ key_str % key]) for key in config + if app_conf.has_key(key_str % key) ]) + + user = app_conf['bitsyblog.user'] + app = BitsierBlog(**args) + app.user = user + secret = app_conf.get('secret', 'secret') + auth = BitsyAuth(HTTPExceptionHandler(app), global_conf, app.passwords, newuser=None, site='bitsyblog', secret=secret) + if not user in app.users: + pw = getpass('Enter password for %s: ' % user) + app.newuser(user, auth.hash(app.user, pw)) + return auth