From 2bb1b903285449e8ae50aad788c68b77c7e4d006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20G=C3=B6tz?= Date: Sun, 31 Mar 2019 16:55:40 +0200 Subject: [PATCH] Fix delete own account on user deletion --- account_manager/views/user_views.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/account_manager/views/user_views.py b/account_manager/views/user_views.py index 7e6340f..cd53b34 100644 --- a/account_manager/views/user_views.py +++ b/account_manager/views/user_views.py @@ -4,7 +4,9 @@ from django.shortcuts import render, redirect from account_helper.models import Realm from account_manager.forms import AddLDAPUserForm from account_manager.models import LdapUser, LdapGroup +from django.contrib.auth.models import User from account_manager.main_views import is_realm_admin +from django.core.exceptions import ObjectDoesNotExist @login_required @@ -126,11 +128,15 @@ def user_update_controller(ldap_user, realm_id, realm_obj, request, user_dn, red def user_delete_controller(request, ldap_user, realm_id, redirect_name): - django_user = request.user user_groups = LdapGroup.objects.filter(members__contains=ldap_user.dn) + for group in user_groups: group.members.remove(ldap_user.dn) group.save() ldap_user.delete() - django_user.delete() + try: + django_user = User.objects.get(username=ldap_user.username) + django_user.delete() + except ObjectDoesNotExist: + pass return redirect(redirect_name, realm_id)