def test_map(self): os.environ['TEST_DATA'] = 'foo:bar,baz:bag' self.assertEqual(get_env_map('TEST_DATA'), {'foo': 'bar', 'baz': 'bag'}) os.environ['TEST_DATA'] = 'foo:bar' self.assertEqual(get_env_map('TEST_DATA'), {'foo': 'bar'}) del os.environ['TEST_DATA'] self.assertEqual(get_env_map('TEST_DATA'), {}) self.assertEqual(get_env_map('TEST_DATA', {'x': 'y'}), {'x': 'y'})
def test_map(self): os.environ["TEST_DATA"] = "foo:bar,baz:bag" self.assertEqual(get_env_map("TEST_DATA"), {"foo": "bar", "baz": "bag"}) os.environ["TEST_DATA"] = "foo:bar" self.assertEqual(get_env_map("TEST_DATA"), {"foo": "bar"}) del os.environ["TEST_DATA"] self.assertEqual(get_env_map("TEST_DATA"), {}) self.assertEqual(get_env_map("TEST_DATA", {"x": "y"}), {"x": "y"})
def test_map(self): os.environ['TEST_DATA'] = 'foo:bar,baz:bag' self.assertEqual( get_env_map('TEST_DATA'), {'foo': 'bar', 'baz': 'bag'} ) os.environ['TEST_DATA'] = 'foo:bar' self.assertEqual(get_env_map('TEST_DATA'), {'foo': 'bar'}) del os.environ['TEST_DATA'] self.assertEqual(get_env_map('TEST_DATA'), {}) self.assertEqual(get_env_map('TEST_DATA', {'x': 'y'}), {'x': 'y'})
SOCIAL_AUTH_GITLAB_KEY = os.environ.get("WEBLATE_SOCIAL_AUTH_GITLAB_KEY", "") SOCIAL_AUTH_GITLAB_SECRET = os.environ.get("WEBLATE_SOCIAL_AUTH_GITLAB_SECRET", "") SOCIAL_AUTH_GITLAB_SCOPE = ["read_user"] if "WEBLATE_SOCIAL_AUTH_AUTH0_KEY" in os.environ: SOCIAL_AUTH_AUTH0_KEY = os.environ.get("WEBLATE_SOCIAL_AUTH_AUTH0_KEY", "") SOCIAL_AUTH_AUTH0_SECRET = os.environ.get("WEBLATE_SOCIAL_AUTH_AUTH0_SECRET", "") SOCIAL_AUTH_AUTH0_DOMAIN = os.environ.get("WEBLATE_SOCIAL_AUTH_AUTH0_DOMAIN", "") SOCIAL_AUTH_AUTH0_TITLE = os.environ.get("WEBLATE_SOCIAL_AUTH_AUTH0_TITLE", "") SOCIAL_AUTH_AUTH0_IMAGE = os.environ.get("WEBLATE_SOCIAL_AUTH_AUTH0_IMAGE", "") AUTHENTICATION_BACKENDS += ("social_core.backends.auth0.Auth0OAuth2",) SOCIAL_AUTH_AUTH0_SCOPE = ["openid", "profile", "email"] if "WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS" in os.environ: SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS = get_env_map( "WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS" ) # SAML if "WEBLATE_SAML_IDP_URL" in os.environ: AUTHENTICATION_BACKENDS += ("social_core.backends.saml.SAMLAuth",) # The keys are generated on container startup if missing with open("/app/data/ssl/saml.crt") as handle: SOCIAL_AUTH_SAML_SP_PUBLIC_CERT = handle.read() with open("/app/data/ssl/saml.key") as handle: SOCIAL_AUTH_SAML_SP_PRIVATE_KEY = handle.read() # Identity Provider SOCIAL_AUTH_SAML_ENABLED_IDPS = { "weblate": { "entity_id": os.environ.get("WEBLATE_SAML_IDP_ENTITY_ID", ""), "url": os.environ.get("WEBLATE_SAML_IDP_URL", ""),
SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY = os.environ.get( 'WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY', '') SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET = os.environ.get( 'WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET', '') SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID = os.environ.get( 'WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID', '') # https://docs.weblate.org/en/latest/admin/auth.html#ldap-authentication if 'WEBLATE_AUTH_LDAP_SERVER_URI' in os.environ: AUTH_LDAP_SERVER_URI = os.environ.get('WEBLATE_AUTH_LDAP_SERVER_URI') AUTH_LDAP_USER_DN_TEMPLATE = os.environ.get( 'WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE', 'cn=%(user)s,o=Example') AUTHENTICATION_BACKENDS += ('django_auth_ldap.backend.LDAPBackend', ) AUTH_LDAP_USER_ATTR_MAP = get_env_map('WEBLATE_AUTH_LDAP_USER_ATTR_MAP', { 'full_name': 'name', 'email': 'mail' }) AUTH_LDAP_BIND_DN = os.environ.get('WEBLATE_AUTH_LDAP_BIND_DN', '') AUTH_LDAP_BIND_PASSWORD = os.environ.get('WEBLATE_AUTH_LDAP_BIND_PASSWORD', '') # Always include Weblate backend AUTHENTICATION_BACKENDS += ('weblate.accounts.auth.WeblateUserBackend', ) # Social auth settings SOCIAL_AUTH_PIPELINE = ( 'social_core.pipeline.social_auth.social_details', 'social_core.pipeline.social_auth.social_uid', 'social_core.pipeline.social_auth.auth_allowed', 'social_core.pipeline.social_auth.social_user', 'weblate.accounts.pipeline.store_params',
if 'WEBLATE_SOCIAL_AUTH_AUTH0_KEY' in os.environ: SOCIAL_AUTH_AUTH0_KEY = os.environ.get('WEBLATE_SOCIAL_AUTH_AUTH0_KEY', '') SOCIAL_AUTH_AUTH0_SECRET = os.environ.get( 'WEBLATE_SOCIAL_AUTH_AUTH0_SECRET', '') SOCIAL_AUTH_AUTH0_DOMAIN = os.environ.get( 'WEBLATE_SOCIAL_AUTH_AUTH0_DOMAIN', '') SOCIAL_AUTH_AUTH0_TITLE = os.environ.get('WEBLATE_SOCIAL_AUTH_AUTH0_TITLE', '') SOCIAL_AUTH_AUTH0_IMAGE = os.environ.get('WEBLATE_SOCIAL_AUTH_AUTH0_IMAGE', '') AUTHENTICATION_BACKENDS += ('social_core.backends.auth0.Auth0OAuth2', ) SOCIAL_AUTH_AUTH0_SCOPE = ['openid', 'profile', 'email'] if 'WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS' in os.environ: SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS = get_env_map( 'WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS') # Azure if 'WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.azuread.AzureADOAuth2', ) SOCIAL_AUTH_AZUREAD_OAUTH2_KEY = os.environ.get( 'WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY', '') SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET = os.environ.get( 'WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET', '') # Azure AD Tenant if 'WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY' in os.environ: AUTHENTICATION_BACKENDS += ( 'social_core.backends.azuread_tenant.AzureADTenantOAuth2', )
AUTHENTICATION_BACKENDS += ('social_core.backends.google.GoogleOAuth2', ) if 'WEBLATE_SOCIAL_AUTH_GITLAB_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.gitlab.GitLabOAuth2', ) SOCIAL_AUTH_GITLAB_SCOPE = ['api'] if 'WEBLATE_SOCIAL_AUTH_GITHUB_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.github.GithubOAuth2', ) SOCIAL_AUTH_GITHUB_SCOPE = ['user:email'] if 'WEBLATE_SOCIAL_AUTH_AUTH0_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.auth0.Auth0OAuth2', ) SOCIAL_AUTH_AUTH0_SCOPE = ['openid', 'profile', 'email'] if 'WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS' in os.environ: auth0_args = get_env_map('WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS') SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS = auth0_args os.environ.pop('WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS') # Azure if 'WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.azuread.AzureADOAuth2', ) # Azure AD Tenant if 'WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY' in os.environ: AUTHENTICATION_BACKENDS += ( 'social_core.backends.azuread_tenant.AzureADTenantOAuth2', ) # https://docs.weblate.org/en/latest/admin/auth.html#ldap-authentication if 'WEBLATE_AUTH_LDAP_SERVER_URI' in os.environ: AUTHENTICATION_BACKENDS = ('django_auth_ldap.backend.LDAPBackend', )
AUTHENTICATION_BACKENDS += ('social_core.backends.google.GoogleOAuth2',) if 'WEBLATE_SOCIAL_AUTH_GITLAB_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.gitlab.GitLabOAuth2',) SOCIAL_AUTH_GITLAB_SCOPE = ['api'] if 'WEBLATE_SOCIAL_AUTH_GITHUB_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.github.GithubOAuth2',) SOCIAL_AUTH_GITHUB_SCOPE = ['user:email'] if 'WEBLATE_SOCIAL_AUTH_AUTH0_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.auth0.Auth0OAuth2',) SOCIAL_AUTH_AUTH0_SCOPE = ['openid', 'profile', 'email'] if 'WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS' in os.environ: auth0_args = get_env_map('WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS') SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS = auth0_args os.environ.pop('WEBLATE_SOCIAL_AUTH_AUTH0_AUTH_EXTRA_ARGUMENTS') # Azure if 'WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY' in os.environ: AUTHENTICATION_BACKENDS += ('social_core.backends.azuread.AzureADOAuth2',) # Azure AD Tenant if 'WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY' in os.environ: AUTHENTICATION_BACKENDS += ( 'social_core.backends.azuread_tenant.AzureADTenantOAuth2', ) # https://docs.weblate.org/en/latest/admin/auth.html#ldap-authentication if 'WEBLATE_AUTH_LDAP_SERVER_URI' in os.environ: