comparison pylons_app/controllers/login.py @ 363:98abf8953b87

Added user registration, changed login url schema, moved it into _admin/ for safety
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 24 Jul 2010 02:18:48 +0200
parents db187729c40c
children 3ed2d46a2ca7
comparison
equal deleted inserted replaced
362:558eb7c5028f 363:98abf8953b87
15 # 15 #
16 # You should have received a copy of the GNU General Public License 16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software 17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 # MA 02110-1301, USA. 19 # MA 02110-1301, USA.
20 from formencode import htmlfill
21 from pylons import request, response, session, tmpl_context as c, url
22 from pylons.controllers.util import abort, redirect
23 from pylons_app.lib.auth import AuthUser
24 from pylons_app.lib.base import BaseController, render
25 from pylons_app.model.forms import LoginForm, RegisterForm
26 from pylons_app.model.user_model import UserModel
27 import formencode
28 import logging
20 """ 29 """
21 Created on April 22, 2010 30 Created on April 22, 2010
22 login controller for pylons 31 login controller for pylons
23 @author: marcink 32 @author: marcink
24 """ 33 """
25 import logging
26 from formencode import htmlfill
27 from pylons import request, response, session, tmpl_context as c, url
28 from pylons.controllers.util import abort, redirect
29 from pylons_app.lib.base import BaseController, render
30 import formencode
31 from pylons_app.model.forms import LoginForm
32 from pylons_app.lib.auth import AuthUser
33 34
34 log = logging.getLogger(__name__) 35 log = logging.getLogger(__name__)
35 36
36 class LoginController(BaseController): 37 class LoginController(BaseController):
37 38
58 prefix_error=False, 59 prefix_error=False,
59 encoding="UTF-8") 60 encoding="UTF-8")
60 61
61 return render('/login.html') 62 return render('/login.html')
62 63
64
65 def register(self):
66 if request.POST:
67 user_model = UserModel()
68 register_form = RegisterForm()()
69 try:
70 form_result = register_form.to_python(dict(request.POST))
71 user_model.create_registration(form_result)
72 return redirect(url('login_home'))
73
74 except formencode.Invalid as errors:
75 return htmlfill.render(
76 render('/register.html'),
77 defaults=errors.value,
78 errors=errors.error_dict or {},
79 prefix_error=False,
80 encoding="UTF-8")
81
82 return render('/register.html')
83
63 def logout(self): 84 def logout(self):
64 session['hg_app_user'] = AuthUser() 85 session['hg_app_user'] = AuthUser()
65 session.save() 86 session.save()
66 log.info('Logging out and setting user as Empty') 87 log.info('Logging out and setting user as Empty')
67 redirect(url('hg_home')) 88 redirect(url('hg_home'))