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)