Skip to content

Validate accessibility of members referenced in calculated member formulas#144

Closed
jjustaments wants to merge 2 commits intomasterfrom
bugfix/calculated_member_with_role
Closed

Validate accessibility of members referenced in calculated member formulas#144
jjustaments wants to merge 2 commits intomasterfrom
bugfix/calculated_member_with_role

Conversation

@jjustaments
Copy link
Collaborator

Mondrian patch:

diff --git a/mondrian/src/main/java/mondrian/olap/fun/SetFunDef.java b/mondrian/src/main/java/mondrian/olap/fun/SetFunDef.java
index 6e72c0d49..ae396988a 100644
--- a/mondrian/src/main/java/mondrian/olap/fun/SetFunDef.java
+++ b/mondrian/src/main/java/mondrian/olap/fun/SetFunDef.java
@@ -164,7 +164,9 @@ public class SetFunDef extends FunDefBase {
                     public void evaluateVoid(Evaluator evaluator) {
                         // Don't add null or partially null tuple to result.
                         Member member = memberCalc.evaluateMember(evaluator);
-                        if (member == null || member.isNull()) {
+                        // PATCH: Add member access check.
+                        Role role = evaluator.getSchemaReader().getRole();
+                        if (member == null || member.isNull() || !role.canAccess(member)) {
                             return;
                         }
                         members[0] = member;

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds validation to ensure that members referenced in calculated member formulas respect role-based access controls. It applies a patch to the Mondrian OLAP Java library that checks role access when evaluating members in sets, preventing unauthorized member aggregation.

Key changes:

  • Adds role access validation in SetFunDef to filter out inaccessible members during evaluation
  • Introduces comprehensive test coverage for calculated members with role restrictions
  • Tests both .Children aggregation and explicit set aggregation scenarios

@rsim
Copy link
Owner

rsim commented Dec 1, 2025

As discussed will not implement this as it adds additional overhead for all queries.

@rsim rsim closed this Dec 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants