You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2015/02/06 21:44:23 UTC
[2/2] allura git commit: [#7821] ticket:720 More accurate audit logs
when changing user's status
[#7821] ticket:720 More accurate audit logs when changing user's status
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/09365c95
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/09365c95
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/09365c95
Branch: refs/heads/master
Commit: 09365c951ef223be5594163995df12942e7a4fd0
Parents: 1daebd1
Author: Igor Bondarenko <je...@gmail.com>
Authored: Thu Feb 5 11:54:08 2015 +0000
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Fri Feb 6 20:42:52 2015 +0000
----------------------------------------------------------------------
Allura/allura/controllers/site_admin.py | 4 +-
Allura/allura/lib/plugin.py | 44 +++++++++++---------
.../allura/tests/functional/test_site_admin.py | 28 +++++++++----
3 files changed, 47 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/09365c95/Allura/allura/controllers/site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/site_admin.py b/Allura/allura/controllers/site_admin.py
index f150370..a85680b 100644
--- a/Allura/allura/controllers/site_admin.py
+++ b/Allura/allura/controllers/site_admin.py
@@ -524,7 +524,7 @@ class AdminUserDetailsController(object):
if not user or user.is_anonymous():
raise HTTPNotFound()
if status == 'enable' and (user.disabled or user.pending):
- AuthenticationProvider.get(request).activate_user(user)
+ AuthenticationProvider.get(request).activate_user(user, audit=False)
AuthenticationProvider.get(request).enable_user(user)
flash('User enabled')
elif status == 'disable' and not user.disabled:
@@ -532,7 +532,7 @@ class AdminUserDetailsController(object):
flash('User disabled')
elif status == 'pending':
AuthenticationProvider.get(request).deactivate_user(user)
- AuthenticationProvider.get(request).enable_user(user)
+ AuthenticationProvider.get(request).enable_user(user, audit=False)
flash('Set user status to pending')
redirect(request.referer)
http://git-wip-us.apache.org/repos/asf/allura/blob/09365c95/Allura/allura/lib/plugin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 5cf1905..f3f90a8 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -185,19 +185,19 @@ class AuthenticationProvider(object):
'''
raise NotImplementedError, 'validate_password'
- def disable_user(self, user):
+ def disable_user(self, user, **kw):
'''Disable user account'''
raise NotImplementedError, 'disable_user'
- def enable_user(self, user):
+ def enable_user(self, user, **kw):
'''Enable user account'''
raise NotImplementedError, 'enable_user'
- def activate_user(self, user):
+ def activate_user(self, user, **kw):
'''Activate user after registration'''
raise NotImplementedError, 'activate_user'
- def deactivate_user(self, user):
+ def deactivate_user(self, user, **kw):
'''Deactivate user (== registation not confirmed)'''
raise NotImplementedError, 'deactivate_user'
@@ -355,25 +355,29 @@ class LocalAuthenticationProvider(AuthenticationProvider):
raise exc.HTTPUnauthorized()
return user
- def disable_user(self, user):
+ def disable_user(self, user, **kw):
user.disabled = True
session(user).flush(user)
- h.auditlog_user(u'Account disabled', user=user)
+ if kw.get('audit', True):
+ h.auditlog_user(u'Account disabled', user=user)
- def enable_user(self, user):
+ def enable_user(self, user, **kw):
user.disabled = False
session(user).flush(user)
- h.auditlog_user(u'Account enabled', user=user)
+ if kw.get('audit', True):
+ h.auditlog_user(u'Account enabled', user=user)
- def activate_user(self, user):
+ def activate_user(self, user, **kw):
user.pending = False
session(user).flush(user)
- h.auditlog_user('Account activated', user=user)
+ if kw.get('audit', True):
+ h.auditlog_user('Account activated', user=user)
- def deactivate_user(self, user):
+ def deactivate_user(self, user, **kw):
user.pending = True
session(user).flush(user)
- h.auditlog_user('Account deactivated', user=user)
+ if kw.get('audit', True):
+ h.auditlog_user('Account changed to pending', user=user)
def validate_password(self, user, password):
return self._validate_password(user, password)
@@ -624,17 +628,17 @@ class LdapAuthenticationProvider(AuthenticationProvider):
def update_notifications(self, user):
return LocalAuthenticationProvider(None).update_notifications(user)
- def disable_user(self, user):
- return LocalAuthenticationProvider(None).disable_user(user)
+ def disable_user(self, user, **kw):
+ return LocalAuthenticationProvider(None).disable_user(user, **kw)
- def enable_user(self, user):
- return LocalAuthenticationProvider(None).enable_user(user)
+ def enable_user(self, user, **kw):
+ return LocalAuthenticationProvider(None).enable_user(user, **kw)
- def activate_user(self, user):
- return LocalAuthenticationProvider(None).activate_user(user)
+ def activate_user(self, user, **kw):
+ return LocalAuthenticationProvider(None).activate_user(user, **kw)
- def deactivate_user(self, user):
- return LocalAuthenticationProvider(None).deactivate_user(user)
+ def deactivate_user(self, user, **kw):
+ return LocalAuthenticationProvider(None).deactivate_user(user, **kw)
def get_last_password_updated(self, user):
return LocalAuthenticationProvider(None).get_last_password_updated(user)
http://git-wip-us.apache.org/repos/asf/allura/blob/09365c95/Allura/allura/tests/functional/test_site_admin.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_site_admin.py b/Allura/allura/tests/functional/test_site_admin.py
index 17c23f3..e89b9fd 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -356,7 +356,9 @@ class TestUserDetails(TestController):
assert_equal(form['username'].value, 'test-user-3')
assert_equal(form['status'].value, 'enable')
form['status'].value = 'disable'
- r = form.submit()
+ with td.audits('Account disabled', user=True):
+ r = form.submit()
+ assert_equal(M.AuditLog.query.find().count(), 1)
assert_in(u'User disabled', self.webflash(r))
assert_equal(M.User.by_username('test-user-3').disabled, True)
assert_equal(M.User.by_username('test-user-3').pending, False)
@@ -373,7 +375,9 @@ class TestUserDetails(TestController):
assert_equal(form['username'].value, 'test-user-3')
assert_equal(form['status'].value, 'pending')
form['status'].value = 'disable'
- r = form.submit()
+ with td.audits('Account disabled', user=True):
+ r = form.submit()
+ assert_equal(M.AuditLog.query.find().count(), 1)
assert_in(u'User disabled', self.webflash(r))
assert_equal(M.User.by_username('test-user-3').disabled, True)
assert_equal(M.User.by_username('test-user-3').pending, True)
@@ -390,7 +394,9 @@ class TestUserDetails(TestController):
assert_equal(form['username'].value, 'test-user-3')
assert_equal(form['status'].value, 'disable')
form['status'].value = 'enable'
- r = form.submit()
+ with td.audits('Account enabled', user=True):
+ r = form.submit()
+ assert_equal(M.AuditLog.query.find().count(), 1)
assert_in(u'User enabled', self.webflash(r))
assert_equal(M.User.by_username('test-user-3').disabled, False)
assert_equal(M.User.by_username('test-user-3').pending, False)
@@ -407,7 +413,9 @@ class TestUserDetails(TestController):
assert_equal(form['username'].value, 'test-user-3')
assert_equal(form['status'].value, 'pending')
form['status'].value = 'enable'
- r = form.submit()
+ with td.audits('Account enabled', user=True):
+ r = form.submit()
+ assert_equal(M.AuditLog.query.find().count(), 1)
assert_in(u'User enabled', self.webflash(r))
assert_equal(M.User.by_username('test-user-3').disabled, False)
assert_equal(M.User.by_username('test-user-3').pending, False)
@@ -424,7 +432,9 @@ class TestUserDetails(TestController):
assert_equal(form['username'].value, 'test-user-3')
assert_equal(form['status'].value, 'disable')
form['status'].value = 'enable'
- r = form.submit()
+ with td.audits('Account enabled', user=True):
+ r = form.submit()
+ assert_equal(M.AuditLog.query.find().count(), 1)
assert_in(u'User enabled', self.webflash(r))
assert_equal(M.User.by_username('test-user-3').disabled, False)
assert_equal(M.User.by_username('test-user-3').pending, False)
@@ -441,7 +451,9 @@ class TestUserDetails(TestController):
assert_equal(form['username'].value, 'test-user-3')
assert_equal(form['status'].value, 'disable')
form['status'].value = 'pending'
- r = form.submit()
+ with td.audits('Account changed to pending', user=True):
+ r = form.submit()
+ assert_equal(M.AuditLog.query.find().count(), 1)
assert_in(u'Set user status to pending', self.webflash(r))
assert_equal(M.User.by_username('test-user-3').disabled, False)
assert_equal(M.User.by_username('test-user-3').pending, True)
@@ -458,7 +470,9 @@ class TestUserDetails(TestController):
assert_equal(form['username'].value, 'test-user-3')
assert_equal(form['status'].value, 'enable')
form['status'].value = 'pending'
- r = form.submit()
+ with td.audits('Account changed to pending', user=True):
+ r = form.submit()
+ assert_equal(M.AuditLog.query.find().count(), 1)
assert_in(u'Set user status to pending', self.webflash(r))
assert_equal(M.User.by_username('test-user-3').disabled, False)
assert_equal(M.User.by_username('test-user-3').pending, True)