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/05 20:53:49 UTC

[allura] branch dw/8451 updated (909e1cd6e -> 76afd5b86)

This is an automated email from the ASF dual-hosted git repository.

dill0wn pushed a change to branch dw/8451
in repository https://gitbox.apache.org/repos/asf/allura.git


    from 909e1cd6e [#8451] record project creation in audit log
     new f198e4888 fixup! [#8451] record project creation in audit log
     new 76afd5b86 [#8451] record forum add/delete in audit log

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Allura/allura/lib/plugin.py                                       | 5 ++---
 ForgeDiscussion/forgediscussion/forum_main.py                     | 6 ++++++
 .../forgediscussion/tests/functional/test_forum_admin.py          | 8 ++++++++
 ForgeDiscussion/forgediscussion/utils.py                          | 4 +++-
 4 files changed, 19 insertions(+), 4 deletions(-)


[allura] 01/02: fixup! [#8451] record project creation in audit log

Posted by di...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dill0wn pushed a commit to branch dw/8451
in repository https://gitbox.apache.org/repos/asf/allura.git

commit f198e488888708bf941e09215406ae5e71d0007f
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Fri Aug 5 20:46:35 2022 +0000

    fixup! [#8451] record project creation in audit log
---
 Allura/allura/lib/plugin.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index ac7cd42d5..30bf65286 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -1051,9 +1051,8 @@ class ProjectRegistrationProvider:
                 'private', False),
             apps=apps or [] if 'tools' in project_template else None)
 
-        with h.push_config(c, project=p, user=user):
-            M.AuditLog.log('Project Created!')
-        h.auditlog_user(f'Created project "{project_name}"', user=user)
+        M.AuditLog(project_id=p._id, user_id=user._id, message='Project Created!',
+                   url=neighborhood.url_prefix + 'add_project')
 
         # Setup defaults from neighborhood project template if applicable
         offset = p.next_mount_point(include_hidden=True)


[allura] 02/02: [#8451] record forum add/delete in audit log

Posted by di...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dill0wn pushed a commit to branch dw/8451
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 76afd5b8632aa623036f69daf5d4e57b55863232
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Fri Aug 5 20:53:41 2022 +0000

    [#8451] record forum add/delete in audit log
---
 ForgeDiscussion/forgediscussion/forum_main.py                     | 6 ++++++
 .../forgediscussion/tests/functional/test_forum_admin.py          | 8 ++++++++
 ForgeDiscussion/forgediscussion/utils.py                          | 4 +++-
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/ForgeDiscussion/forgediscussion/forum_main.py b/ForgeDiscussion/forgediscussion/forum_main.py
index fca6fc899..262b5a196 100644
--- a/ForgeDiscussion/forgediscussion/forum_main.py
+++ b/ForgeDiscussion/forgediscussion/forum_main.py
@@ -319,8 +319,14 @@ class ForumAdminController(DefaultAdminController):
             forum = DM.Forum.query.get(_id=ObjectId(str(f['id'])))
             if f.get('delete'):
                 forum.deleted = True
+                M.AuditLog.log('deleted forum "{}" from {}'.format(
+                    forum.name,
+                    self.app.config.options['mount_point']))
             elif f.get('undelete'):
                 forum.deleted = False
+                M.AuditLog.log('undeleted forum "{}" from {}'.format(
+                    forum.name,
+                    self.app.config.options['mount_point']))
             else:
                 if '.' in f['shortname'] or '/' in f['shortname'] or ' ' in f['shortname']:
                     flash('Shortname cannot contain space . or /', 'error')
diff --git a/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py b/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py
index 6da55ea5c..ca14d1c37 100644
--- a/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py
+++ b/ForgeDiscussion/forgediscussion/tests/functional/test_forum_admin.py
@@ -36,6 +36,7 @@ class TestForumAdmin(TestController):
         self.app.get('/discussion/')
 
     def test_forum_CRUD(self):
+        project = M.Project.query.get(shortname='test')
         r = self.app.get('/admin/discussion/forums')
         form = r.forms['add-forum']
         form['add_forum.shortname'] = 'testforum'
@@ -51,6 +52,8 @@ class TestForumAdmin(TestController):
                                   'forum-0.shortname': 'NewTestForum',
                                   'forum-0.description': 'My desc',
                                   'forum-0.monitoring_email': ''})
+        audit_log = M.AuditLog.query.find({'project_id': project._id}).sort('_id', -1).first()
+        assert 'created forum "Test Forum"' in audit_log.message
         r = self.app.get('/admin/discussion/forums')
         assert 'New Test Forum' in r
         assert 'My desc' in r
@@ -129,6 +132,7 @@ class TestForumAdmin(TestController):
         assert 'error' in r
 
     def test_delete_undelete(self):
+        project = M.Project.query.get(shortname='test')
         r = self.app.get('/admin/discussion/forums')
         form = r.forms['add-forum']
         form['add_forum.shortname'] = 'testforum'
@@ -148,6 +152,8 @@ class TestForumAdmin(TestController):
         r = self.app.get('/admin/discussion/forums')
         soup_form = r.html.find('form', action='update_forums')
         assert len(soup_form.findAll('input', {'value': 'Delete'})) == 1
+        audit_log = M.AuditLog.query.find({'project_id': project._id}).sort('_id', -1).first()
+        assert 'deleted forum "Test Forum"' in audit_log.message
         r = self.app.post('/admin/discussion/update_forums',
                           params={'forum-0.undelete': 'on',
                                   'forum-0.id': str(frm._id),
@@ -156,6 +162,8 @@ class TestForumAdmin(TestController):
         r = self.app.get('/admin/discussion/forums')
         soup_form = r.html.find('form', action='update_forums')
         assert len(soup_form.findAll('input', {'value': 'Delete'})) == 2
+        audit_log = M.AuditLog.query.find({'project_id': project._id}).sort('_id', -1).first()
+        assert 'undeleted forum "Test Forum"' in audit_log.message
 
     def test_members_only(self):
         # make a forum anyone can see
diff --git a/ForgeDiscussion/forgediscussion/utils.py b/ForgeDiscussion/forgediscussion/utils.py
index 1169caf9f..f830ae9f5 100644
--- a/ForgeDiscussion/forgediscussion/utils.py
+++ b/ForgeDiscussion/forgediscussion/utils.py
@@ -20,7 +20,7 @@
 from bson import ObjectId
 from tg import flash
 from allura.lib import helpers as h
-from allura.model import ProjectRole, ACE, ALL_PERMISSIONS, DENY_ALL
+from allura.model import ProjectRole, ACE, ALL_PERMISSIONS, DENY_ALL, AuditLog
 from forgediscussion import model as DM
 
 
@@ -43,6 +43,8 @@ def create_forum(app, new_forum):
                  anon_posts=new_forum.get('anon_posts', False),
                  monitoring_email=new_forum.get('monitoring_email', None),
                  )
+    AuditLog.log('created forum "{}" for {}'.format(
+        f.name, app.config.options['mount_point']))
     if f.members_only and f.anon_posts:
         flash('You cannot have anonymous posts in a members only forum.',
               'warning')