mirror of https://github.com/zulip/zulip.git
auth: Add check_config for apple auth.
Apple has some other obligatory settings other than key and secret. To handle that this commit adds a function check_config() similar to that of SAML.
This commit is contained in:
parent
ea225bb9b8
commit
9583554d44
|
@ -61,6 +61,7 @@ from zerver.models import (
|
||||||
from zerver.signals import email_on_new_login
|
from zerver.signals import email_on_new_login
|
||||||
from zproject.backends import (
|
from zproject.backends import (
|
||||||
AUTH_BACKEND_NAME_MAP,
|
AUTH_BACKEND_NAME_MAP,
|
||||||
|
AppleAuthBackend,
|
||||||
ExternalAuthDataDict,
|
ExternalAuthDataDict,
|
||||||
ExternalAuthResult,
|
ExternalAuthResult,
|
||||||
SAMLAuthBackend,
|
SAMLAuthBackend,
|
||||||
|
@ -516,8 +517,13 @@ def start_social_login(request: HttpRequest, backend: str, extra_arg: Optional[s
|
||||||
return redirect_to_config_error("saml")
|
return redirect_to_config_error("saml")
|
||||||
extra_url_params = {'idp': extra_arg}
|
extra_url_params = {'idp': extra_arg}
|
||||||
|
|
||||||
|
if backend == "apple":
|
||||||
|
result = AppleAuthBackend.check_config()
|
||||||
|
if result is not None:
|
||||||
|
return result
|
||||||
|
|
||||||
# TODO: Add AzureAD also.
|
# TODO: Add AzureAD also.
|
||||||
if backend in ["github", "google", "gitlab", "apple"]:
|
if backend in ["github", "google", "gitlab"]:
|
||||||
key_setting = "SOCIAL_AUTH_" + backend.upper() + "_KEY"
|
key_setting = "SOCIAL_AUTH_" + backend.upper() + "_KEY"
|
||||||
secret_setting = "SOCIAL_AUTH_" + backend.upper() + "_SECRET"
|
secret_setting = "SOCIAL_AUTH_" + backend.upper() + "_SECRET"
|
||||||
if not (getattr(settings, key_setting) and getattr(settings, secret_setting)):
|
if not (getattr(settings, key_setting) and getattr(settings, secret_setting)):
|
||||||
|
|
|
@ -1553,6 +1553,19 @@ class AppleAuthBackend(SocialAuthMixin, AppleIdAuth):
|
||||||
|
|
||||||
SCOPE_SEPARATOR = "%20" # https://github.com/python-social-auth/social-core/issues/470
|
SCOPE_SEPARATOR = "%20" # https://github.com/python-social-auth/social-core/issues/470
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def check_config(cls) -> Optional[HttpResponse]:
|
||||||
|
obligatory_apple_settings_list = [
|
||||||
|
settings.SOCIAL_AUTH_APPLE_TEAM,
|
||||||
|
settings.SOCIAL_AUTH_APPLE_SERVICES_ID,
|
||||||
|
settings.SOCIAL_AUTH_APPLE_KEY,
|
||||||
|
settings.SOCIAL_AUTH_APPLE_SECRET,
|
||||||
|
]
|
||||||
|
if any(not setting for setting in obligatory_apple_settings_list):
|
||||||
|
return redirect_to_config_error("apple")
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
def is_native_flow(self) -> bool:
|
def is_native_flow(self) -> bool:
|
||||||
return self.strategy.request_data().get('native_flow', False)
|
return self.strategy.request_data().get('native_flow', False)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue