Mercurial > kallithea
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')) |