Mercurial > kallithea
diff rhodecode/lib/utils.py @ 735:dbec976d9975 beta
added action loggers to following repositories,
refactoring of repo_model get functions
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 22 Nov 2010 15:49:04 +0100 |
parents | a9bc513a1fe3 |
children | 01be209b9828 |
line wrap: on
line diff
--- a/rhodecode/lib/utils.py Mon Nov 22 03:57:47 2010 +0100 +++ b/rhodecode/lib/utils.py Mon Nov 22 15:49:04 2010 +0100 @@ -70,13 +70,14 @@ def action_logger(user, action, repo, ipaddr='', sa=None): """ - Action logger for various action made by users + Action logger for various actions made by users - :param user: user that made this action, can be a string unique username or + :param user: user that made this action, can be a unique username string or object containing user_id attribute :param action: action to log, should be on of predefined unique actions for easy translations - :param repo: repository that action was made on + :param repo: string name of repository or object containing repo_id, + that action was made on :param ipaddr: optional ip address from what the action was made :param sa: optional sqlalchemy session @@ -86,20 +87,22 @@ sa = meta.Session() try: + um = UserModel() if hasattr(user, 'user_id'): user_obj = user elif isinstance(user, basestring): - user_obj = UserModel().get_by_username(user, cache=False) + user_obj = um.get_by_username(user, cache=False) else: raise Exception('You have to provide user object or username') - if repo: + rm = RepoModel() + if hasattr(repo, 'repo_id'): + repo_obj = rm.get(repo.repo_id, cache=False) + repo_name = repo_obj.repo_name + elif isinstance(repo, basestring): repo_name = repo.lstrip('/') - - repository = RepoModel().get(repo_name, cache=False) - if not repository: - raise Exception('You have to provide valid repository') + repo_obj = rm.get_by_repo_name(repo_name, cache=False) else: raise Exception('You have to provide repository to action logger') @@ -107,8 +110,10 @@ user_log = UserLog() user_log.user_id = user_obj.user_id user_log.action = action + + user_log.repository_id = repo_obj.repo_id user_log.repository_name = repo_name - user_log.repository = repository + user_log.action_date = datetime.datetime.now() user_log.user_ip = ipaddr sa.add(user_log) @@ -352,7 +357,7 @@ user = sa.query(User).filter(User.admin == True).first() for name, repo in initial_repo_list.items(): - if not rm.get(name, cache=False): + if not rm.get_by_repo_name(name, cache=False): log.info('repository %s not found creating default', name) form_data = {