##// END OF EJS Templates
fixed shortlog for new narrower gui.
fixed shortlog for new narrower gui.

File last commit:

r761:56c2850a beta
r826:9205fa08 beta
Show More
login.py
146 lines | 5.3 KiB | text/x-python | PythonLexer
renamed project to rhodecode
r547 #!/usr/bin/env python
# encoding: utf-8
# login controller for pylons
# Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2
# of the License or (at your opinion) any later version of the license.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
"""
Created on April 22, 2010
login controller for pylons
@author: marcink
"""
from formencode import htmlfill
from pylons import request, response, session, tmpl_context as c, url
from pylons.controllers.util import abort, redirect
from rhodecode.lib.auth import AuthUser, HasPermissionAnyDecorator
from rhodecode.lib.base import BaseController, render
Fixes for raw_id, needed for git...
r636 import rhodecode.lib.helpers as h
renamed project to rhodecode
r547 from pylons.i18n.translation import _
from rhodecode.model.forms import LoginForm, RegisterForm, PasswordResetForm
Code refactoring,models renames...
r629 from rhodecode.model.user import UserModel
renamed project to rhodecode
r547 import formencode
import logging
log = logging.getLogger(__name__)
class LoginController(BaseController):
def __before__(self):
super(LoginController, self).__before__()
def index(self):
#redirect if already logged in
c.came_from = request.GET.get('came_from', None)
Fixes for raw_id, needed for git...
r636
#49 Enabled anonymous access for web interface controllable from permissions pannel
r673 if c.rhodecode_user.is_authenticated \
and c.rhodecode_user.username != 'default':
Fixes for raw_id, needed for git...
r636 return redirect(url('home'))
renamed project to rhodecode
r547 if request.POST:
#import Login Form validator class
login_form = LoginForm()
try:
c.form_result = login_form.to_python(dict(request.POST))
username = c.form_result['username']
ldap auth rewrite, moved split authfunc into two functions,...
r761 user = UserModel().get_by_username(username, case_insensitive=True)
renamed project to rhodecode
r547 auth_user = AuthUser()
auth_user.username = user.username
auth_user.is_authenticated = True
auth_user.is_admin = user.admin
auth_user.user_id = user.user_id
auth_user.name = user.name
auth_user.lastname = user.lastname
renamed hg_app to rhodecode
r548 session['rhodecode_user'] = auth_user
renamed project to rhodecode
r547 session.save()
log.info('user %s is now authenticated', username)
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 user.update_lastlogin()
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 if c.came_from:
return redirect(c.came_from)
else:
Fixes for raw_id, needed for git...
r636 return redirect(url('home'))
refactor codes and setup for python 2.5...
r564 except formencode.Invalid, errors:
renamed project to rhodecode
r547 return htmlfill.render(
render('/login.html'),
defaults=errors.value,
errors=errors.error_dict or {},
prefix_error=False,
encoding="UTF-8")
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 return render('/login.html')
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate',
'hg.register.manual_activate')
def register(self):
user_model = UserModel()
c.auto_active = False
Code refactoring,models renames...
r629 for perm in user_model.get_by_username('default', cache=False).user_perms:
renamed project to rhodecode
r547 if perm.permission.permission_name == 'hg.register.auto_activate':
c.auto_active = True
break
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 if request.POST:
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 register_form = RegisterForm()()
try:
form_result = register_form.to_python(dict(request.POST))
form_result['active'] = c.auto_active
user_model.create_registration(form_result)
more renames for rhode code !!
r549 h.flash(_('You have successfully registered into rhodecode'),
Fixes for raw_id, needed for git...
r636 category='success')
renamed project to rhodecode
r547 return redirect(url('login_home'))
Fixes for raw_id, needed for git...
r636
refactor codes and setup for python 2.5...
r564 except formencode.Invalid, errors:
renamed project to rhodecode
r547 return htmlfill.render(
render('/register.html'),
defaults=errors.value,
errors=errors.error_dict or {},
prefix_error=False,
encoding="UTF-8")
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 return render('/register.html')
def password_reset(self):
user_model = UserModel()
if request.POST:
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 password_reset_form = PasswordResetForm()()
try:
form_result = password_reset_form.to_python(dict(request.POST))
user_model.reset_password(form_result)
h.flash(_('Your new password was sent'),
Fixes for raw_id, needed for git...
r636 category='success')
renamed project to rhodecode
r547 return redirect(url('login_home'))
Fixes for raw_id, needed for git...
r636
refactor codes and setup for python 2.5...
r564 except formencode.Invalid, errors:
renamed project to rhodecode
r547 return htmlfill.render(
render('/password_reset.html'),
defaults=errors.value,
errors=errors.error_dict or {},
prefix_error=False,
encoding="UTF-8")
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 return render('/password_reset.html')
Fixes for raw_id, needed for git...
r636
renamed project to rhodecode
r547 def logout(self):
renamed hg_app to rhodecode
r548 session['rhodecode_user'] = AuthUser()
renamed project to rhodecode
r547 session.save()
log.info('Logging out and setting user as Empty')
Fixes for raw_id, needed for git...
r636 redirect(url('home'))