Mercurial > kallithea
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pylons_app/controllers/login.py Sat May 22 01:32:30 2010 +0200 @@ -0,0 +1,37 @@ +import logging +from formencode import htmlfill +from pylons import request, response, session, tmpl_context as c, url +from pylons.controllers.util import abort, redirect +from pylons_app.lib.base import BaseController, render +import formencode +from pylons_app.model.forms import LoginForm +from pylons_app.lib.auth import AuthUser + +log = logging.getLogger(__name__) + +class LoginController(BaseController): + + def index(self): + if session.get('hg_app_user', AuthUser()).is_authenticated: + return redirect(url('hg_home')) + + if request.POST: + #import Login Form validator class + login_form = LoginForm() + try: + c.form_result = login_form.to_python(dict(request.POST)) + return redirect(url('hg_home')) + + except formencode.Invalid as errors: + c.form_errors = errors.error_dict + return htmlfill.render( + render('/login.html'), + defaults=errors.value, + encoding="UTF-8") + + return render('/login.html') + + def logout(self): + session['hg_app_user'] = AuthUser() + session.save() + redirect(url('hg_home'))