From cd0afeca15b82a51ee2d4c14b90cd6cc5f2b7ac0 Mon Sep 17 00:00:00 2001 From: Adarnof Date: Fri, 3 Nov 2017 19:20:31 -0400 Subject: [PATCH] Disable SeAT accounts instead of deleting. (#915) See eveseat/web@1abb402 --- allianceauth/services/modules/seat/manager.py | 14 +++++++++++++- allianceauth/services/modules/seat/tasks.py | 2 +- allianceauth/services/modules/seat/tests.py | 9 +++++---- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/allianceauth/services/modules/seat/manager.py b/allianceauth/services/modules/seat/manager.py index 5ce3cb04..2f77042f 100644 --- a/allianceauth/services/modules/seat/manager.py +++ b/allianceauth/services/modules/seat/manager.py @@ -72,7 +72,7 @@ class SeatManager: @classmethod def enable_user(cls, username): """ 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) if cls._response_ok(ret): logger.info("Enabled SeAT user with username %s" % username) @@ -80,6 +80,18 @@ class SeatManager: logger.info("Failed to enabled SeAT user with username %s" % username) 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 def _check_email_changed(cls, username, email): """Compares email to one set on SeAT""" diff --git a/allianceauth/services/modules/seat/tasks.py b/allianceauth/services/modules/seat/tasks.py index 29515b63..c44306cf 100644 --- a/allianceauth/services/modules/seat/tasks.py +++ b/allianceauth/services/modules/seat/tasks.py @@ -25,7 +25,7 @@ class SeatTasks: @classmethod 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() logger.info("Successfully deactivated SeAT for user %s" % user) if notify_user: diff --git a/allianceauth/services/modules/seat/tests.py b/allianceauth/services/modules/seat/tests.py index ebd13049..4868ce03 100644 --- a/allianceauth/services/modules/seat/tests.py +++ b/allianceauth/services/modules/seat/tests.py @@ -85,10 +85,10 @@ class SeatHooksTestCase(TestCase): # Test none user is deleted 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') service.validate_user(none_user) - self.assertTrue(manager.delete_user.called) + self.assertTrue(manager.disable_user.called) with self.assertRaises(ObjectDoesNotExist): none_seat = User.objects.get(username=self.none_user).seat @@ -100,7 +100,7 @@ class SeatHooksTestCase(TestCase): result = service.delete_user(member) self.assertTrue(result) - self.assertTrue(manager.delete_user.called) + self.assertTrue(manager.disable_user.called) with self.assertRaises(ObjectDoesNotExist): seat_user = User.objects.get(username=self.member).seat @@ -161,8 +161,9 @@ class SeatViewsTestCase(TestCase): response = self.client.get(urls.reverse('seat:deactivate')) - self.assertTrue(manager.delete_user.called) + self.assertTrue(manager.disable_user.called) self.assertRedirects(response, expected_url=urls.reverse('services:services'), target_status_code=200) + with self.assertRaises(ObjectDoesNotExist): seat_user = User.objects.get(pk=self.member.pk).seat