comparison pylons_app/lib/utils.py @ 537:48be953851fc

extended user logs to create/delete/fork repositories for auditing some spelling corrections
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 02 Oct 2010 02:56:39 +0200
parents 39203995f2c4
children d8778cde98f0
comparison
equal deleted inserted replaced
536:39203995f2c4 537:48be953851fc
24 """ 24 """
25 from beaker.cache import cache_region 25 from beaker.cache import cache_region
26 from mercurial import ui, config, hg 26 from mercurial import ui, config, hg
27 from mercurial.error import RepoError 27 from mercurial.error import RepoError
28 from pylons_app.model import meta 28 from pylons_app.model import meta
29 from pylons_app.model.db import Repository, User, HgAppUi, HgAppSettings,UserLog 29 from pylons_app.model.db import Repository, User, HgAppUi, HgAppSettings, UserLog
30 from vcs.backends.base import BaseChangeset 30 from vcs.backends.base import BaseChangeset
31 from vcs.utils.lazy import LazyProperty 31 from vcs.utils.lazy import LazyProperty
32 import logging 32 import logging
33 import datetime 33 import datetime
34 import os 34 import os
55 """ 55 """
56 56
57 if not sa: 57 if not sa:
58 sa = meta.Session 58 sa = meta.Session
59 59
60 60 try:
61 if hasattr(user, 'user_id'): 61 if hasattr(user, 'user_id'):
62 user_id = user.user_id 62 user_id = user.user_id
63 elif isinstance(user, basestring): 63 elif isinstance(user, basestring):
64 64 user_id = sa.query(User).filter(User.username == user).one()
65 user_id = sa.Query(User).filter(User.username == user).one() 65 else:
66 else: 66 raise Exception('You have to provide user object or username')
67 raise Exception('You have to provide user object or username') 67
68 68 repo_name = repo.lstrip('/')
69 try:
70 user_log = UserLog() 69 user_log = UserLog()
71 user_log.user_id = user_id 70 user_log.user_id = user_id
72 user_log.action = action 71 user_log.action = action
72 user_log.repository_name = repo_name
73 user_log.repository = sa.query(Repository)\ 73 user_log.repository = sa.query(Repository)\
74 .filter(Repository.repo_name==repo.lstrip('/')).one() 74 .filter(Repository.repo_name == repo_name).one()
75 user_log.action_date = datetime.datetime.now() 75 user_log.action_date = datetime.datetime.now()
76 user_log.user_ip = ipaddr 76 user_log.user_ip = ipaddr
77 sa.add(user_log) 77 sa.add(user_log)
78 sa.commit() 78 sa.commit()
79 log.info('Adding user %s, action %s on %s', 79 log.info('Adding user %s, action %s on %s',