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