mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Optimize user-add by caching ldap2.has_upg()
The method has_upg returns if user private groups are enabled or disabled. has_upg() is called three times by user-add. The setting is now cached on the request local variable context to speed up batch processing of user imports. context is cleared after every request. Related: https://pagure.io/freeipa/issue/8134 Signed-off-by: Christian Heimes <cheimes@redhat.com> Reviewed-By: Rob Crittenden <rcritten@redhat.com>
This commit is contained in:
@@ -250,6 +250,10 @@ class ldap2(CrudBackend, LDAPClient):
|
|||||||
If the UPG Definition or its originfilter is not readable,
|
If the UPG Definition or its originfilter is not readable,
|
||||||
an ACI error is raised.
|
an ACI error is raised.
|
||||||
"""
|
"""
|
||||||
|
try:
|
||||||
|
return context.has_upg
|
||||||
|
except AttributeError:
|
||||||
|
pass
|
||||||
|
|
||||||
upg_dn = DN(('cn', 'UPG Definition'), ('cn', 'Definitions'), ('cn', 'Managed Entries'),
|
upg_dn = DN(('cn', 'UPG Definition'), ('cn', 'Definitions'), ('cn', 'Managed Entries'),
|
||||||
('cn', 'etc'), self.api.env.basedn)
|
('cn', 'etc'), self.api.env.basedn)
|
||||||
@@ -266,7 +270,10 @@ class ldap2(CrudBackend, LDAPClient):
|
|||||||
'Could not read UPG Definition originfilter. '
|
'Could not read UPG Definition originfilter. '
|
||||||
'Check your permissions.'))
|
'Check your permissions.'))
|
||||||
org_filter = upg_entries[0].single_value['originfilter']
|
org_filter = upg_entries[0].single_value['originfilter']
|
||||||
return '(objectclass=disable)' not in org_filter
|
|
||||||
|
has_upg = '(objectclass=disable)' not in org_filter
|
||||||
|
context.has_upg = has_upg
|
||||||
|
return has_upg
|
||||||
|
|
||||||
def get_effective_rights(self, dn, attrs_list):
|
def get_effective_rights(self, dn, attrs_list):
|
||||||
"""Returns the rights the currently bound user has for the given DN.
|
"""Returns the rights the currently bound user has for the given DN.
|
||||||
|
|||||||
Reference in New Issue
Block a user