Fix #78; Fix empty django accounts
This commit is contained in:
parent
7734a0d36f
commit
09c422ed15
@ -2,6 +2,7 @@ from django import forms
|
|||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.contrib.auth.forms import PasswordResetForm
|
from django.contrib.auth.forms import PasswordResetForm
|
||||||
|
|
||||||
|
from account_manager.utils.django_user import update_dajngo_user
|
||||||
from .models import LdapUser, LdapGroup
|
from .models import LdapUser, LdapGroup
|
||||||
from django.forms import modelformset_factory
|
from django.forms import modelformset_factory
|
||||||
import logging
|
import logging
|
||||||
@ -83,6 +84,10 @@ class LdapPasswordResetForm(PasswordResetForm):
|
|||||||
that prevent inactive users and users with unusable passwords from
|
that prevent inactive users and users with unusable passwords from
|
||||||
resetting their password.
|
resetting their password.
|
||||||
"""
|
"""
|
||||||
|
LdapUser.base_dn = LdapUser.ROOT_DN
|
||||||
|
ldap_users = LdapUser.objects.filter(email=email)
|
||||||
|
for ldap_user in ldap_users:
|
||||||
|
update_dajngo_user(ldap_user)
|
||||||
logger.debug('Pasword reset get users')
|
logger.debug('Pasword reset get users')
|
||||||
active_users = UserModel._default_manager.filter(**{
|
active_users = UserModel._default_manager.filter(**{
|
||||||
'%s__iexact' % UserModel.get_email_field_name(): email,
|
'%s__iexact' % UserModel.get_email_field_name(): email,
|
||||||
|
|||||||
7
src/account_manager/utils/django_user.py
Normal file
7
src/account_manager/utils/django_user.py
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
|
||||||
|
def update_dajngo_user(ldap_user):
|
||||||
|
user, _ = User.objects.get_or_create(username=ldap_user.username)
|
||||||
|
user.email = ldap_user.email
|
||||||
|
user.save()
|
||||||
@ -18,6 +18,7 @@ from account_manager.forms import AddLDAPUserForm, UserDeleteListForm, UpdateLDA
|
|||||||
UserGroupListForm
|
UserGroupListForm
|
||||||
from account_manager.main_views import is_realm_admin
|
from account_manager.main_views import is_realm_admin
|
||||||
from account_manager.models import LdapUser, LdapGroup
|
from account_manager.models import LdapUser, LdapGroup
|
||||||
|
from account_manager.utils.django_user import update_dajngo_user
|
||||||
from account_manager.utils.mail_utils import send_welcome_mail, send_deletion_mail
|
from account_manager.utils.mail_utils import send_welcome_mail, send_deletion_mail
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
@ -175,6 +176,7 @@ def realm_user_resend_welcome_mail(request, realm_id, user_dn):
|
|||||||
realm = Realm.objects.get(id=realm_id)
|
realm = Realm.objects.get(id=realm_id)
|
||||||
LdapUser.base_dn = f'ou=people,{realm.ldap_base_dn}'
|
LdapUser.base_dn = f'ou=people,{realm.ldap_base_dn}'
|
||||||
ldap_user = LdapUser.objects.get(dn=user_dn)
|
ldap_user = LdapUser.objects.get(dn=user_dn)
|
||||||
|
update_dajngo_user(ldap_user)
|
||||||
current_site = get_current_site(request)
|
current_site = get_current_site(request)
|
||||||
protocol = 'http'
|
protocol = 'http'
|
||||||
if request.is_secure():
|
if request.is_secure():
|
||||||
|
|||||||
Reference in New Issue
Block a user