changeset 242:5da4ef115006

Added lastlogin to user after login, model db update
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 30 May 2010 22:08:54 +0200
parents 48727add84c9
children 9d64df490248
files pylons_app/model/db.py pylons_app/model/forms.py
diffstat 2 files changed, 18 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/model/db.py	Sun May 30 22:08:21 2010 +0200
+++ b/pylons_app/model/db.py	Sun May 30 22:08:54 2010 +0200
@@ -34,7 +34,13 @@
 class Repository(Base):
     __tablename__ = 'repositories'
     repo_id = Column("repo_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=1)
-
+    repo_name = Column("repo_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
+    user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=True, unique=None, default=None)
+    private = Column("private", BOOLEAN(), nullable=True, unique=None, default=None)
+    
+    user = relation('User')
+    
+    
 class Permission(Base):
     __tablename__ = 'permissions'
     __table_args__ = {'useexisting':True}
--- a/pylons_app/model/forms.py	Sun May 30 22:08:21 2010 +0200
+++ b/pylons_app/model/forms.py	Sun May 30 22:08:54 2010 +0200
@@ -19,9 +19,9 @@
 for SELECT use formencode.All(OneOf(list), Int())
     
 """
+from formencode import All
 from formencode.validators import UnicodeString, OneOf, Int, Number, Regex, \
     Email, Bool, StringBoolean
-from formencode import All
 from pylons import session
 from pylons.i18n.translation import _
 from pylons_app.lib.auth import get_crypt_password
@@ -30,6 +30,7 @@
 from sqlalchemy.exc import OperationalError
 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
 from webhelpers.pylonslib.secure_form import authentication_token
+import datetime
 import formencode
 import logging
 log = logging.getLogger(__name__)
@@ -95,6 +96,15 @@
                     session['hg_app_user'] = auth_user
                     session.save()
                     log.info('user %s is now authenticated', username)
+                    
+                    try:
+                        user.last_login = datetime.datetime.now()
+                        sa.add(user)
+                        sa.commit()                        
+                    except (OperationalError) as e:
+                        log.error(e)
+                        sa.rollback()
+                    
                     return value
                 else:
                     log.warning('user %s not authenticated', username)