diff --git a/account_manager/urls.py b/account_manager/urls.py index 4208965..b399265 100644 --- a/account_manager/urls.py +++ b/account_manager/urls.py @@ -11,7 +11,6 @@ urlpatterns = [ path('realm//update/', main_views.realm_update, name='realm-update'), path('realm//delete/confirm/', main_views.realm_delete_confirm, name='realm-delete-confirm'), path('realm//delete/', main_views.realm_delete, name='realm-delete'), - # path('realm//mail/', main_views.realm_email_update, name='realm-mail-add-update'), path('realm//mail/test/', main_views.realm_email_test, name='realm-mail-test'), # Realm User @@ -21,16 +20,20 @@ urlpatterns = [ name='realm-user-detail'), path('realm//user//update/', account_manager.views.user_views.realm_user_update, name='realm-user-update'), + path('realm//user//group/update/', + account_manager.views.user_views.realm_user_group_update, + name='realm-user-group-update'), path('realm//user//group/update/add/', account_manager.views.user_views.realm_user_group_update_add, name='realm-user-group-update-add'), path('realm//user//group/update/delete/', account_manager.views.user_views.realm_user_group_update_delete, name='realm-user-group-update-delete'), - path('realm//user//group/update/', - account_manager.views.user_views.realm_user_group_update, - name='realm-user-group-update'), - path('realm//user/delete/single//', account_manager.views.user_views.realm_user_delete, + path('realm//user/delete/single//confirm/', + account_manager.views.user_views.realm_user_delete_confirm, + name='realm-user-delete-confirm'), + path('realm//user/delete/single//', + account_manager.views.user_views.realm_user_delete, name='realm-user-delete'), path('realm//user/delete/multiple', account_manager.views.user_views.realm_multiple_user_delete, name='realm-multiple-user-delete'), diff --git a/account_manager/views/user_views.py b/account_manager/views/user_views.py index 94a9ff5..721c8b2 100644 --- a/account_manager/views/user_views.py +++ b/account_manager/views/user_views.py @@ -106,6 +106,18 @@ def realm_user_delete(request, realm_id, user_dn): return redirect('realm-user-list', realm_id) +@login_required +@is_realm_admin +def realm_user_delete_confirm(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) + deletion_link = {'name': 'realm-user-delete', 'args': [realm.id, ldap_user.dn]} + cancel_link = {'name': 'realm-user-detail', 'args': [realm.id, ldap_user.dn]} + return render(request, 'user/user_confirm_delete.jinja2', + {'realm': realm, 'user': ldap_user, 'deletion_link': deletion_link, 'cancel_link': cancel_link}) + + def realm_multiple_user_delete(request, realm_id): realm = Realm.objects.get(id=realm_id) if request.method == 'POST': @@ -150,7 +162,10 @@ def user_delete_confirm(request, realm_id, user_dn): LdapGroup.base_dn = f'ou=groups,{realm.ldap_base_dn}' ldap_user = LdapUser.objects.get(dn=user_dn) if request.user.username == ldap_user.username: - return render(request, 'user/user_confirm_delete.jinja2', {'realm': realm, 'user': ldap_user}) + deletion_link = {'name': 'user-delete', 'args': [ldap_user.dn, realm.id]} + cancel_link = {'name': 'realm-user-detail', 'args': [realm.id, ldap_user.dn]} + return render(request, 'user/user_confirm_delete.jinja2', + {'realm': realm, 'user': ldap_user, 'deletion_link': deletion_link, 'cancel_link': cancel_link}) else: return redirect('permission-denied') diff --git a/templates/user/realm_user_detail.jinja2 b/templates/user/realm_user_detail.jinja2 index bf814ea..c94d2ac 100644 --- a/templates/user/realm_user_detail.jinja2 +++ b/templates/user/realm_user_detail.jinja2 @@ -30,7 +30,7 @@ Update User - + Delete User diff --git a/templates/user/user_confirm_delete.jinja2 b/templates/user/user_confirm_delete.jinja2 index 8e1c873..189c461 100644 --- a/templates/user/user_confirm_delete.jinja2 +++ b/templates/user/user_confirm_delete.jinja2 @@ -4,18 +4,19 @@