You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by gc...@apache.org on 2022/08/19 21:03:28 UTC
[allura] 01/08: [#8451] record blocking users in audit log
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 7c1ec759982216cbb54b8d547758e5f02921d0db
Author: Dillon Walls <di...@slashdotmedia.com>
AuthorDate: Fri Aug 5 19:05:44 2022 +0000
[#8451] record blocking users in audit log
---
Allura/allura/app.py | 7 +++++--
Allura/allura/tests/functional/test_admin.py | 8 +++++++-
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/Allura/allura/app.py b/Allura/allura/app.py
index d40668e1b..16989d251 100644
--- a/Allura/allura/app.py
+++ b/Allura/allura/app.py
@@ -868,10 +868,13 @@ class DefaultAdminController(BaseController, AdminControllerMixin):
user = model.User.by_username(username)
if not user:
return dict(error='User "%s" not found' % username)
- ace = model.ACE.deny(
- model.ProjectRole.by_user(user, upsert=True)._id, perm, reason)
+ ace = model.ACE.deny(model.ProjectRole.by_user(user, upsert=True)._id, perm, reason)
if not model.ACL.contains(ace, self.app.acl):
self.app.acl.append(ace)
+ model.AuditLog.log('blocked user "{}" from {} for reason: "{}"'.format(
+ username,
+ self.app.config.options['mount_point'],
+ reason))
return dict(user_id=str(user._id), username=user.username, reason=reason)
return dict(error='User "%s" already blocked' % user.username)
diff --git a/Allura/allura/tests/functional/test_admin.py b/Allura/allura/tests/functional/test_admin.py
index 3a300e8c1..8237bf332 100644
--- a/Allura/allura/tests/functional/test_admin.py
+++ b/Allura/allura/tests/functional/test_admin.py
@@ -211,9 +211,15 @@ class TestProjectAdmin(TestController):
r.json, dict(user_id=str(user._id), username='test-admin', reason='Comment'))
user = M.User.by_username('test-admin')
admin_role = M.ProjectRole.by_user(user)
- app = M.Project.query.get(shortname='test').app_instance('wiki')
+ project = M.Project.query.get(shortname='test')
+ app = project.app_instance('wiki')
ace = M.ACL.contains(M.ACE.deny(admin_role._id, 'read'), app.acl)
assert_equals(ace.reason, 'Comment')
+ audit_log = M.AuditLog.query.find(
+ {'project_id': project._id}).sort('_id', -1).first()
+ assert 'blocked user "test-admin"' in audit_log.message
+ assert 'for reason: "Comment"' in audit_log.message
+
r = self.app.get('/admin/wiki/permissions')
assert '<input type="checkbox" name="user_id" value="%s">test-admin (Comment)' % user._id in r