Mercurial > kallithea
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', |