From 9e4b1152d560fea32d0dd92175b6642ee12a8162 Mon Sep 17 00:00:00 2001 From: Cyril VINH-TUNG Date: Wed, 22 Jul 2026 12:39:50 -1000 Subject: [PATCH] [FIX] users_ldap_populate: do not deactivate portal users --- users_ldap_populate/models/users_ldap.py | 4 +++- users_ldap_populate/tests/test_users_ldap_populate.py | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/users_ldap_populate/models/users_ldap.py b/users_ldap_populate/models/users_ldap.py index 14884d7686..e0bdcd6971 100644 --- a/users_ldap_populate/models/users_ldap.py +++ b/users_ldap_populate/models/users_ldap.py @@ -139,7 +139,9 @@ def do_deactivate_unknown_users(self, known_user_ids): users = ( self.env["res.users"] .sudo() - .search([("id", "not in", known_user_ids)], order="login") + .search( + [("id", "not in", known_user_ids), ("share", "=", False)], order="login" + ) ) ldap_confs = self._get_ldap_dicts() for unknown_user in users: diff --git a/users_ldap_populate/tests/test_users_ldap_populate.py b/users_ldap_populate/tests/test_users_ldap_populate.py index 79bde88a48..cdb9299dcc 100644 --- a/users_ldap_populate/tests/test_users_ldap_populate.py +++ b/users_ldap_populate/tests/test_users_ldap_populate.py @@ -66,6 +66,9 @@ def get_fake_ldap(self): class TestUsersLdapPopulate(TransactionCase): def test_users_ldap_populate(self): previous_users_count = self.env["res.users"].search_count([]) + previous_portal_users_count = self.env["res.users"].search_count( + [("share", "=", True)] + ) with patch_ldap( self, [ @@ -82,10 +85,12 @@ def test_users_ldap_populate(self): ) self.assertEqual(ldap_populate_wizard.users_created, 1) self.assertEqual( - ldap_populate_wizard.users_deactivated, previous_users_count - 1 - ) # Admin is not deactivated + ldap_populate_wizard.users_deactivated, + previous_users_count - 1 - previous_portal_users_count, + ) # Admin is not deactivated, portal users are not deactivated self.assertFalse(self.env.ref("base.user_demo").active) self.assertTrue(self.env.ref("base.user_admin").active) + self.assertTrue(self.env.ref("base.public_user").active) self.assertTrue(self.env["res.users"].search([("login", "=", "fake")])) def test_users_ldap_populate_reactivate(self):