Add deletion information on user view, Implement deltion cancel operation

This commit is contained in:
Götz 2019-05-16 01:48:35 +02:00
parent 95a18884bb
commit 0dc9ee0991
3 changed files with 58 additions and 17 deletions

View File

@ -53,6 +53,8 @@ urlpatterns = [
name='realm-multiple-user-delete'),
path('realm/<int:realm_id>/user/delete/multiple/inactive/', user_views.realm_multiple_user_delete_inactive,
name='realm-multiple-user-delete-inactive'),
path('realm/<int:realm_id>/user/delete/<str:user_dn>/cancel/', user_views.realm_user_delete_cancel,
name='realm-user-delete-cancel'),
# Realm Group
path('realm/<int:realm_id>/groups/', group_views.realm_groups, name='realm-group-list'),

View File

@ -60,8 +60,9 @@ def realm_user_detail(request, realm_id, user_dn):
LdapGroup.base_dn = LdapGroup.ROOT_DN
user = LdapUser.objects.get(dn=user_dn)
user_wrapper = LdapUser.get_extended_user(user)
groups = LdapGroup.objects.filter(members=user.dn)
return render(request, 'user/realm_user_detail.jinja2', {'user': user, 'groups': groups, 'realm': realm})
return render(request, 'user/realm_user_detail.jinja2', {'user': user_wrapper, 'groups': groups, 'realm': realm})
@login_required
@ -217,6 +218,22 @@ def realm_user_delete_confirm(request, realm_id, user_dn):
{'realm': realm, 'user': ldap_user, 'deletion_link': deletion_link, 'cancel_link': cancel_link})
@login_required
@is_realm_admin
@protect_cross_realm_user_access
def realm_user_delete_cancel(request, realm_id, user_dn):
realm = Realm.objects.get(id=realm_id)
LdapUser.base_dn = f'ou=people,{realm.ldap_base_dn}'
ldap_user = LdapUser.objects.get(dn=user_dn)
try:
deleted_user = DeletedUser.objects.get(ldap_dn=ldap_user.dn)
deleted_user.delete()
except ObjectDoesNotExist as err:
pass
return redirect('realm-user-detail', realm_id, user_dn)
@login_required
@is_realm_admin
def realm_multiple_user_delete(request, realm_id):

View File

@ -2,25 +2,38 @@
{% import 'macros/form_macros.jinja2' as mform %}
{% block detail_content %}
<h3>{{ user.username }}</h3>
{% if user.user %}
{% if user.deleted_user.deletion_date %}
<h3 class="text-danger">{{ user.user.username }}
<small>Nutzer wird vorraussichtlich am {{ user.deleted_user.deletion_date.strftime('%d.%m.%Y') }}
gelöscht
</small>
</h3>
{% else %}
<h3>{{ user.user.username }}</h3>
{% endif %}
{% else %}
<h3>{{ user.username }}</h3>
{% endif %}
{% if not form %}
<ul class="list-group list-group-flush w-100">
<li class="list-group-item">Ldap Domain: {{ user.dn }}</li>
<li class="list-group-item">Ldap Domain: {{ user.user.dn }}</li>
<li class="list-group-item"> Anzeigename:
{% if user.display_name %}
{{ user.display_name }}
{% if user.user.display_name %}
{{ user.user.display_name }}
{% else %}
<span class="text-warning"> Noch nicht generiert </span>
{% endif %}
</li>
<li class="list-group-item">Vorname: {{ user.first_name }}</li>
<li class="list-group-item">Nachname: {{ user.last_name }}</li>
<li class="list-group-item">Email: {{ user.email }}</li>
<li class="list-group-item">Vorname: {{ user.user.first_name }}</li>
<li class="list-group-item">Nachname: {{ user.user.last_name }}</li>
<li class="list-group-item">Email: {{ user.user.email }}</li>
<li class="list-group-item">Passwort: <a
href="{{ url('realm-user-password-reset', args = [realm.id, user.dn]) }}" class="float-right">Nutzerpasswort
href="{{ url('realm-user-password-reset', args = [realm.id, user.user.dn]) }}" class="float-right">Nutzerpasswort
zurücksetzen</a></li>
<li class="list-group-item">Telefon: {{ user.phone }}</li>
<li class="list-group-item">Mobiltelefon: {{ user.mobile_phone }}</li>
<li class="list-group-item">Telefon: {{ user.user.phone }}</li>
<li class="list-group-item">Mobiltelefon: {{ user.user.mobile_phone }}</li>
<li class="list-group-item">Gruppen:
{% if groups %}
{% for group in groups %}
@ -33,27 +46,36 @@
{% else %}
<span class="text-warning">Keine zugewiesen</span>
{% endif %}
<a href="{{ url('realm-user-group-update', args=[realm.id, user.dn]) }}" class="float-right">
<a href="{{ url('realm-user-group-update', args=[realm.id, user.user.dn]) }}" class="float-right">
Gruppen zuweisen</a>
</li>
<li class="list-group-item">Zuletzt eingeloggt:
{% if user.last_login %}
{{ user.last_login.strftime('%d.%m.%Y') }}
{% if user.user.last_login %}
{{ user.user.last_login.strftime('%d.%m.%Y') }}
{% else %}
<i class="far fa-times-circle text-danger"></i><span class="d-none">+</span>
{% endif %}</li>
{% if user.deleted_user.deletion_date %}
<li class="list-group-item text-danger">Löschvorgang: {{ user.deleted_user.deletion_date.strftime('%d.%m.%Y') }}
<a href="{{ url('realm-user-delete-cancel', args=[realm.id, user.user.dn]) }}"
class="float-right">
Löschvorgang abbrechen</a>
</li>
{% endif %}
</ul>
<div class="d-flex mt-3">
<a href="{{ url('realm-user-update', args = [realm.id, user.dn]) }}" class="btn btn-primary mr-auto p-2">
<a href="{{ url('realm-user-update', args = [realm.id, user.user.dn]) }}"
class="btn btn-primary mr-auto p-2">
<i class="fas fa-user-cog"></i> Nutzer bearbeiten
</a>
{% if not user.last_login %}
<a href="{{ url('realm-user-resend-welcome-mail', args = [realm.id, user.dn]) }}"
<a href="{{ url('realm-user-resend-welcome-mail', args = [realm.id, user.user.dn]) }}"
class="btn btn-secondary p-2 mr-2">
<i class="fas fa-paper-plane"></i> Wilkommensmail erneut senden
</a>
{% endif %}
<a href="{{ url('realm-user-delete-confirm', args = [realm.id, user.dn]) }}" class="btn btn-danger p-2">
<a href="{{ url('realm-user-delete-confirm', args = [realm.id, user.user.dn]) }}"
class="btn btn-danger p-2">
<i class="fas fa-trash"></i> Nutzer löschen
</a>
</div>