Implement deletion information on user list

This commit is contained in:
Götz 2019-05-16 01:21:10 +02:00
parent 10cda0783a
commit 95a18884bb
3 changed files with 26 additions and 9 deletions

View File

@ -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

View File

@ -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})

View File

@ -36,11 +36,12 @@
<th scope="col">Nachname</th>
<th scope="col">Aktiv</th>
<th scope="col">Letzer Login</th>
<th scope="col">Löschdatum</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<tr class="{% if user.deleted_user %}bg-warning{% endif %}">
<td>
<a href="{{ url('realm-user-detail', args=[realm.id, user.user.dn]) }}">{{ user.user.username }}</a>
</td>
@ -57,6 +58,11 @@
<i class="far fa-times-circle text-danger"></i><span class="d-none">+</span>
{% endif %}
</td>
<td class="text-center">
{% if user.deleted_user %}
{{ user.deleted_user.deletion_date.strftime('%Y-%m-%d') }}
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>