from typing import Optional from app.config import CONNECT_WITH_PROTON, CONNECT_WITH_PROTON_COOKIE_NAME from flask import request from app.db import Session from app.errors import ProtonPartnerNotSetUp from app.models import Partner PROTON_PARTNER_NAME = "Proton" _PROTON_PARTNER: Optional[Partner] = None def get_proton_partner() -> Partner: global _PROTON_PARTNER if _PROTON_PARTNER is None: partner = Partner.get_by(name=PROTON_PARTNER_NAME) if partner is None: raise ProtonPartnerNotSetUp Session.expunge(partner) _PROTON_PARTNER = partner return _PROTON_PARTNER def is_proton_partner(partner: Partner) -> str: return partner.name == PROTON_PARTNER_NAME def is_connect_with_proton_enabled() -> bool: if CONNECT_WITH_PROTON: return True if CONNECT_WITH_PROTON_COOKIE_NAME and request.cookies.get( CONNECT_WITH_PROTON_COOKIE_NAME ): return True return False