Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt

Use this file to discover all available pages before exploring further.

property Hierarchy.viewers : MutableSet[str]

visible is True if and only if at least one of the roles of the current user is included in this set.

Example

  • Without security:
    >>> table = session.create_table(
    ...     "Example", data_types={"Product": "String"}
    ... )
    >>> cube = session.create_cube(table)
    >>> hierarchy = cube.hierarchies["Product"]
    
    Each hierarchy is visible by default:
    >>> sorted(hierarchy.viewers)
    ['ROLE_ADMIN', 'ROLE_USER']
    >>> hierarchy.visible
    True
    
    Hiding the hierarchy from all users:
    >>> hierarchy.viewers.clear()
    >>> hierarchy.viewers
    set()
    >>> hierarchy.visible
    False
    
  • With security:
    >>> session_config = tt.SessionConfig(security=tt.SecurityConfig())
    >>> secured_session = tt.Session.start(session_config)
    >>> table = secured_session.create_table(
    ...     "Example", data_types={"Product": "String"}
    ... )
    >>> cube = secured_session.create_cube(table)
    >>> hierarchy = cube.hierarchies["Product"]
    
    Each hierarchy is visible by default:
    >>> sorted(hierarchy.viewers)
    ['ROLE_ADMIN', 'ROLE_USER']
    >>> hierarchy.visible
    True
    
    Setting up a non-admin user:
    >>> authentication = tt.BasicAuthentication("John", "passwd")
    >>> secured_session.security.individual_roles[authentication.username] = {
    ...     "ROLE_USER"
    ... }
    >>> secured_session.security.basic_authentication.credentials[
    ...     authentication.username
    ... ] = authentication.password
    >>> john_session = tt.Session.connect(
    ...     secured_session.url, authentication=authentication
    ... )
    
    John has ROLE_USER which is in viewers so the hierarchy is visible to him:
    >>> hierarchy_seen_by_john = john_session.cubes["Example"].hierarchies[
    ...     "Product"
    ... ]
    >>> hierarchy_seen_by_john.visible
    True
    
    Making the hierarchy visible to admins only:
    >>> hierarchy.viewers.discard("ROLE_USER")
    >>> "ROLE_USER" in hierarchy.viewers
    False
    >>> hierarchy.viewers
    {'ROLE_ADMIN'}
    >>> hierarchy.visible
    True
    >>> hierarchy_seen_by_john.visible
    False
    
    Hiding the hierarchy from all users:
    >>> hierarchy.viewers.clear()
    >>> hierarchy.viewers
    set()
    >>> hierarchy.visible
    False
    >>> hierarchy_seen_by_john.visible
    False