atoti.Hierarchy.viewers#
- 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:
>>> hierarchy.viewers {'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:
>>> hierarchy.viewers {'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
Hiding the hierarchy from all users:
>>> hierarchy.viewers.clear() >>> hierarchy.viewers set() >>> hierarchy.visible False >>> hierarchy_seen_by_john.visible False
Making the hierarchy visible to admins only:
>>> hierarchy.viewers.add("ROLE_ADMIN") >>> hierarchy.viewers {'ROLE_ADMIN'} >>> hierarchy.visible True >>> hierarchy_seen_by_john.visible False