Uploaded image for project: 'Hybrid Cloud Console'
  1. Hybrid Cloud Console
  2. RHCLOUD-44872

Enhance Chrome visibility functions to support wildcard permission matching

XMLWordPrintable

    • Future Sustainability
    • 2
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • Unset
    • None
    • 2
    • HCC Framework Sprint 52

      Enhancement Request

      Update Chrome visibility functions (checkPermissions and loosePermissions) to support wildcard pattern matching for permission validation. Currently, the system only performs exact string matching, but we need to implement proper wildcard evaluation to improve permission handling flexibility.

      Current Implementation

      The permission validation currently uses exact string comparison:

      userPermissions.find(({ permission }) => permission === item)
      

      This means "rbac:*:*" does not match "rbac:inventory:read" because it's doing literal string comparison.

      Desired Enhancement

      Implement wildcard pattern matching where "*" acts as a wildcard that can match any value in that position:

      • User permission: "rbac:*:*"
      • Required permission: "rbac:inventory:read"
      • Result: Should return true because the wildcards match "inventory" and "read"

      Technical Details

      File: src/utils/VisibilitySingleton.ts
      Functions to update:

      • checkPermissions (line 41-44)
      • loosePermissions (line 97) - calls checkPermissions with 'some' requirement

      Implementation Approach

      Update the permission matching logic to:

      1. Split both user permission and required permission by ":" delimiter
      2. Compare each segment, treating "*" as a wildcard that matches any value
      3. Return true if all segments match considering wildcards

      Expected Behavior Examples

      User has "rbac:*:*" should match:

      • "rbac:inventory:read"
      • "rbac:inventory:write"
      • "rbac:cost-management:read"

      User has "rbac:inventory:*" should match:

      • "rbac:inventory:read"
      • "rbac:inventory:write"
      • "rbac:inventory:delete"

      User has "rbac:*:read" should match:

      • "rbac:inventory:read"
      • "rbac:cost-management:read"

      Benefits

      This enhancement will provide more flexible permission management and improve user experience by allowing broader permissions to properly cover more specific permission requirements.

              rh-ee-jorringe Justin Orringer
              mmarosi123 Martin Marosi
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: