diff --git a/lib/galaxy/managers/users.py b/lib/galaxy/managers/users.py index ec312f7d87d..e891d2ec948 100644 --- a/lib/galaxy/managers/users.py +++ b/lib/galaxy/managers/users.py @@ -110,21 +110,21 @@ class UserManager(base.ModelManager, deletable.PurgableManagerMixin): self.app.security_agent.user_set_default_permissions(user, default_access_private=permissions) return user - def delete(self, user): + def delete(self, user, flush=True): """Mark the given user deleted.""" if not self.app.config.allow_user_deletion: raise exceptions.ConfigDoesNotAllowException('The configuration of this Galaxy instance does not allow admins to delete users.') - super(UserManager, self).delete(user) + super(UserManager, self).delete(user, flush=flush) - def undelete(self, user): + def undelete(self, user, flush=True): """Remove the deleted flag for the given user.""" if not self.app.config.allow_user_deletion: raise exceptions.ConfigDoesNotAllowException('The configuration of this Galaxy instance does not allow admins to undelete users.') if user.purged: raise exceptions.ItemDeletionException('Purged user cannot be undeleted.') - super(UserManager, self).undelete(user) + super(UserManager, self).undelete(user, flush=flush) - def purge(self, user): + def purge(self, user, flush=True): """Purge the given user. They must have the deleted flag already.""" if not self.app.config.allow_user_deletion: raise exceptions.ConfigDoesNotAllowException('The configuration of this Galaxy instance does not allow admins to delete or purge users.') @@ -195,9 +195,7 @@ class UserManager(base.ModelManager, deletable.PurgableManagerMixin): addr.phone = new_secure_hash(addr.phone + pseudorandom_value) self.session().add(addr) # Purge the user - user.purged = True - self.session().add(user) - self.session().flush() + super(UserManager, self).purge(user, flush=flush) def _error_on_duplicate_email(self, email): """ diff --git a/test/api/test_users.py b/test/api/test_users.py index 0e457d235fc..2d05e0d4219 100644 --- a/test/api/test_users.py +++ b/test/api/test_users.py @@ -87,10 +87,10 @@ class UsersApiTestCase(api.ApiTestCase): """Delete user and then purge them.""" user = self._setup_user(TEST_USER_EMAIL_PURGE) response = self._delete("users/%s" % user["id"], admin=True) - self._assert_status_code_is(response, 200) + self._assert_status_code_is_ok(response) data = dict(purge="True") response = self._delete("users/%s" % user["id"], data=data, admin=True) - self._assert_status_code_is(response, 200) + self._assert_status_code_is_ok(response) payload = {'deleted': "True"} purged_user = self._get("users/%s" % user['id'], payload, admin=True).json() assert purged_user['deleted'] is True, purged_user