You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by di...@apache.org on 2022/08/31 21:01:23 UTC
[allura] 02/02: [#8458] audit log - discussion - log forum admin actions to auditlog
This is an automated email from the ASF dual-hosted git repository.
dill0wn pushed a commit to branch dw/8458
in repository https://gitbox.apache.org/repos/asf/allura.git
commit 2f0e5141d78142b6a28308d2a9f58086b583b9a1
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Wed Aug 31 21:01:15 2022 +0000
[#8458] audit log - discussion - log forum admin actions to auditlog
---
ForgeDiscussion/forgediscussion/forum_main.py | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/ForgeDiscussion/forgediscussion/forum_main.py b/ForgeDiscussion/forgediscussion/forum_main.py
index 262b5a196..db84bf62a 100644
--- a/ForgeDiscussion/forgediscussion/forum_main.py
+++ b/ForgeDiscussion/forgediscussion/forum_main.py
@@ -315,6 +315,15 @@ class ForumAdminController(DefaultAdminController):
def update_forums(self, forum=None, **kw):
if forum is None:
forum = []
+
+ mount_point = self.app.config.options['mount_point']
+
+ def set_value(forum, name, val):
+ if getattr(forum, name, None) != val:
+ M.AuditLog.log('{}: {} - set option "{}" {} => {}'.format(
+ mount_point, forum.name, name, getattr(forum, name, None), val))
+ setattr(forum, name, val)
+
for f in forum:
forum = DM.Forum.query.get(_id=ObjectId(str(f['id'])))
if f.get('delete'):
@@ -331,23 +340,23 @@ class ForumAdminController(DefaultAdminController):
if '.' in f['shortname'] or '/' in f['shortname'] or ' ' in f['shortname']:
flash('Shortname cannot contain space . or /', 'error')
redirect('.')
- forum.name = f['name']
- forum.shortname = f['shortname']
- forum.description = f['description']
- forum.monitoring_email = f['monitoring_email']
+ set_value(forum, 'name', f['name'])
+ set_value(forum, 'shortname', f['shortname'])
+ set_value(forum, 'description', f['description'])
+ set_value(forum, 'monitoring_email', f['monitoring_email'])
if 'members_only' in f:
if 'anon_posts' in f:
flash(
'You cannot have anonymous posts in a members only forum.', 'warning')
- forum.anon_posts = False
+ set_value(forum, 'anon_posts', False)
del f['anon_posts']
- forum.members_only = True
+ set_value(forum, 'members_only', True)
else:
- forum.members_only = False
+ set_value(forum, 'members_only', False)
if 'anon_posts' in f:
- forum.anon_posts = True
+ set_value(forum, 'anon_posts', True)
else:
- forum.anon_posts = False
+ set_value(forum, 'anon_posts', False)
role_anon = M.ProjectRole.anonymous()._id
if forum.members_only:
role_developer = M.ProjectRole.by_name('Developer')._id