comparison pylons_app/controllers/settings.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 a08f610e545e
children
comparison
equal deleted inserted replaced
536:39203995f2c4 537:48be953851fc
26 from pylons import tmpl_context as c, request, url 26 from pylons import tmpl_context as c, request, url
27 from pylons.controllers.util import redirect 27 from pylons.controllers.util import redirect
28 from pylons.i18n.translation import _ 28 from pylons.i18n.translation import _
29 from pylons_app.lib.auth import LoginRequired, HasRepoPermissionAllDecorator 29 from pylons_app.lib.auth import LoginRequired, HasRepoPermissionAllDecorator
30 from pylons_app.lib.base import BaseController, render 30 from pylons_app.lib.base import BaseController, render
31 from pylons_app.lib.utils import invalidate_cache 31 from pylons_app.lib.utils import invalidate_cache, action_logger
32 from pylons_app.model.forms import RepoSettingsForm, RepoForkForm 32 from pylons_app.model.forms import RepoSettingsForm, RepoForkForm
33 from pylons_app.model.repo_model import RepoModel 33 from pylons_app.model.repo_model import RepoModel
34 import formencode 34 import formencode
35 import logging 35 import logging
36 import pylons_app.lib.helpers as h 36 import pylons_app.lib.helpers as h
77 _form = RepoSettingsForm(edit=True, old_data={'repo_name':repo_name})() 77 _form = RepoSettingsForm(edit=True, old_data={'repo_name':repo_name})()
78 try: 78 try:
79 form_result = _form.to_python(dict(request.POST)) 79 form_result = _form.to_python(dict(request.POST))
80 repo_model.update(repo_name, form_result) 80 repo_model.update(repo_name, form_result)
81 invalidate_cache('cached_repo_list') 81 invalidate_cache('cached_repo_list')
82 h.flash(_('Repository %s updated succesfully' % repo_name), 82 h.flash(_('Repository %s updated successfully' % repo_name),
83 category='success') 83 category='success')
84 changed_name = form_result['repo_name'] 84 changed_name = form_result['repo_name']
85 except formencode.Invalid as errors: 85 except formencode.Invalid as errors:
86 c.repo_info = repo_model.get(repo_name) 86 c.repo_info = repo_model.get(repo_name)
87 c.users_array = repo_model.get_users_js() 87 c.users_array = repo_model.get_users_js()
119 ' in order to rescan repositories') % repo_name, 119 ' in order to rescan repositories') % repo_name,
120 category='error') 120 category='error')
121 121
122 return redirect(url('hg_home')) 122 return redirect(url('hg_home'))
123 try: 123 try:
124 action_logger(self.hg_app_user, 'user_deleted_repo',
125 repo_name, '', self.sa)
124 repo_model.delete(repo) 126 repo_model.delete(repo)
125 invalidate_cache('cached_repo_list') 127 invalidate_cache('cached_repo_list')
126 h.flash(_('deleted repository %s') % repo_name, category='success') 128 h.flash(_('deleted repository %s') % repo_name, category='success')
127 except Exception: 129 except Exception:
128 h.flash(_('An error occured during deletion of %s') % repo_name, 130 h.flash(_('An error occurred during deletion of %s') % repo_name,
129 category='error') 131 category='error')
130 132
131 return redirect(url('hg_home')) 133 return redirect(url('hg_home'))
132 134
133 def fork(self, repo_name): 135 def fork(self, repo_name):
156 form_result.update({'repo_name':repo_name}) 158 form_result.update({'repo_name':repo_name})
157 repo_model.create_fork(form_result, c.hg_app_user) 159 repo_model.create_fork(form_result, c.hg_app_user)
158 h.flash(_('fork %s repository as %s task added') \ 160 h.flash(_('fork %s repository as %s task added') \
159 % (repo_name, form_result['fork_name']), 161 % (repo_name, form_result['fork_name']),
160 category='success') 162 category='success')
161 163 action_logger(self.hg_app_user, 'user_forked_repo',
164 repo_name, '', self.sa)
162 except formencode.Invalid as errors: 165 except formencode.Invalid as errors:
163 c.new_repo = errors.value['fork_name'] 166 c.new_repo = errors.value['fork_name']
164 r = render('settings/repo_fork.html') 167 r = render('settings/repo_fork.html')
165 168
166 return htmlfill.render( 169 return htmlfill.render(