mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
incorporate @nsoranzo's abstraction suggestions
This commit is contained in:
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user