comparison bitsyauth/factory.py @ 9:73b2b5bccd52

* allow logout to pass through instead of failing * add a basic filter factory for single-user bitsyauth wrapper which reads bitsyblog users directory as format (this needs to be factored apart later)
author egj@socialplanning.org
date Mon, 04 Jan 2010 03:14:01 +0000
parents c958eb9300da
children
comparison
equal deleted inserted replaced
8:c958eb9300da 9:73b2b5bccd52
1 from bitsyauth import BitsyAuth 1 from bitsyauth import BitsyAuth
2 from paste.auth import digest 2 from paste.auth import digest
3 3
4 def passworder_factory(username, password): 4 def passworder_factory(username, database):
5 def passwords(): 5 def passwords():
6 passwords = database.passwords()
7 password = passwords[username]
6 return {username: password} 8 return {username: password}
7 return passwords 9 return passwords
8 10
9 def filter_factory(global_conf, **app_conf): 11 def filter_factory(global_conf, **app_conf):
10 12
11 user = app_conf['user'] 13 user = app_conf['user']
12 site = app_conf.get('site', 'bitsyauth') 14 site = app_conf.get('site', 'bitsyauth')
13 secret = app_conf.get('secret', 'secret') 15 secret = app_conf.get('secret', 'secret')
14 password = app_conf['password'] 16
15 password = digest.digest_password(site, user, password) 17 from bitsyblog.user import FilespaceUsers
16 passwords = passworder_factory(user, password) 18
19 users_directory = FilespaceUsers(
20 app_conf['users_directory'])
21
22 passwords = passworder_factory(user, users_directory)
17 23
18 def filter(app): 24 def filter(app):
19 return BitsyAuth( 25 ret = BitsyAuth(
20 app, 26 app,
21 global_conf, 27 global_conf,
22 passwords, 28 passwords,
23 newuser=None, 29 newuser=None,
24 site=site, 30 site=site,
25 secret=secret) 31 secret=secret)
32 return ret
26 return filter 33 return filter