comparison pylons_app/model/forms.py @ 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 a55c17874486
children 0e5455fda8fd
comparison
equal deleted inserted replaced
241:48727add84c9 242:5da4ef115006
17 <name> must equal form name 17 <name> must equal form name
18 list=[1,2,3,4,5] 18 list=[1,2,3,4,5]
19 for SELECT use formencode.All(OneOf(list), Int()) 19 for SELECT use formencode.All(OneOf(list), Int())
20 20
21 """ 21 """
22 from formencode import All
22 from formencode.validators import UnicodeString, OneOf, Int, Number, Regex, \ 23 from formencode.validators import UnicodeString, OneOf, Int, Number, Regex, \
23 Email, Bool, StringBoolean 24 Email, Bool, StringBoolean
24 from formencode import All
25 from pylons import session 25 from pylons import session
26 from pylons.i18n.translation import _ 26 from pylons.i18n.translation import _
27 from pylons_app.lib.auth import get_crypt_password 27 from pylons_app.lib.auth import get_crypt_password
28 from pylons_app.model import meta 28 from pylons_app.model import meta
29 from pylons_app.model.db import User 29 from pylons_app.model.db import User
30 from sqlalchemy.exc import OperationalError 30 from sqlalchemy.exc import OperationalError
31 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound 31 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
32 from webhelpers.pylonslib.secure_form import authentication_token 32 from webhelpers.pylonslib.secure_form import authentication_token
33 import datetime
33 import formencode 34 import formencode
34 import logging 35 import logging
35 log = logging.getLogger(__name__) 36 log = logging.getLogger(__name__)
36 37
37 38
93 auth_user.is_authenticated = True 94 auth_user.is_authenticated = True
94 auth_user.is_admin = user.admin 95 auth_user.is_admin = user.admin
95 session['hg_app_user'] = auth_user 96 session['hg_app_user'] = auth_user
96 session.save() 97 session.save()
97 log.info('user %s is now authenticated', username) 98 log.info('user %s is now authenticated', username)
99
100 try:
101 user.last_login = datetime.datetime.now()
102 sa.add(user)
103 sa.commit()
104 except (OperationalError) as e:
105 log.error(e)
106 sa.rollback()
107
98 return value 108 return value
99 else: 109 else:
100 log.warning('user %s not authenticated', username) 110 log.warning('user %s not authenticated', username)
101 raise formencode.Invalid(self.message('invalid_password', 111 raise formencode.Invalid(self.message('invalid_password',
102 state=State_obj), value, state, 112 state=State_obj), value, state,