view bitsyblog/factory.py @ 44:0e7f56709c90

cleanup of blogme, not yet finished
author k0s <k0scist@gmail.com>
date Wed, 11 Nov 2009 19:39:27 -0500
parents b1a4f1f434cf
children c228832db770
line wrap: on
line source

from bitsyauth.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)


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