Mercurial > kallithea
changeset 1400:0d7b56b97953 beta
Simplified last_login call on user, and changed login to use User model directly
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 29 Jun 2011 01:49:53 +0200 |
parents | 4134af931e91 |
children | b7563ad4e7ee |
files | rhodecode/controllers/login.py rhodecode/model/db.py |
diffstat | 2 files changed, 19 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/login.py Wed Jun 29 01:47:59 2011 +0200 +++ b/rhodecode/controllers/login.py Wed Jun 29 01:49:53 2011 +0200 @@ -35,6 +35,7 @@ import rhodecode.lib.helpers as h from rhodecode.lib.auth import AuthUser, HasPermissionAnyDecorator from rhodecode.lib.base import BaseController, render +from rhodecode.model.db import User from rhodecode.model.forms import LoginForm, RegisterForm, PasswordResetForm from rhodecode.model.user import UserModel @@ -63,7 +64,7 @@ c.form_result = login_form.to_python(dict(request.POST)) #form checks for username/password, now we're authenticated username = c.form_result['username'] - user = UserModel().get_by_username(username, + user = User.by_username(username, case_insensitive=True) auth_user = AuthUser(user.user_id) auth_user.set_authenticated()
--- a/rhodecode/model/db.py Wed Jun 29 01:47:59 2011 +0200 +++ b/rhodecode/model/db.py Wed Jun 29 01:49:53 2011 +0200 @@ -225,31 +225,31 @@ def short_contact(self): return '%s %s' % (self.name, self.lastname) - @property def is_admin(self): return self.admin def __repr__(self): - return "<%s('id:%s:%s')>" % (self.__class__.__name__, - self.user_id, self.username) + try: + return "<%s('id:%s:%s')>" % (self.__class__.__name__, + self.user_id, self.username) + except: + return self.__class__.__name__ @classmethod - def by_username(cls, username): - return Session.query(cls).filter(cls.username == username).one() - + def by_username(cls, username, case_insensitive=False): + if case_insensitive: + return Session.query(cls).filter(cls.username.like(username)).one() + else: + return Session.query(cls).filter(cls.username == username).one() def update_lastlogin(self): """Update user lastlogin""" - try: - session = Session.object_session(self) - self.last_login = datetime.datetime.now() - session.add(self) - session.commit() - log.debug('updated user %s lastlogin', self.username) - except (DatabaseError,): - session.rollback() + self.last_login = datetime.datetime.now() + Session.add(self) + Session.commit() + log.debug('updated user %s lastlogin', self.username) class UserLog(Base, BaseModel): @@ -463,13 +463,13 @@ @property def scm_instance(self): - return self.__get_instance(self.repo_name) + return self.__get_instance() @property def scm_instance_cached(self): @cache_region('long_term') def _c(repo_name): - return self.__get_instance(repo_name) + return self.__get_instance() inv = self.invalidate if inv: @@ -481,7 +481,7 @@ return _c(self.repo_name) - def __get_instance(self, repo_name): + def __get_instance(self): repo_full_path = self.repo_full_path