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