Mercurial > kallithea
comparison rhodecode/controllers/login.py @ 636:ffd07396d315 beta
Fixes for raw_id, needed for git
Renamed hg controller to home
css html changes
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 26 Oct 2010 03:20:32 +0200 |
parents | 7e536d1af60d |
children | dd532af216d9 |
comparison
equal
deleted
inserted
replaced
635:fd63782c4426 | 636:ffd07396d315 |
---|---|
26 from formencode import htmlfill | 26 from formencode import htmlfill |
27 from pylons import request, response, session, tmpl_context as c, url | 27 from pylons import request, response, session, tmpl_context as c, url |
28 from pylons.controllers.util import abort, redirect | 28 from pylons.controllers.util import abort, redirect |
29 from rhodecode.lib.auth import AuthUser, HasPermissionAnyDecorator | 29 from rhodecode.lib.auth import AuthUser, HasPermissionAnyDecorator |
30 from rhodecode.lib.base import BaseController, render | 30 from rhodecode.lib.base import BaseController, render |
31 import rhodecode.lib.helpers as h | 31 import rhodecode.lib.helpers as h |
32 from pylons.i18n.translation import _ | 32 from pylons.i18n.translation import _ |
33 from rhodecode.model.forms import LoginForm, RegisterForm, PasswordResetForm | 33 from rhodecode.model.forms import LoginForm, RegisterForm, PasswordResetForm |
34 from rhodecode.model.user import UserModel | 34 from rhodecode.model.user import UserModel |
35 import formencode | 35 import formencode |
36 import logging | 36 import logging |
43 super(LoginController, self).__before__() | 43 super(LoginController, self).__before__() |
44 | 44 |
45 def index(self): | 45 def index(self): |
46 #redirect if already logged in | 46 #redirect if already logged in |
47 c.came_from = request.GET.get('came_from', None) | 47 c.came_from = request.GET.get('came_from', None) |
48 | 48 |
49 if c.rhodecode_user.is_authenticated: | 49 if c.rhodecode_user.is_authenticated: |
50 return redirect(url('hg_home')) | 50 return redirect(url('home')) |
51 | 51 |
52 if request.POST: | 52 if request.POST: |
53 #import Login Form validator class | 53 #import Login Form validator class |
54 login_form = LoginForm() | 54 login_form = LoginForm() |
55 try: | 55 try: |
56 c.form_result = login_form.to_python(dict(request.POST)) | 56 c.form_result = login_form.to_python(dict(request.POST)) |
64 auth_user.name = user.name | 64 auth_user.name = user.name |
65 auth_user.lastname = user.lastname | 65 auth_user.lastname = user.lastname |
66 session['rhodecode_user'] = auth_user | 66 session['rhodecode_user'] = auth_user |
67 session.save() | 67 session.save() |
68 log.info('user %s is now authenticated', username) | 68 log.info('user %s is now authenticated', username) |
69 | 69 |
70 user.update_lastlogin() | 70 user.update_lastlogin() |
71 | 71 |
72 if c.came_from: | 72 if c.came_from: |
73 return redirect(c.came_from) | 73 return redirect(c.came_from) |
74 else: | 74 else: |
75 return redirect(url('hg_home')) | 75 return redirect(url('home')) |
76 | 76 |
77 except formencode.Invalid, errors: | 77 except formencode.Invalid, errors: |
78 return htmlfill.render( | 78 return htmlfill.render( |
79 render('/login.html'), | 79 render('/login.html'), |
80 defaults=errors.value, | 80 defaults=errors.value, |
81 errors=errors.error_dict or {}, | 81 errors=errors.error_dict or {}, |
82 prefix_error=False, | 82 prefix_error=False, |
83 encoding="UTF-8") | 83 encoding="UTF-8") |
84 | 84 |
85 return render('/login.html') | 85 return render('/login.html') |
86 | 86 |
87 @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate', | 87 @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate', |
88 'hg.register.manual_activate') | 88 'hg.register.manual_activate') |
89 def register(self): | 89 def register(self): |
90 user_model = UserModel() | 90 user_model = UserModel() |
91 c.auto_active = False | 91 c.auto_active = False |
92 for perm in user_model.get_by_username('default', cache=False).user_perms: | 92 for perm in user_model.get_by_username('default', cache=False).user_perms: |
93 if perm.permission.permission_name == 'hg.register.auto_activate': | 93 if perm.permission.permission_name == 'hg.register.auto_activate': |
94 c.auto_active = True | 94 c.auto_active = True |
95 break | 95 break |
96 | 96 |
97 if request.POST: | 97 if request.POST: |
98 | 98 |
99 register_form = RegisterForm()() | 99 register_form = RegisterForm()() |
100 try: | 100 try: |
101 form_result = register_form.to_python(dict(request.POST)) | 101 form_result = register_form.to_python(dict(request.POST)) |
102 form_result['active'] = c.auto_active | 102 form_result['active'] = c.auto_active |
103 user_model.create_registration(form_result) | 103 user_model.create_registration(form_result) |
104 h.flash(_('You have successfully registered into rhodecode'), | 104 h.flash(_('You have successfully registered into rhodecode'), |
105 category='success') | 105 category='success') |
106 return redirect(url('login_home')) | 106 return redirect(url('login_home')) |
107 | 107 |
108 except formencode.Invalid, errors: | 108 except formencode.Invalid, errors: |
109 return htmlfill.render( | 109 return htmlfill.render( |
110 render('/register.html'), | 110 render('/register.html'), |
111 defaults=errors.value, | 111 defaults=errors.value, |
112 errors=errors.error_dict or {}, | 112 errors=errors.error_dict or {}, |
113 prefix_error=False, | 113 prefix_error=False, |
114 encoding="UTF-8") | 114 encoding="UTF-8") |
115 | 115 |
116 return render('/register.html') | 116 return render('/register.html') |
117 | 117 |
118 def password_reset(self): | 118 def password_reset(self): |
119 user_model = UserModel() | 119 user_model = UserModel() |
120 if request.POST: | 120 if request.POST: |
121 | 121 |
122 password_reset_form = PasswordResetForm()() | 122 password_reset_form = PasswordResetForm()() |
123 try: | 123 try: |
124 form_result = password_reset_form.to_python(dict(request.POST)) | 124 form_result = password_reset_form.to_python(dict(request.POST)) |
125 user_model.reset_password(form_result) | 125 user_model.reset_password(form_result) |
126 h.flash(_('Your new password was sent'), | 126 h.flash(_('Your new password was sent'), |
127 category='success') | 127 category='success') |
128 return redirect(url('login_home')) | 128 return redirect(url('login_home')) |
129 | 129 |
130 except formencode.Invalid, errors: | 130 except formencode.Invalid, errors: |
131 return htmlfill.render( | 131 return htmlfill.render( |
132 render('/password_reset.html'), | 132 render('/password_reset.html'), |
133 defaults=errors.value, | 133 defaults=errors.value, |
134 errors=errors.error_dict or {}, | 134 errors=errors.error_dict or {}, |
135 prefix_error=False, | 135 prefix_error=False, |
136 encoding="UTF-8") | 136 encoding="UTF-8") |
137 | 137 |
138 return render('/password_reset.html') | 138 return render('/password_reset.html') |
139 | 139 |
140 def logout(self): | 140 def logout(self): |
141 session['rhodecode_user'] = AuthUser() | 141 session['rhodecode_user'] = AuthUser() |
142 session.save() | 142 session.save() |
143 log.info('Logging out and setting user as Empty') | 143 log.info('Logging out and setting user as Empty') |
144 redirect(url('hg_home')) | 144 redirect(url('home')) |