Skip to content

Commit eb02bdd

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

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: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,14 @@ 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-7, 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-8, role:default/all_resource_denier
50+
51+
g, user:default/rhdh-qe-7, role:default/owned_resource_reader
52+
g, user:default/rhdh-qe-8, role:default/owned_resource_reader

.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: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,4 +786,43 @@ test.describe.serial("Test RBAC", () => {
786786
await expect(dropdownMenuLocator).toBeHidden();
787787
});
788788
});
789+
790+
test.describe
791+
.serial("Test RBAC plugin: policyDecisionPrecedence: basic — prioritize basic 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 allow read as defined in basic policy and conditional", async () => {
804+
// Should allow read for user7: has static allow read via CSV and is also permitted via conditional policy
805+
await common.loginAsKeycloakUser(
806+
process.env.QE_USER7_ID,
807+
process.env.QE_USER7_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-7" }),
814+
).toBeVisible();
815+
});
816+
817+
test("should deny read as defined in basic policy, conditional policy should be disregarded", async () => {
818+
// Should deny read for user8: has static deny read via CSV even though permitted by conditional policy
819+
await common.loginAsKeycloakUser(
820+
process.env.QE_USER8_ID,
821+
process.env.QE_USER8_PASS,
822+
);
823+
await uiHelper.openSidebar("Catalog");
824+
await uiHelper.selectMuiBox("Kind", "Component");
825+
await uiHelper.verifyTableIsEmpty();
826+
});
827+
});
789828
});

0 commit comments

Comments
 (0)