summaryrefslogtreecommitdiff
path: root/src/mailman/rest/users.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/rest/users.py')
-rw-r--r--src/mailman/rest/users.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mailman/rest/users.py b/src/mailman/rest/users.py
index 94817da49..25a49defa 100644
--- a/src/mailman/rest/users.py
+++ b/src/mailman/rest/users.py
@@ -170,10 +170,15 @@ class AUser(_UserBase):
@resource.DELETE()
def delete_user(self, request):
- """Delete the named user."""
+ """Delete the named user, all her memberships, and addresses."""
if self._user is None:
return http.not_found()
- getUtility(IUserManager).delete_user(self._user)
+ for member in self._user.memberships.members:
+ member.unsubscribe()
+ user_manager = getUtility(IUserManager)
+ for address in self._user.addresses:
+ user_manager.delete_address(address)
+ user_manager.delete_user(self._user)
return no_content()
@resource.child()