mirror of
https://github.com/ansible/awx.git
synced 2026-01-29 07:14:43 -03:30
Merge pull request #9703 from tchellomello/double_ldap
Avoid double LDAP updates
This commit is contained in:
commit
cd33db037d
@ -352,6 +352,10 @@ def on_populate_user(sender, **kwargs):
|
|||||||
ldap_user = kwargs['ldap_user']
|
ldap_user = kwargs['ldap_user']
|
||||||
backend = ldap_user.backend
|
backend = ldap_user.backend
|
||||||
|
|
||||||
|
# Boolean to determine if we should force an user update
|
||||||
|
# to avoid duplicate SQL update statements
|
||||||
|
force_user_update = False
|
||||||
|
|
||||||
# Prefetch user's groups to prevent LDAP queries for each org/team when
|
# Prefetch user's groups to prevent LDAP queries for each org/team when
|
||||||
# checking membership.
|
# checking membership.
|
||||||
ldap_user._get_groups().get_group_dns()
|
ldap_user._get_groups().get_group_dns()
|
||||||
@ -362,6 +366,7 @@ def on_populate_user(sender, **kwargs):
|
|||||||
field_len = len(getattr(user, field))
|
field_len = len(getattr(user, field))
|
||||||
if field_len > max_len:
|
if field_len > max_len:
|
||||||
setattr(user, field, getattr(user, field)[:max_len])
|
setattr(user, field, getattr(user, field)[:max_len])
|
||||||
|
force_user_update = True
|
||||||
logger.warn('LDAP user {} has {} > max {} characters'.format(user.username, field, max_len))
|
logger.warn('LDAP user {} has {} > max {} characters'.format(user.username, field, max_len))
|
||||||
|
|
||||||
# Update organization membership based on group memberships.
|
# Update organization membership based on group memberships.
|
||||||
@ -391,8 +396,9 @@ def on_populate_user(sender, **kwargs):
|
|||||||
_update_m2m_from_groups(user, ldap_user, team.member_role.members, users_opts, remove)
|
_update_m2m_from_groups(user, ldap_user, team.member_role.members, users_opts, remove)
|
||||||
|
|
||||||
# Update user profile to store LDAP DN.
|
# Update user profile to store LDAP DN.
|
||||||
user.save()
|
if force_user_update:
|
||||||
profile = user.profile
|
user.save()
|
||||||
if profile.ldap_dn != ldap_user.dn:
|
profile = user.profile
|
||||||
profile.ldap_dn = ldap_user.dn
|
if profile.ldap_dn != ldap_user.dn:
|
||||||
profile.save()
|
profile.ldap_dn = ldap_user.dn
|
||||||
|
profile.save()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user