From 624436900b093c96ff4b1e7e0d232a615bec5d15 Mon Sep 17 00:00:00 2001 From: Daniel Blackhall Date: Tue, 11 Jun 2024 12:49:30 +1000 Subject: [PATCH] Support filtering roles that contain a path --- package-lock.json | 4 ++-- src/js/lib/target_profiles.js | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 595de35..cbbbbb3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "aws-extend-switch-roles", - "version": "5.0.0", + "version": "5.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "aws-extend-switch-roles", - "version": "5.0.0", + "version": "5.0.1", "license": "MIT", "dependencies": { "aesr-config": "^0.4.1" diff --git a/src/js/lib/target_profiles.js b/src/js/lib/target_profiles.js index dc74388..b0fdb40 100644 --- a/src/js/lib/target_profiles.js +++ b/src/js/lib/target_profiles.js @@ -28,7 +28,7 @@ async function retrieveTargetProfilesFromDB(ctx) { const complexTargetItems = await dbTable.query(`${matchedComplexSrc.name};`); let targets = complexTargetItems.map(it => convertComplexTarget(it, matchedComplexSrc)); if (filterByTargetRole) { - targets = targets.filter(it => it.role_name === filterByTargetRole); + targets = targets.filter(it => targetRoleNameMatches(it, filterByTargetRole)); } results.push(...targets) } @@ -72,10 +72,14 @@ async function retrieveTargetProfilesFromLztext(ctx) { if (matchedComplexSrc) { let targets = matchedComplexSrc.targets; if (filterByTargetRole) { - targets = targets.filter(it => it.role_name === filterByTargetRole); + targets = targets.filter(it => targetRoleNameMatches(it, filterByTargetRole)); } results.push(...targets) } return results; } + +function targetRoleNameMatches(it, filterByTargetRole) { + return it.role_name === filterByTargetRole || it.role_name.substring(it.role_name.lastIndexOf('/') + 1) === filterByTargetRole; +}