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

kentontaylor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git


The following commit(s) were added to refs/heads/master by this push:
     new fb976605c Only activate+enable users exactly when needed
fb976605c is described below

commit fb976605c51c252074dcca8f9436bc30cc561886
Author: Dave Brondsema <[email protected]>
AuthorDate: Wed Jun 29 14:32:58 2022 -0400

    Only activate+enable users exactly when needed
---
 Allura/allura/controllers/site_admin.py           | 14 ++++++++++----
 Allura/allura/tests/functional/test_site_admin.py |  2 +-
 Allura/development.ini                            |  1 +
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/Allura/allura/controllers/site_admin.py 
b/Allura/allura/controllers/site_admin.py
index 64fe690e3..d7b2cf97a 100644
--- a/Allura/allura/controllers/site_admin.py
+++ b/Allura/allura/controllers/site_admin.py
@@ -705,15 +705,21 @@ class AdminUserDetailsController:
         if not user or user.is_anonymous():
             raise HTTPNotFound()
         if status == 'enable' and (user.disabled or user.pending):
-            AuthenticationProvider.get(request).activate_user(user, 
audit=False)
-            AuthenticationProvider.get(request).enable_user(user)
+            if user.pending:
+                AuthenticationProvider.get(request).activate_user(user,
+                                                                  audit=not 
user.disabled)  # avoid dupe audits
+            if user.disabled:
+                AuthenticationProvider.get(request).enable_user(user)
             flash('User enabled')
         elif status == 'disable' and not user.disabled:
             AuthenticationProvider.get(request).disable_user(user)
             flash('User disabled')
         elif status == 'pending':
-            AuthenticationProvider.get(request).deactivate_user(user)
-            AuthenticationProvider.get(request).enable_user(user, audit=False)
+            if user.disabled:
+                AuthenticationProvider.get(request).enable_user(user,
+                                                                
audit=user.pending)  # skip dupe audits
+            if not user.pending:
+                AuthenticationProvider.get(request).deactivate_user(user)
             flash('Set user status to pending')
         redirect(six.ensure_text(request.referer or '/'))
 
diff --git a/Allura/allura/tests/functional/test_site_admin.py 
b/Allura/allura/tests/functional/test_site_admin.py
index f7eb9d294..bcf3a5d12 100644
--- a/Allura/allura/tests/functional/test_site_admin.py
+++ b/Allura/allura/tests/functional/test_site_admin.py
@@ -580,7 +580,7 @@ class TestUserDetails(TestController):
         assert_equal(form['username'].value, 'test-user-3')
         assert_equal(form['status'].value, 'pending')
         form['status'].value = 'enable'
-        with td.audits('Account enabled', user=True):
+        with td.audits('Account activated', user=True):
             r = form.submit()
             assert_equal(M.AuditLog.query.find().count(), 1)
         assert_in('User enabled', self.webflash(r))
diff --git a/Allura/development.ini b/Allura/development.ini
index af474b5f6..12332a257 100644
--- a/Allura/development.ini
+++ b/Allura/development.ini
@@ -187,6 +187,7 @@ auth.ldap.password.salt_len = 16
 ; Set "autoregister" to false to require user to register in Allura to create
 ; the LDAP record and Allura record for the user.
 auth.ldap.autoregister = true
+; see also user_prefs_storage.ldap.* settings later
 
 auth.allow_user_registration = true
 auth.allow_user_to_disable_account = true

Reply via email to