@@ -258,6 +258,9 @@ def handle_button_click(body: dict, client: WebClient, context: BoltContext) ->
258258 cache_for_dublicate_requests ["account_id" ] = payload .request .account_id
259259 cache_for_dublicate_requests ["permission_set_name" ] = payload .request .permission_set_name
260260
261+ # Look up permission set to get ARN for matching and name for display
262+ permission_set = sso .get_permission_set (sso_client , cfg .sso_instance_arn , payload .request .permission_set_name )
263+
261264 if payload .action == entities .ApproverAction .Discard :
262265 blocks = slack_helpers .HeaderSectionBlock .set_status (
263266 blocks = payload .message ["blocks" ],
@@ -281,7 +284,7 @@ def handle_button_click(body: dict, client: WebClient, context: BoltContext) ->
281284 distinct_id = requester .email ,
282285 properties = {
283286 "account_id" : payload .request .account_id ,
284- "permission_set" : payload . request . permission_set_name ,
287+ "permission_set" : permission_set . name ,
285288 "approver_email" : approver .email ,
286289 "requester_email" : requester .email ,
287290 },
@@ -304,6 +307,7 @@ def handle_button_click(body: dict, client: WebClient, context: BoltContext) ->
304307 permission_set_name = payload .request .permission_set_name ,
305308 approver_email = approver .email ,
306309 requester_email = requester .email ,
310+ permission_set_arn = permission_set .arn ,
307311 )
308312 logger .info ("Decision on request was made" , extra = {"decision" : decision .dict ()})
309313
@@ -349,7 +353,7 @@ def handle_button_click(body: dict, client: WebClient, context: BoltContext) ->
349353 distinct_id = requester .email ,
350354 properties = {
351355 "account_id" : payload .request .account_id ,
352- "permission_set" : payload . request . permission_set_name ,
356+ "permission_set" : permission_set . name ,
353357 "approver_email" : approver .email ,
354358 "requester_email" : requester .email ,
355359 "duration_hours" : payload .request .permission_duration .total_seconds () / 3600 ,
@@ -443,12 +447,16 @@ def handle_request_for_access_submittion( # noqa: PLR0915, PLR0912
443447 user_principal_id = user_principal_id ,
444448 )
445449
450+ # Look up permission set to get ARN for matching against ARN-based config
451+ permission_set = sso .get_permission_set (sso_client , cfg .sso_instance_arn , request .permission_set_name )
452+
446453 decision = access_control .make_decision_on_access_request (
447454 cfg .statements ,
448455 account_id = request .account_id ,
449456 permission_set_name = request .permission_set_name ,
450457 requester_email = requester .email ,
451458 user_group_ids = user_group_ids ,
459+ permission_set_arn = permission_set .arn ,
452460 )
453461 logger .info ("Decision on request was made" , extra = {"decision" : decision .dict ()})
454462
@@ -457,7 +465,7 @@ def handle_request_for_access_submittion( # noqa: PLR0915, PLR0912
457465 distinct_id = requester .email ,
458466 properties = {
459467 "account_id" : request .account_id ,
460- "permission_set" : request . permission_set_name ,
468+ "permission_set" : permission_set . name ,
461469 "requester_email" : requester .email ,
462470 "decision_reason" : decision .reason .value ,
463471 "granted" : decision .grant ,
@@ -478,7 +486,7 @@ def handle_request_for_access_submittion( # noqa: PLR0915, PLR0912
478486 slack_client = client ,
479487 requester_slack_id = request .requester_slack_id ,
480488 account = account ,
481- role_name = request . permission_set_name ,
489+ role_name = permission_set . name ,
482490 reason = request .reason ,
483491 permission_duration = request .permission_duration ,
484492 show_buttons = show_buttons ,
@@ -590,7 +598,7 @@ def handle_request_for_access_submittion( # noqa: PLR0915, PLR0912
590598 distinct_id = requester .email ,
591599 properties = {
592600 "account_id" : request .account_id ,
593- "permission_set" : request . permission_set_name ,
601+ "permission_set" : permission_set . name ,
594602 "approver_email" : requester .email ,
595603 "requester_email" : requester .email ,
596604 "duration_hours" : request .permission_duration .total_seconds () / 3600 ,
0 commit comments