diff --git a/src/account_manager/urls.py b/src/account_manager/urls.py index 6bc24f4..68594dc 100644 --- a/src/account_manager/urls.py +++ b/src/account_manager/urls.py @@ -53,6 +53,8 @@ urlpatterns = [ name='realm-multiple-user-delete'), path('realm//user/delete/multiple/inactive/', user_views.realm_multiple_user_delete_inactive, name='realm-multiple-user-delete-inactive'), + path('realm//user/delete//cancel/', user_views.realm_user_delete_cancel, + name='realm-user-delete-cancel'), # Realm Group path('realm//groups/', group_views.realm_groups, name='realm-group-list'), diff --git a/src/account_manager/views/user_views.py b/src/account_manager/views/user_views.py index 126382d..3987267 100644 --- a/src/account_manager/views/user_views.py +++ b/src/account_manager/views/user_views.py @@ -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): diff --git a/src/templates/user/realm_user_detail.jinja2 b/src/templates/user/realm_user_detail.jinja2 index 899be53..c2a6fc3 100644 --- a/src/templates/user/realm_user_detail.jinja2 +++ b/src/templates/user/realm_user_detail.jinja2 @@ -2,25 +2,38 @@ {% import 'macros/form_macros.jinja2' as mform %} {% block detail_content %} -

{{ user.username }}

+ {% if user.user %} + {% if user.deleted_user.deletion_date %} +

{{ user.user.username }} + Nutzer wird vorraussichtlich am {{ user.deleted_user.deletion_date.strftime('%d.%m.%Y') }} + gelöscht + +

+ {% else %} +

{{ user.user.username }}

+ {% endif %} + + {% else %} +

{{ user.username }}

+ {% endif %} {% if not form %}
    -
  • Ldap Domain: {{ user.dn }}
  • +
  • Ldap Domain: {{ user.user.dn }}
  • Anzeigename: - {% if user.display_name %} - {{ user.display_name }} + {% if user.user.display_name %} + {{ user.user.display_name }} {% else %} Noch nicht generiert {% endif %}
  • -
  • Vorname: {{ user.first_name }}
  • -
  • Nachname: {{ user.last_name }}
  • -
  • Email: {{ user.email }}
  • +
  • Vorname: {{ user.user.first_name }}
  • +
  • Nachname: {{ user.user.last_name }}
  • +
  • Email: {{ user.user.email }}
  • Passwort: Nutzerpasswort + href="{{ url('realm-user-password-reset', args = [realm.id, user.user.dn]) }}" class="float-right">Nutzerpasswort zurücksetzen
  • -
  • Telefon: {{ user.phone }}
  • -
  • Mobiltelefon: {{ user.mobile_phone }}
  • +
  • Telefon: {{ user.user.phone }}
  • +
  • Mobiltelefon: {{ user.user.mobile_phone }}
  • Gruppen: {% if groups %} {% for group in groups %} @@ -33,27 +46,36 @@ {% else %} Keine zugewiesen {% endif %} - + Gruppen zuweisen
  • 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 %} + {% endif %}
  • + {% if user.deleted_user.deletion_date %} +
  • Löschvorgang: {{ user.deleted_user.deletion_date.strftime('%d.%m.%Y') }} + + Löschvorgang abbrechen +
  • + {% endif %}