Skip to content

Commit

Permalink
Merge 70d2a2a into 987853d
Browse files Browse the repository at this point in the history
  • Loading branch information
bpmason1 committed Aug 19, 2013
2 parents 987853d + 70d2a2a commit 7cdcb56
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 7 deletions.
10 changes: 7 additions & 3 deletions cork/cork.py
Expand Up @@ -84,7 +84,7 @@ def __init__(self, directory=None, backend=None, email_sender=None,
def login(self, username, password, success_redirect=None,
fail_redirect=None):
"""Check login credentials for an existing user.
Optionally redirect the user to another page (tipically /login)
Optionally redirect the user to another page (typically /login)
:param username: username
:type username: str.
Expand All @@ -104,6 +104,8 @@ def login(self, username, password, success_redirect=None,
self._store.users[username]['hash']):
# Setup session data
self._setup_cookie(username)
self._store.users[username]['last_login'] = str(datetime.utcnow())
self._store.save_users()
if success_redirect:
bottle.redirect(success_redirect)
return True
Expand Down Expand Up @@ -280,7 +282,8 @@ def create_user(self, username, role, password, email_addr=None,
'hash': self._hash(username, password),
'email_addr': email_addr,
'desc': description,
'creation_date': tstamp
'creation_date': tstamp,
'last_login': tstamp
}
self._store.save_users()

Expand Down Expand Up @@ -431,7 +434,8 @@ def validate_registration(self, registration_code):
'hash': data['hash'],
'email_addr': data['email_addr'],
'desc': data['desc'],
'creation_date': data['creation_date']
'creation_date': data['creation_date'],
'last_login': str(datetime.utcnow())
}
self._store.save_users()

Expand Down
4 changes: 3 additions & 1 deletion cork/sqlalchemy_backend.py
Expand Up @@ -153,7 +153,9 @@ def __init__(self, db_full_url, users_tname='users', roles_tname='roles',
Column('hash', String(256), nullable=False),
Column('email_addr', String(128)),
Column('desc', String(128)),
Column('creation_date', String(128), nullable=False)
Column('creation_date', String(128), nullable=False),
Column('last_login', String(128), nullable=False)

)
self._roles = Table(roles_tname, self._metadata,
Column('role', String(128), primary_key=True),
Expand Down
3 changes: 2 additions & 1 deletion cork/sqlite_backend.py
Expand Up @@ -165,7 +165,8 @@ def __init__(self, *args, **kwargs):
('hash', str),
('email_addr', str),
('desc', str),
('creation_date', str)
('creation_date', str),
('last_login', str)
)
super(UsersTable, self).__init__(*args, **kwargs)

Expand Down
5 changes: 3 additions & 2 deletions tests/test_functional_mysql_instance.py
Expand Up @@ -97,7 +97,8 @@ def setup_test_db():
"desc": "admin test user",
"role": "admin",
"hash": "cLzRnzbEwehP6ZzTREh3A4MXJyNo+TV8Hs4//EEbPbiDoo+dmNg22f2RJC282aSwgyWv/O6s3h42qrA6iHx8yfw=",
"creation_date": "2012-10-28 20:50:26.286723"
"creation_date": "2012-10-28 20:50:26.286723",
"last_login": "2012-10-28 20:50:26.286723"
})
assert len(mb.roles) == 4
assert len(mb.users) == 1
Expand Down Expand Up @@ -282,7 +283,7 @@ def test_iteritems_on_users():
for k, v in aaa._store.users.iteritems():
assert isinstance(k, str)
assert isinstance(v, dict)
expected_dkeys = set(('hash', 'email_addr', 'role', 'creation_date', 'desc'))
expected_dkeys = set(('hash', 'email_addr', 'role', 'creation_date', 'desc', 'last_login'))
dkeys = set(v.keys())

extra = dkeys - expected_dkeys
Expand Down

0 comments on commit 7cdcb56

Please sign in to comment.