This is an automated email from the ASF dual-hosted git repository. gcruz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/allura.git
commit 24a300e1fa535e5ea63bd081a7dd5f72b546cff8 Author: Dillon Walls <[email protected]> AuthorDate: Thu Sep 1 15:11:25 2022 +0000 [#8458] auditlog: record screenshots add/update/delete/reorder --- Allura/allura/ext/admin/admin_main.py | 19 ++++++++++++++----- Allura/allura/tests/functional/test_admin.py | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Allura/allura/ext/admin/admin_main.py b/Allura/allura/ext/admin/admin_main.py index f3466d943..d40d9b9b0 100644 --- a/Allura/allura/ext/admin/admin_main.py +++ b/Allura/allura/ext/admin/admin_main.py @@ -489,7 +489,8 @@ class ProjectAdminController(BaseController): screenshot.filename = re.sub(r'(.*)\.(.*)', r'\1-' + str(randint(1000,9999)) + r'.\2', screenshot.filename) # if filename already exists append a random number break - M.AuditLog.log('add screenshot') + M.AuditLog.log('screenshots: added screenshot {} with caption "{}"'.format( + screenshot.filename, caption)) sort = 1 + max([ss.sort or 0 for ss in screenshots] or [0]) M.ProjectFile.save_image( screenshot.filename, screenshot.file, content_type=screenshot.type, @@ -515,9 +516,13 @@ class ProjectAdminController(BaseController): ``kw`` is a mapping of (screenshot._id, sort_order) pairs. """ - for s in c.project.get_screenshots(): + screenshots = c.project.get_screenshots() + for s in screenshots: if str(s._id) in kw: s.sort = int(kw[str(s._id)]) + M.AuditLog.log('screenshots: reordered screenshots {}'.format( + ", ".join(s.filename for s in sorted(screenshots, key=lambda s: s.sort)) + )) g.post_event('project_updated') @expose() @@ -525,7 +530,8 @@ class ProjectAdminController(BaseController): def delete_screenshot(self, id=None, **kw): require_access(c.project, 'update') if id is not None and id != '': - M.AuditLog.log('remove screenshot') + screenshot = M.ProjectFile.query.get(project_id=c.project._id, _id=ObjectId(id)) + M.AuditLog.log('screenshots: deleted screenshot {}'.format(screenshot.filename)) M.ProjectFile.query.remove( dict(project_id=c.project._id, _id=ObjectId(id))) g.post_event('project_updated') @@ -536,8 +542,11 @@ class ProjectAdminController(BaseController): def edit_screenshot(self, id=None, caption=None, **kw): require_access(c.project, 'update') if id is not None and id != '': - M.ProjectFile.query.get( - project_id=c.project._id, _id=ObjectId(id)).caption = caption + screenshot = M.ProjectFile.query.get( + project_id=c.project._id, _id=ObjectId(id)) + screenshot.caption = caption + M.AuditLog.log('screenshots: updated screenshot {} with new caption "{}"'.format( + screenshot.filename, screenshot.caption)) g.post_event('project_updated') redirect('screenshots') diff --git a/Allura/allura/tests/functional/test_admin.py b/Allura/allura/tests/functional/test_admin.py index 8237bf332..96138ffea 100644 --- a/Allura/allura/tests/functional/test_admin.py +++ b/Allura/allura/tests/functional/test_admin.py @@ -405,7 +405,7 @@ class TestProjectAdmin(TestController): upload = ('screenshot', file_name, file_data) self.app.get('/admin/') - with audits('add screenshot'): + with audits('screenshots: added screenshot {}'.format(file_name)): self.app.post('/admin/add_screenshot', params=dict( caption='test me'), upload_files=[upload])
