Implement save realm deletion; Close #32

This commit is contained in:
Götz 2019-04-11 13:53:50 +02:00
parent 9a5532959f
commit 9ccb2a7224
6 changed files with 54 additions and 5 deletions

View File

@ -140,6 +140,15 @@ def realm_update(request, realm_id):
return render(request, 'realm/realm_update.jinja2', {'realm': realm})
@login_required
@is_realm_admin
def realm_delete_confirm(request, realm_id):
realm = Realm.objects.get(id=realm_id)
return render(request, 'realm/realm_confirm_delete.jinja2', {'realm': realm})
@login_required
@is_realm_admin
def realm_delete(request, realm_id):
realm = Realm.objects.get(id=realm_id)
LdapUser.base_dn = realm.ldap_base_dn

View File

@ -9,6 +9,7 @@ urlpatterns = [
path('', main_views.realm_list, name='realm-home'),
path('realm/<int:realm_id>/', main_views.realm_detail, name='realm-detail'),
path('realm/<int:realm_id>/update/', main_views.realm_update, name='realm-update'),
path('realm/<int:realm_id>/delete/confirm/', main_views.realm_delete_confirm, name='realm-delete-confirm'),
path('realm/<int:realm_id>/delete/', main_views.realm_delete, name='realm-delete'),
# path('realm/<int:realm_id>/mail/', main_views.realm_email_update, name='realm-mail-add-update'),
path('realm/<int:realm_id>/mail/test/', main_views.realm_email_test, name='realm-mail-test'),

View File

@ -93,11 +93,11 @@ def realm_user_update(request, realm_id, user_dn):
@login_required
@is_realm_admin
def realm_user_delete(request, realm_id, user_dn):
realm_obj = Realm.objects.get(id=realm_id)
LdapUser.base_dn = f'ou=people,{realm_obj.ldap_base_dn}'
LdapGroup.base_dn = f'ou=groups,{realm_obj.ldap_base_dn}'
realm = Realm.objects.get(id=realm_id)
LdapUser.base_dn = f'ou=people,{realm.ldap_base_dn}'
LdapGroup.base_dn = f'ou=groups,{realm.ldap_base_dn}'
ldap_user = LdapUser.objects.get(dn=user_dn)
user_delete_controller(ldap_user, realm_obj)
user_delete_controller(ldap_user, realm)
return redirect('realm-user-list', realm_id)

View File

@ -169,4 +169,11 @@
position: absolute;
z-index: -1;
opacity: 0;
}
/* ------------------------------------------------------------------------------------------------------------------ */
/* -- Realm delete -- */
/* ------------------------------------------------------------------------------------------------------------------ */
.realm-delete-link{
color: #6c757d;
}

View File

@ -0,0 +1,30 @@
{% extends 'base.jinja2' %}
{% block content %}
<div class="col-12 ">
<div class="row justify-content-center justify-content-sm-center">
<div class="col-12 col-sm-8 col-md-7 col-lg-5 col-xl-4 bg-white text-dark p-3 mt-5">
<h1>Löschen des Bereichs
<span class="text-uppercase font-weight-bold">{{ realm.name }}</span></h1>
<div class="alert alert-warning" role="alert">
<p>Achtung! Sie sind gerade dabei den Bereich <span
class="text-uppercase font-weight-bold">{{ realm.name }}</span> zu löschen.</p>
<p>Falls Sie sich sicher sind, dass Sie diesen Bereich löschen wollen, klicken Sie bitte auf
"Bereich löschen".
<p>Hierdurch werden <strong>Alle</strong> Nutzer und Gruppen gelöscht, die unter der Ldap Basis
DN {{ realm.ldap_base_dn }} eingetragen sind. Die Ldap Basis DN mit Ihren Organisationseinheiten
"groups" und "people" bleiben bestehen.</p>
<p>Bitte beachten Sie, dass die Daten der Nutzer, die in den
Diensten hochgeladen wurden, weiterhin bestehen bleiben. Diese Daten müssen vom
Systemadministrator seperat gelöscht werden. </p>
<p>Möchten Sie das Löschen der Accountdaten verhindern, klicken Sie auf "Abbrechen"</p>
</div>
<div class="d-flex">
<a href="{{ url('realm-detail', args = [realm.id]) }}"
class="btn btn-secondary mr-auto p-2">Abbrechen</a>
<a href="{{ url('realm-delete', args = [realm.id]) }}"
class="btn btn-danger p-2">Bereich löschen</a>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -5,10 +5,12 @@
<h1>Bereich <span style="text-transform: uppercase">{{ realm.name }}</span>
<small>
{% if request.user.is_superuser %}
<a href="{{ url('realm-delete', args=[realm.id]) }}">Delete</a>
<a href="{{ url('realm-delete-confirm', args=[realm.id]) }}"
class="float-right h5 realm-delete-link">Delete</a>
{% endif %}
</small>
</h1>
{% if notice %}
<p style="color: green">{{ notice }}</p>
{% endif %}