Skip to content

Commit 70928e6

Browse files
committed
chore(e2e): add tests for RBAC policyDecisionPrecedence config
Signed-off-by: Jessica He <[email protected]>
1 parent 6508244 commit 70928e6

File tree

4 files changed

+64
-0
lines changed

4 files changed

+64
-0
lines changed

.ibm/pipelines/resources/config_map/app-config-rhdh-rbac.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,4 +136,5 @@ permission:
136136
admin:
137137
users:
138138
- name: user:default/rhdh-qe
139+
policyDecisionPrecedence: basic
139140
includeTransitiveGroupOwnership: true

.ibm/pipelines/resources/config_map/rbac-policy.csv

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,16 @@ p, role:default/catalog_reader, catalog.entity.read, read, allow
3939
g, user:default/rhdh-qe, role:default/extension
4040
p, role:default/extension, extension-plugin, read, allow
4141
p, role:default/extension, extension-plugin, create, allow
42+
43+
p, role:default/all_resource_reader, catalog-entity, read, allow
44+
p, role:default/all_resource_reader, catalog-entity, create, allow
45+
g, user:default/rhdh-qe-6, role:default/all_resource_reader
46+
47+
p, role:default/all_resource_denier, catalog-entity, read, deny
48+
p, role:default/all_resource_denier, catalog-entity, create, allow
49+
g, user:default/rhdh-qe-4, role:default/all_resource_denier
50+
51+
g, user:default/rhdh-qe-4, role:default/owned_resource_reader
52+
g, user:default/rhdh-qe-6, role:default/owned_resource_reader
53+
54+
g, user:development/guest, role:default/admin

.ibm/pipelines/value_files/values_showcase-rbac.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,19 @@ upstream:
334334
params:
335335
claims:
336336
- \$ownerRefs
337+
---
338+
result: CONDITIONAL
339+
roleEntityRef: 'role:default/owned_resource_reader'
340+
pluginId: catalog
341+
resourceType: catalog-entity
342+
permissionMapping:
343+
- read
344+
conditions:
345+
rule: IS_ENTITY_OWNER
346+
resourceType: catalog-entity
347+
params:
348+
claims:
349+
- \$currentUser
337350
EOF
338351
339352
./install-dynamic-plugins.sh /dynamic-plugins-root

e2e-tests/playwright/e2e/plugins/rbac/rbac.spec.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,4 +786,41 @@ test.describe.serial("Test RBAC", () => {
786786
await expect(dropdownMenuLocator).toBeHidden();
787787
});
788788
});
789+
790+
test.describe
791+
.serial("Test RBAC plugin: Policy decision precedence: basic — prioritize permission before conditional", () => {
792+
let page: Page;
793+
let common: Common;
794+
let uiHelper: UIhelper;
795+
796+
test.beforeAll(async ({ browser }, testInfo) => {
797+
page = (await setupBrowser(browser, testInfo)).page;
798+
799+
uiHelper = new UIhelper(page);
800+
common = new Common(page);
801+
});
802+
803+
test("should decide based on policy defined in basic policy, conditional policy should be ignored", async () => {
804+
// Should allow read for user6: has static allow read via CSV and is also permitted via conditional policy
805+
await common.loginAsKeycloakUser(
806+
process.env.QE_USER6_ID,
807+
process.env.QE_USER6_PASS,
808+
);
809+
await uiHelper.openSidebar("Catalog");
810+
await uiHelper.selectMuiBox("Kind", "Component");
811+
await uiHelper.searchInputPlaceholder("mock-component");
812+
await expect(
813+
page.getByRole("link", { name: "mock-component-qe-6" }),
814+
).toBeVisible();
815+
816+
// Should deny read for user4: has static deny read via CSV even though permitted by conditional policy
817+
await common.loginAsKeycloakUser(
818+
process.env.QE_USER4_ID,
819+
process.env.QE_USER4_PASS,
820+
);
821+
await uiHelper.openSidebar("Catalog");
822+
await uiHelper.selectMuiBox("Kind", "Component");
823+
await uiHelper.verifyTableIsEmpty();
824+
});
825+
});
789826
});

0 commit comments

Comments
 (0)