diff --git a/app/web/users/templates/users/user_federation_delete.html b/app/web/users/templates/users/user_federation_delete.html
index 928cb94a..8f8e0edf 100644
--- a/app/web/users/templates/users/user_federation_delete.html
+++ b/app/web/users/templates/users/user_federation_delete.html
@@ -14,9 +14,9 @@
{% block main %}
Gebruiker verwijderen
- Weet je zeker dat de gebruiker '{{ object.username }}' wilt verwijderen?
+ Weet je zeker dat je gebruiker '{{ object.username }}' wilt verwijderen?
{% if cases %}
- De onderstaande cliënten hebben na het verwijderen van deze gebruiker geen persoonlijk begeleider meer in de omslagroute.
+ De onderstaande cliënten hebben na het verwijderen van deze gebruiker geen persoonlijk begeleider meer in de omslagroute en zullen aan jou worden toegekend.
{% for case in cases %}
- cliënt id: {{ case.id }}
diff --git a/app/web/users/views.py b/app/web/users/views.py
index 9f92c0c3..8abe64db 100644
--- a/app/web/users/views.py
+++ b/app/web/users/views.py
@@ -379,6 +379,26 @@ def get_queryset(self):
def test_func(self):
return auth_test(self.request.user, [PB_FEDERATIE_BEHEERDER, FEDERATIE_BEHEERDER, WONEN])
+
+
+ def post(self, request, *args, **kwargs):
+ # Get user who will be deleted
+ deleted_user = self.get_object()
+ # Get all cases from the deleted user's profile
+ deleted_user_profile_cases = deleted_user.profile.cases.all()
+
+ # Loop through all cases in profile
+ for profile_case in deleted_user_profile_cases:
+ # Check if case exists in other profiles
+ profiles_with_case_count = Profile.objects.filter(cases=profile_case).count()
+ if profiles_with_case_count <= 1:
+ # There is no other profile with this case
+ # Add this case to current user
+ self.request.user.profile.cases.add(profile_case)
+
+ # Delete user profile as well
+ deleted_user.profile.delete()
+ return super().delete(request, *args, **kwargs)
class OIDCAuthenticationRequestView(DatapuntOIDCAuthenticationRequestView):