comparison pylons_app/controllers/login.py @ 186:556473ba0399

fixed menu in home page, and added login html with forms that validates username and password.
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 22 May 2010 01:32:30 +0200
parents
children 7109d15c6813
comparison
equal deleted inserted replaced
185:3380ca40cdba 186:556473ba0399
1 import logging
2 from formencode import htmlfill
3 from pylons import request, response, session, tmpl_context as c, url
4 from pylons.controllers.util import abort, redirect
5 from pylons_app.lib.base import BaseController, render
6 import formencode
7 from pylons_app.model.forms import LoginForm
8 from pylons_app.lib.auth import AuthUser
9
10 log = logging.getLogger(__name__)
11
12 class LoginController(BaseController):
13
14 def index(self):
15 if session.get('hg_app_user', AuthUser()).is_authenticated:
16 return redirect(url('hg_home'))
17
18 if request.POST:
19 #import Login Form validator class
20 login_form = LoginForm()
21 try:
22 c.form_result = login_form.to_python(dict(request.POST))
23 return redirect(url('hg_home'))
24
25 except formencode.Invalid as errors:
26 c.form_errors = errors.error_dict
27 return htmlfill.render(
28 render('/login.html'),
29 defaults=errors.value,
30 encoding="UTF-8")
31
32 return render('/login.html')
33
34 def logout(self):
35 session['hg_app_user'] = AuthUser()
36 session.save()
37 redirect(url('hg_home'))