comparison pylons_app/lib/auth.py @ 197:da59b7e07e3c

Changed import to base. Removed action logging from auth to simplehg. Splited loggin and invalidation action to private methods inside simplehg.
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 22 May 2010 19:29:50 +0200
parents 3d1dd13887f9
children 78e406a4c58e
comparison
equal deleted inserted replaced
196:568f95056716 197:da59b7e07e3c
2 from decorator import decorator 2 from decorator import decorator
3 from functools import wraps 3 from functools import wraps
4 from pylons import session, url 4 from pylons import session, url
5 from pylons.controllers.util import abort, redirect 5 from pylons.controllers.util import abort, redirect
6 from pylons_app.model import meta 6 from pylons_app.model import meta
7 from pylons_app.model.db import Users, UserLogs 7 from pylons_app.model.db import Users
8 from sqlalchemy.exc import OperationalError 8 from sqlalchemy.exc import OperationalError
9 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound 9 from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
10 import crypt 10 import crypt
11 import logging 11 import logging
12 log = logging.getLogger(__name__) 12 log = logging.getLogger(__name__)
29 29
30 if user: 30 if user:
31 if user.active: 31 if user.active:
32 if user.username == username and user.password == password_crypt: 32 if user.username == username and user.password == password_crypt:
33 log.info('user %s authenticated correctly', username) 33 log.info('user %s authenticated correctly', username)
34 if environ:
35 http_accept = environ.get('HTTP_ACCEPT')
36
37 if http_accept.startswith('application/mercurial') or \
38 environ['PATH_INFO'].find('raw-file') != -1:
39 repo = environ['PATH_INFO']
40 for qry in environ['QUERY_STRING'].split('&'):
41 if qry.startswith('cmd'):
42
43 try:
44 user_log = UserLogs()
45 user_log.user_id = user.user_id
46 user_log.action = qry
47 user_log.repository = repo
48 user_log.action_date = datetime.now()
49 sa.add(user_log)
50 sa.commit()
51 log.info('Adding user %s, action %s', username, qry)
52 except Exception as e:
53 sa.rollback()
54 log.error(e)
55
56 return True 34 return True
57 else: 35 else:
58 log.error('user %s is disabled', username) 36 log.error('user %s is disabled', username)
59 37
60 return False 38 return False