diff --git a/edbob/pyramid/__init__.py b/edbob/pyramid/__init__.py index cd82da9..02a62d2 100644 --- a/edbob/pyramid/__init__.py +++ b/edbob/pyramid/__init__.py @@ -41,4 +41,4 @@ Session.configure(extension=ZopeTransactionExtension()) def includeme(config): config.include('edbob.pyramid.static') config.include('edbob.pyramid.subscribers') - config.include('edbob.pyramid.views') + # config.include('edbob.pyramid.views') diff --git a/edbob/pyramid/scaffolds/edbob/+package+/commands.py_tmpl b/edbob/pyramid/scaffolds/edbob/+package+/commands.py_tmpl index 7bd2341..7ff9d50 100644 --- a/edbob/pyramid/scaffolds/edbob/+package+/commands.py_tmpl +++ b/edbob/pyramid/scaffolds/edbob/+package+/commands.py_tmpl @@ -39,7 +39,7 @@ class InitCommand(commands.Subcommand): description = "Initialize the database" def run(self, args): - from edbob.db import engine + from edbob.db import engine, Session from edbob.db.util import install_core_schema from edbob.db.exceptions import CoreSchemaAlreadyInstalled from edbob.db.extensions import activate_extension @@ -53,20 +53,16 @@ class InitCommand(commands.Subcommand): return # Activate any extensions you like here... + activate_extension('auth') # activate_extension('shrubbery') # Okay, on to bootstrapping... - from edbob.db import Session - from edbob.db.classes import Role, User - from edbob.db.auth import administrator_role - session = Session() - # Create 'admin' user with full rights. - admin = User(username='admin', password='admin') - admin.roles.append(administrator_role(session)) - session.add(admin) + # This creates an 'admin' user with 'admin' password. + import edbob.db.auth + edbob.db.auth.init_database(engine, session) # Do any other bootstrapping you like here... diff --git a/edbob/pyramid/static/css/login.css b/edbob/pyramid/static/css/login.css index 0e85284..cf6c22b 100644 --- a/edbob/pyramid/static/css/login.css +++ b/edbob/pyramid/static/css/login.css @@ -3,11 +3,11 @@ * login.css ******************************/ -img { +#login-logo { display: block; margin: 10px auto 25px auto; padding-left: 50px; - width: 500px; + /* width: 500px; */ } div.fieldset { diff --git a/edbob/pyramid/templates/edbob/login.mako b/edbob/pyramid/templates/edbob/login.mako index c040847..aeabf37 100644 --- a/edbob/pyramid/templates/edbob/login.mako +++ b/edbob/pyramid/templates/edbob/login.mako @@ -6,7 +6,7 @@ ${h.stylesheet_link(request.static_url('edbob.pyramid:static/css/login.css'))} -${h.image(request.static_url('edbob.pyramid:static/img/logo.jpg'), "edbob logo")} +${h.image(logo_url, "${self.global_title()} logo", id='login-logo')}
${h.form('')} diff --git a/edbob/pyramid/views/__init__.py b/edbob/pyramid/views/__init__.py index fdef127..e5972a2 100644 --- a/edbob/pyramid/views/__init__.py +++ b/edbob/pyramid/views/__init__.py @@ -27,5 +27,5 @@ """ -def includeme(config): - config.include('edbob.pyramid.views.auth') +# def includeme(config): +# config.include('edbob.pyramid.views.auth') diff --git a/edbob/pyramid/views/auth.py b/edbob/pyramid/views/auth.py index 6770d9d..f0755c1 100644 --- a/edbob/pyramid/views/auth.py +++ b/edbob/pyramid/views/auth.py @@ -27,7 +27,6 @@ """ import formencode -from pyramid.view import view_config from pyramid.httpexceptions import HTTPFound from pyramid.security import remember, forget from pyramid_simpleform import Form @@ -45,7 +44,6 @@ class UserLogin(formencode.Schema): password = formencode.validators.NotEmpty() -@view_config(route_name='login', renderer='/login.mako') def login(context, request): """ The login view, responsible for displaying and handling the login form. @@ -56,9 +54,10 @@ def login(context, request): elif request.session.get('referer'): referer = request.session.pop('referer') else: - referer = request.referer or request.route_url('home') - if referer == request.route_url('login'): - referer = request.route_url('home') + referer = request.referer + if not referer or referer == request.route_url('login'): + referer = edbob.config.get('edbob.pyramid', 'login.home', + default=request.route_url('home')) # Redirect if already logged in. if request.user: @@ -76,20 +75,22 @@ def login(context, request): headers = remember(request, user.uuid) return HTTPFound(location=referer, headers=headers) request.session.flash("Invalid username or password") - return {'form': FormRenderer(form), 'referer': referer} + + url = edbob.config.get('edbob.pyramid', 'login.logo_url', + default=request.static_url('edbob.pyramid:static/img/logo.jpg')) + + return {'form': FormRenderer(form), 'referer': referer, 'logo_url': url} -@view_config(route_name='logout') def logout(context, request): request.session.delete() - request.session.flash("%s logged out at %s" % ( - request.user.display_name, - edbob.local_time().strftime("%I:%M %p"))) headers = forget(request) return HTTPFound(location=request.route_url('login'), headers=headers) def includeme(config): config.add_route('login', '/login') + config.add_view(login, route_name='login', renderer='/login.mako') + config.add_route('logout', '/logout') - config.scan() + config.add_view(logout, route_name='logout')