Skip to content

Commit 8a0377e

Browse files
authored
Merge pull request #3604 from unicef/staging
Staging
2 parents 61ccee3 + 0570db0 commit 8a0377e

File tree

3 files changed

+34
-9
lines changed

3 files changed

+34
-9
lines changed

src/etools/applications/users/tasks.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,11 @@ def _set_special_attr(self, obj, attr, cleaned_value):
8787
logger.info('UNICEF User Group added to user {}'.format(obj.user))
8888

8989
# deactivate realms from previous user country
90-
Realm.objects.filter(
91-
user=obj.user,
92-
country=obj.country,
93-
organization=self.unicef_organization).update(is_active=False)
90+
# commenting out to support stretch assignments
91+
# Realm.objects.filter(
92+
# user=obj.user,
93+
# country=obj.country,
94+
# organization=self.unicef_organization).update(is_active=False)
9495

9596
obj.country = self._get_country(cleaned_value)
9697
logger.info("Country Updated for {}".format(obj))

src/etools/applications/users/tests/test_views.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def setUpTestData(cls):
6363
cls.superuser = UserFactory(is_superuser=True)
6464
cls.unicef_organization = Organization.objects.get(name='UNICEF', vendor_number='000')
6565
cls.partnership_manager = UserFactory(
66-
realms__data=["Partnership Manager"], email='test@unicef.org',
66+
realms__data=["UNICEF User", "Partnership Manager"], email='test@unicef.org',
6767
profile__organization=cls.unicef_organization
6868
)
6969

@@ -86,7 +86,7 @@ def test_post_revoke_200(self):
8686
self.assertEqual(response.status_code, status.HTTP_200_OK)
8787
response = json.loads(response.content)
8888
self.assertEqual(response['status'], 'success')
89-
self.assertEqual(response['details']['previous_roles'], ["Partnership Manager"])
89+
self.assertEqual(response['details']['previous_roles'], ["Partnership Manager", "UNICEF User"])
9090
self.assertEqual(response['details']['current_roles'], [])
9191

9292
def test_post_grant_200(self):
@@ -105,12 +105,36 @@ def test_post_grant_200(self):
105105

106106
response = json.loads(response.content)
107107
self.assertEqual(response['status'], 'success')
108-
self.assertEqual(response['details']['previous_roles'], ["Partnership Manager"])
108+
self.assertEqual(response['details']['previous_roles'], ["Partnership Manager", "UNICEF User"])
109109
self.assertEqual(
110110
response['details']['current_roles'],
111111
['Partnership Manager', 'UNICEF Audit Focal Point', 'UNICEF User']
112112
)
113113

114+
def test_post_grant_reactivate_200(self):
115+
self.partnership_manager.realms.update(is_active=False)
116+
for realm in self.partnership_manager.realms.all():
117+
self.assertFalse(realm.is_active)
118+
response = self.forced_auth_req(
119+
"post",
120+
self.url,
121+
user=self.superuser,
122+
data={
123+
"user_email": self.partnership_manager.email,
124+
"roles": ["UNICEF Audit Focal Point"],
125+
"workspace": f"{self.tenant.business_area_code}",
126+
"access_type": "grant"
127+
}
128+
)
129+
self.assertEqual(response.status_code, status.HTTP_200_OK)
130+
131+
response = json.loads(response.content)
132+
self.assertEqual(response['status'], 'success')
133+
self.assertEqual(response['details']['previous_roles'], [])
134+
self.assertEqual(
135+
response['details']['current_roles'], ['UNICEF Audit Focal Point', 'UNICEF User']
136+
)
137+
114138
def test_post_set_200(self):
115139
response = self.forced_auth_req(
116140
"post",
@@ -127,7 +151,7 @@ def test_post_set_200(self):
127151

128152
response = json.loads(response.content)
129153
self.assertEqual(response['status'], 'success')
130-
self.assertEqual(response['details']['previous_roles'], ["Partnership Manager"])
154+
self.assertEqual(response['details']['previous_roles'], ["Partnership Manager", "UNICEF User"])
131155
self.assertEqual(response['details']['current_roles'], ["UNICEF Audit Focal Point", "UNICEF User"])
132156

133157
def test_invalid_uppercase_email(self):

src/etools/applications/users/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def create(self, request, *args, **kwargs):
9999
country=workspace,
100100
organization=unicef_organization,
101101
group=role,
102-
is_active=True
102+
defaults={"is_active": True}
103103
)[0])
104104
if data["access_type"] == "set":
105105
user.realms.exclude(id__in=[realm.id for realm in realms]).update(is_active=False)

0 commit comments

Comments
 (0)