0
0
Fork 0
mirror of https://github.com/alerta/alerta.git synced 2025-02-10 16:02:26 +00:00
alerta_alerta/alerta/utils/providers.py
2021-03-13 20:35:49 +01:00

27 lines
729 B
Python

from flask import Flask
class AuthProviders:
OIDC_PROVIDERS = ['openid', 'azure', 'cognito', 'gitlab', 'google', 'keycloak']
def __init__(self, app: Flask = None) -> None:
self.app = app
if app is not None:
self.init_app(app)
self.providers = None
def init_app(self, app: Flask) -> None:
self.providers = app.config['AUTH_PROVIDER']
if isinstance(self.providers, str):
self.providers = [self.providers]
def has_provider(self, provider: str) -> bool:
return provider in self.providers
def get_oidc_provider(self) -> str:
for p in AuthProviders.OIDC_PROVIDERS:
if p in self.providers:
return p