some auth/login tweaks
This commit is contained in:
		
							parent
							
								
									df9524a6ac
								
							
						
					
					
						commit
						02d4cfc6c5
					
				
					 6 changed files with 23 additions and 26 deletions
				
			
		| 
						 | 
				
			
			@ -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')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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...
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@
 | 
			
		|||
  ${h.stylesheet_link(request.static_url('edbob.pyramid:static/css/login.css'))}
 | 
			
		||||
</%def>
 | 
			
		||||
 | 
			
		||||
${h.image(request.static_url('edbob.pyramid:static/img/logo.jpg'), "edbob logo")}
 | 
			
		||||
${h.image(logo_url, "${self.global_title()} logo", id='login-logo')}
 | 
			
		||||
 | 
			
		||||
<div class="fieldset">
 | 
			
		||||
  ${h.form('')}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,5 +27,5 @@
 | 
			
		|||
"""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def includeme(config):
 | 
			
		||||
    config.include('edbob.pyramid.views.auth')
 | 
			
		||||
# def includeme(config):
 | 
			
		||||
#     config.include('edbob.pyramid.views.auth')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue