"""Database operations for Permission access.""" from connector_neo4j import get_session from sound_recordings.cypher import permissions as cypher class UnknownResourceAccessType(Exception): """Unknown Resource Access Type.""" pass def has_profile_access(profile, resource_ids, resource_type): """Get Profile access. Args: profile (profile_type, profile_id): Request Profile resource_ids list(int): ints for Vendor/Subaccount.id resource_type (str): str for account type Vendor/Subaccount Returns: bool """ neo4j_session = get_session() (profile_type, profile_id) = profile cypher_query = None if resource_type == 'Vendor': cypher_query = cypher.VENDOR_ACCESS elif resource_type == 'Subaccount': cypher_query = cypher.SUBACCOUNT_ACCESS elif resource_type == 'Track': cypher_query = cypher.TRACK_ACCESS else: raise UnknownResourceAccessType() result = neo4j_session.run( cypher_query, profile_id=profile_id, profile_type=profile_type, resource_ids=resource_ids ) permission = result.single() if not permission: return False return permission['has_access']