"""Application constants.""" BANKING_TAX_APP = 'BANKING_TAX_APP' COLLABORATORS_APP = 'COLLABORATORS_APP' CUSTOMER_ACCOUNTING_APP = 'CUSTOMER_ACCOUNTING_APP' FANSIFTER_APP = 'FANSIFTER_APP' INSIGHTS_APP = 'INSIGHTS_APP' SETTINGS_APP = 'SETTINGS_APP' SONGWHIP_APP = 'SONGWHIP_APP' WORKSTATION_ACCOUNTING_APP = 'WORKSTATION_ACCOUNTING_APP' WORKSTATION_ANALYTICS_APP = 'WORKSTATION_ANALYTICS_APP' WORKSTATION_CATALOG_APP = 'WORKSTATION_CATALOG_APP' WORKSTATION_MARKETING_APP = 'WORKSTATION_MARKETING_APP' APPLICATION_IDS = [ BANKING_TAX_APP, COLLABORATORS_APP, CUSTOMER_ACCOUNTING_APP, FANSIFTER_APP, INSIGHTS_APP, SETTINGS_APP, SONGWHIP_APP, WORKSTATION_ACCOUNTING_APP, WORKSTATION_ANALYTICS_APP, WORKSTATION_CATALOG_APP, WORKSTATION_MARKETING_APP, ] BANKING_TAX_BASE_ROLE = 'BANKING_TAX_BASE_ROLE' COLLABORATORS_BASE_ROLE = 'COLLABORATORS_BASE_ROLE' CUSTOMER_ACCOUNTING_BASE_ROLE = 'CUSTOMER_ACCOUNTING_BASE_ROLE' INSIGHTS_BASE_ROLE = 'INSIGHTS_BASE_ROLE' INSIGHTS_YT_REVENUE_ROLE = 'INSIGHTS_YT_REVENUE_ROLE' SETTINGS_BASE_ROLE = 'SETTINGS_BASE_ROLE' SONGWHIP_BASE_ROLE = 'songwhip' SONGWHIP_READ_ROLE = 'songwhip_read' # A dummy role like the above, but matches PP role name WORKSTATION_ADMIN_ROLE = 'WORKSTATION_ADMIN_ROLE' WORKSTATION_ADVERTISING_ROLE = 'WORKSTATION_ADVERTISING_ROLE' WORKSTATION_ANALYTICS_BASE_ROLE = 'WORKSTATION_ANALYTICS_BASE_ROLE' WORKSTATION_CATALOG_ROLE = 'WORKSTATION_CATALOG_ROLE' WORKSTATION_MARKETING_ROLE = 'WORKSTATION_MARKETING_ROLE' FANSIFTER_BASE_ROLE = 'fansifter_can_view_fan_data' class RoleIds: """Class to hold role IDs.""" BANKING_TAX_BASE_ROLE = BANKING_TAX_BASE_ROLE COLLABORATORS_BASE_ROLE = COLLABORATORS_BASE_ROLE CUSTOMER_ACCOUNTING_BASE_ROLE = CUSTOMER_ACCOUNTING_BASE_ROLE FANSIFTER_BASE_ROLE = FANSIFTER_BASE_ROLE INSIGHTS_BASE_ROLE = INSIGHTS_BASE_ROLE SETTINGS_BASE_ROLE = SETTINGS_BASE_ROLE SONGWHIP_BASE_ROLE = SONGWHIP_BASE_ROLE SONGWHIP_READ_ROLE = SONGWHIP_READ_ROLE WORKSTATION_ADMIN_ROLE = WORKSTATION_ADMIN_ROLE WORKSTATION_CATALOG_ROLE = WORKSTATION_CATALOG_ROLE WORKSTATION_ANALYTICS_BASE_ROLE = WORKSTATION_ANALYTICS_BASE_ROLE WORKSTATION_MARKETING_ROLE = WORKSTATION_MARKETING_ROLE WORKSTATION_ADVERTISING_ROLE = WORKSTATION_ADVERTISING_ROLE @classmethod def get_all_roles(cls): """Return all role values as a list.""" return [ getattr(cls, attr) for attr in dir(cls) if not attr.startswith('_') and not callable(getattr(cls, attr)) ] ROLE_IDS = RoleIds() ROLE_IDS_LIST = RoleIds.get_all_roles() ROLES_SUPPORTED_BY_ACCOUNT = [ BANKING_TAX_BASE_ROLE, COLLABORATORS_BASE_ROLE, CUSTOMER_ACCOUNTING_BASE_ROLE, FANSIFTER_BASE_ROLE, INSIGHTS_BASE_ROLE, INSIGHTS_YT_REVENUE_ROLE, SONGWHIP_READ_ROLE, WORKSTATION_ADMIN_ROLE, WORKSTATION_CATALOG_ROLE, WORKSTATION_ANALYTICS_BASE_ROLE, WORKSTATION_ADVERTISING_ROLE, WORKSTATION_MARKETING_ROLE, SETTINGS_BASE_ROLE, ] ROLES_SUPPORTED_BY_SUBACCOUNT = [ CUSTOMER_ACCOUNTING_BASE_ROLE, INSIGHTS_BASE_ROLE, INSIGHTS_YT_REVENUE_ROLE, WORKSTATION_ADMIN_ROLE, WORKSTATION_ANALYTICS_BASE_ROLE, WORKSTATION_CATALOG_ROLE, SETTINGS_BASE_ROLE, ] ROLES_SUPPORTED_BY_COLLABORATOR = [ BANKING_TAX_BASE_ROLE, CUSTOMER_ACCOUNTING_BASE_ROLE, ] ROLES_SUPPORTED_BY_LABEL_PARTICIPANT = [INSIGHTS_BASE_ROLE, SETTINGS_BASE_ROLE] ROLES_SUPPORTED_BY_PARENT_COMPANY = [INSIGHTS_BASE_ROLE, SETTINGS_BASE_ROLE] # Roles that can be assigned at the account level in the SEAT app SEAT_ACCOUNT_ASSIGNABLE_ROLES = [ FANSIFTER_BASE_ROLE, SONGWHIP_READ_ROLE, ] # All roles that can be assigned in the SEAT app (parent company or account) SEAT_ASSIGNABLE_ROLES = ROLES_SUPPORTED_BY_PARENT_COMPANY + SEAT_ACCOUNT_ASSIGNABLE_ROLES ROLE_TO_AUTH0_APPLICATION_MAPPING = { BANKING_TAX_BASE_ROLE: 'documents-login', CUSTOMER_ACCOUNTING_BASE_ROLE: 'moneyhub-login', COLLABORATORS_BASE_ROLE: 'collaborators-login', FANSIFTER_BASE_ROLE: 'audience-login', INSIGHTS_BASE_ROLE: 'insights-login', SETTINGS_BASE_ROLE: 'settings-login', SONGWHIP_READ_ROLE: 'settings-login', WORKSTATION_ADMIN_ROLE: 'settings-login', WORKSTATION_CATALOG_ROLE: 'settings-login', WORKSTATION_ANALYTICS_BASE_ROLE: 'settings-login', WORKSTATION_MARKETING_ROLE: 'settings-login', WORKSTATION_ADVERTISING_ROLE: 'settings-login', }