Skip to content

Commit a570ed7

Browse files
[PRMT-72] Fix repository role bug by moving PCSE check to first (#635)
1 parent 0581475 commit a570ed7

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

lambdas/services/login_service.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,13 @@ def remove_used_state(self, state):
165165
def generate_repository_role(self, organisation: dict, smartcard_role: str):
166166
logger.info(f"Smartcard Role: {smartcard_role}")
167167

168+
if smartcard_role in self.token_handler_ssm_service.get_smartcard_role_pcse():
169+
if self.has_pcse_org_ods_code(
170+
organisation, self.token_handler_ssm_service.get_pcse_ods_code()
171+
):
172+
logger.info("PCSE: smartcard ODS identified")
173+
return RepositoryRole.PCSE
174+
168175
if (
169176
smartcard_role
170177
in self.token_handler_ssm_service.get_smartcard_role_gp_admin()
@@ -179,13 +186,6 @@ def generate_repository_role(self, organisation: dict, smartcard_role: str):
179186
logger.info("GP Clinical: smartcard ODS identified")
180187
return RepositoryRole.GP_CLINICAL
181188

182-
if smartcard_role in self.token_handler_ssm_service.get_smartcard_role_pcse():
183-
logger.info("PCSE: smartcard ODS identified")
184-
if self.has_pcse_org_ods_code(
185-
organisation, self.token_handler_ssm_service.get_pcse_ods_code()
186-
):
187-
return RepositoryRole.PCSE
188-
189189
logger.error(
190190
f"{LambdaError.LoginNoRole.to_str()}", {"Result": "Unsuccessful login"}
191191
)

lambdas/tests/unit/services/test_login_service.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -244,11 +244,13 @@ def test_generate_repository_role_gp_admin(set_env, mocker):
244244

245245
mocker.patch.object(
246246
TokenHandlerSSMService,
247-
"get_smartcard_role_gp_admin",
248-
return_value=[user_role_code],
247+
"get_smartcard_role_pcse",
248+
return_value=["wrong_role_code"],
249249
)
250250
mocker.patch.object(
251-
TokenHandlerSSMService, "get_gp_org_role_code", return_value=org_role_code
251+
TokenHandlerSSMService,
252+
"get_smartcard_role_gp_admin",
253+
return_value=[user_role_code],
252254
)
253255

254256
login_service = LoginService()
@@ -264,7 +266,11 @@ def test_generate_repository_role_gp_clinical(set_env, mocker):
264266
user_role_code = "role_code"
265267
org = {"org_ods_code": ods_code, "role_code": org_role_code}
266268
mocker.patch("services.login_service.OidcService")
267-
269+
mocker.patch.object(
270+
TokenHandlerSSMService,
271+
"get_smartcard_role_pcse",
272+
return_value=["wrong_role_code"],
273+
)
268274
mocker.patch.object(
269275
TokenHandlerSSMService,
270276
"get_smartcard_role_gp_admin",
@@ -275,9 +281,6 @@ def test_generate_repository_role_gp_clinical(set_env, mocker):
275281
"get_smartcard_role_gp_clinical",
276282
return_value=[user_role_code],
277283
)
278-
mocker.patch.object(
279-
TokenHandlerSSMService, "get_gp_org_role_code", return_value=org_role_code
280-
)
281284

282285
login_service = LoginService()
283286

@@ -304,7 +307,7 @@ def test_generate_repository_role_pcse(set_env, mocker):
304307
return_value=["wrong_role_code"],
305308
)
306309
mocker.patch.object(
307-
TokenHandlerSSMService, "get_smartcard_role_pcse", return_value=user_role_code
310+
TokenHandlerSSMService, "get_smartcard_role_pcse", return_value=[user_role_code]
308311
)
309312
mocker.patch.object(
310313
TokenHandlerSSMService, "get_pcse_ods_code", return_value=ods_code

0 commit comments

Comments
 (0)