Disable SeAT accounts instead of deleting. (#915)

See eveseat/web@1abb402
This commit is contained in:
Adarnof 2017-11-03 19:20:31 -04:00 committed by GitHub
parent 16987fcaf0
commit 6837f94e59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 6 deletions

View File

@ -78,7 +78,7 @@ class SeatManager:
@classmethod @classmethod
def enable_user(cls, username): def enable_user(cls, username):
""" Enable user """ """ Enable user """
ret = cls.exec_request('user/{}'.format(username), 'put', active=1) ret = cls.exec_request('user/{}'.format(username), 'put', account_status=1)
logger.debug(ret) logger.debug(ret)
if cls._response_ok(ret): if cls._response_ok(ret):
logger.info("Enabled SeAT user with username %s" % username) logger.info("Enabled SeAT user with username %s" % username)
@ -86,6 +86,18 @@ class SeatManager:
logger.info("Failed to enabled SeAT user with username %s" % username) logger.info("Failed to enabled SeAT user with username %s" % username)
return None return None
@classmethod
def disable_user(cls, username):
""" Disable user """
cls.update_roles(username, [])
ret = cls.exec_request('user/{}'.format(username), 'put', account_status=0)
logger.debug(ret)
if cls._response_ok(ret):
logger.info("Disabled SeAT user with username %s" % username)
return username
logger.info("Failed to disable SeAT user with username %s" % username)
return None
@classmethod @classmethod
def _check_email_changed(cls, username, email): def _check_email_changed(cls, username, email):
"""Compares email to one set on SeAT""" """Compares email to one set on SeAT"""

View File

@ -28,7 +28,7 @@ class SeatTasks:
@classmethod @classmethod
def delete_user(cls, user, notify_user=False): def delete_user(cls, user, notify_user=False):
if cls.has_account(user) and SeatManager.delete_user(user.seat.username): if cls.has_account(user) and SeatManager.disable_user(user.seat.username):
user.seat.delete() user.seat.delete()
logger.info("Successfully deactivated SeAT for user %s" % user) logger.info("Successfully deactivated SeAT for user %s" % user)
if notify_user: if notify_user:

View File

@ -100,10 +100,10 @@ class SeatHooksTestCase(TestCase):
# Test none user is deleted # Test none user is deleted
none_user = User.objects.get(username=self.none_user) none_user = User.objects.get(username=self.none_user)
manager.delete_user.return_value = 'abc123' manager.disable_user.return_value = 'abc123'
SeatUser.objects.create(user=none_user, username='abc123') SeatUser.objects.create(user=none_user, username='abc123')
service.validate_user(none_user) service.validate_user(none_user)
self.assertTrue(manager.delete_user.called) self.assertTrue(manager.disable_user.called)
with self.assertRaises(ObjectDoesNotExist): with self.assertRaises(ObjectDoesNotExist):
none_seat = User.objects.get(username=self.none_user).seat none_seat = User.objects.get(username=self.none_user).seat
@ -115,7 +115,7 @@ class SeatHooksTestCase(TestCase):
result = service.delete_user(member) result = service.delete_user(member)
self.assertTrue(result) self.assertTrue(result)
self.assertTrue(manager.delete_user.called) self.assertTrue(manager.disable_user.called)
with self.assertRaises(ObjectDoesNotExist): with self.assertRaises(ObjectDoesNotExist):
seat_user = User.objects.get(username=self.member).seat seat_user = User.objects.get(username=self.member).seat
@ -177,7 +177,7 @@ class SeatViewsTestCase(TestCase):
response = self.client.get(urls.reverse('auth_deactivate_seat')) response = self.client.get(urls.reverse('auth_deactivate_seat'))
self.assertTrue(manager.delete_user.called) self.assertTrue(manager.disable_user.called)
self.assertRedirects(response, expected_url=urls.reverse('auth_services'), target_status_code=200) self.assertRedirects(response, expected_url=urls.reverse('auth_services'), target_status_code=200)
with self.assertRaises(ObjectDoesNotExist): with self.assertRaises(ObjectDoesNotExist):
seat_user = User.objects.get(pk=self.member.pk).seat seat_user = User.objects.get(pk=self.member.pk).seat