from paste.cascade import Cascade
from paste.registry import RegistryManager
from paste.urlparser import StaticURLParser
+from paste.auth.basic import AuthBasicHandler
from paste.deploy.converters import asbool
from pylons import config
from pylons.middleware import ErrorHandler, StatusCodeRedirect
from bluechips.config.environment import load_environment
-from bluechips.lib.permissions import BlueChipUser, DummyAuthenticate
+from bluechips.lib.permissions import (BlueChipUser, DummyAuthenticate,
+ authenticate)
def make_app(global_conf, full_stack=True, **app_conf):
"""Create a Pylons WSGI application and return it
# server is handling this static content, remove the following 3 lines)
static_app = StaticURLParser(config['pylons.paths']['static_files'])
app = Cascade([static_app, app])
+ app = AuthBasicHandler(app, 'BlueChips', authenticate)
return app
newenv['REMOTE_USER'] = app_conf['fake_username']
super(DummyAuthenticate, self).__init__(app, newenv)
-__all__ = ['BlueChipUser', 'DummyAuthenticate']
+
+def authenticate(environ, username, password):
+ user = meta.Session.query(model.User).\
+ filter_by(username=unicode(username),
+ password=unicode(password)).first()
+ return (user is not None)
+
+__all__ = ['BlueChipUser', 'DummyAuthenticate', 'authenticate']
sa.Column('username', sa.types.Unicode(32), nullable=False),
sa.Column('name', sa.types.Unicode(64)),
sa.Column('resident', sa.types.Boolean, default=True),
- sa.Column('email', sa.types.Unicode(64))
+ sa.Column('email', sa.types.Unicode(64)),
+ sa.Column('password', sa.types.Unicode(64)),
)
expenditures = sa.Table('expenditures', meta.metadata,