incorporate @nsoranzo's abstraction suggestions

This commit is contained in:
Martin Cech
2019-08-27 10:56:35 -04:00
parent addfeffb9e
commit bada84445f
2 changed files with 8 additions and 10 deletions
+6 -8
View File
@@ -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):
"""
+2 -2
View File
@@ -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