diff --git a/src/account_manager/models.py b/src/account_manager/models.py index 33ccafd..ecadf45 100644 --- a/src/account_manager/models.py +++ b/src/account_manager/models.py @@ -12,6 +12,7 @@ from ldap import NO_SUCH_OBJECT, ALREADY_EXISTS from ldapdb.models import fields as ldap_fields from ldapdb.models.base import Model +from account_helper.models import DeletedUser from account_manager.utils.dbldap import get_filterstr from account_manager.utils.mail_utils import send_welcome_mail @@ -61,6 +62,23 @@ class LdapUser(Model): else: raise ALREADY_EXISTS('User already exists') + @staticmethod + def get_extended_user(ldap_user): + wrapper = {'user': ldap_user} + try: + wrapper['deleted_user'] = DeletedUser.objects.get(ldap_dn=ldap_user.dn) + except ObjectDoesNotExist: + wrapper['deleted_user'] = {} + try: + django_user = User.objects.get(username=ldap_user.username) + if django_user.last_login: + wrapper['active'] = True + else: + wrapper['active'] = False + except ObjectDoesNotExist: + wrapper['active'] = False + return wrapper + @staticmethod def password_reset(user, raw_password): LdapUser.base_dn = LdapUser.ROOT_DN diff --git a/src/account_manager/views/user_views.py b/src/account_manager/views/user_views.py index a20529f..126382d 100644 --- a/src/account_manager/views/user_views.py +++ b/src/account_manager/views/user_views.py @@ -47,14 +47,7 @@ def realm_user(request, realm_id): realm_users = LdapUser.objects.all() user_wrappers = [] for user in realm_users: - try: - django_user = User.objects.get(username=user.username) - if django_user.last_login: - user_wrappers.append({'user': user, 'active': True}) - else: - user_wrappers.append({'user': user, 'active': False}) - except ObjectDoesNotExist: - user_wrappers.append({'user': user, 'active': False}) + user_wrappers.append(LdapUser.get_extended_user(user)) return render(request, 'realm/realm_user.jinja2', {'realm': realm, 'realm_user': user_wrappers}) diff --git a/src/templates/macros/utils_macros.jinja2 b/src/templates/macros/utils_macros.jinja2 index ecc8a8f..305cab1 100644 --- a/src/templates/macros/utils_macros.jinja2 +++ b/src/templates/macros/utils_macros.jinja2 @@ -36,11 +36,12 @@