Ejemplo n.º 1
0
 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'})
Ejemplo n.º 2
0
 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"})
Ejemplo n.º 3
0
 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'})
Ejemplo n.º 4
0
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", ""),
Ejemplo n.º 5
0
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',
Ejemplo n.º 6
0
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', )
Ejemplo n.º 7
0
    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', )
Ejemplo n.º 8
0
    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: