mirror of https://github.com/zulip/zulip.git
auth: add is_signup option to login_or_register_remote_user.
This commit is contained in:
parent
9aaf175ec6
commit
ce3974b40e
|
@ -83,17 +83,36 @@ def redirect_to_subdomain_login_url():
|
|||
return HttpResponseRedirect(redirect_url)
|
||||
|
||||
def login_or_register_remote_user(request, remote_username, user_profile, full_name='',
|
||||
invalid_subdomain=False, mobile_flow_otp=None):
|
||||
invalid_subdomain=False, mobile_flow_otp=None,
|
||||
is_signup=False):
|
||||
# type: (HttpRequest, Text, UserProfile, Text, bool, Optional[str]) -> HttpResponse
|
||||
if invalid_subdomain:
|
||||
# Show login page with an error message
|
||||
return redirect_to_subdomain_login_url()
|
||||
|
||||
if user_profile is None or user_profile.is_mirror_dummy:
|
||||
# Since execution has reached here, the client specified a remote user
|
||||
# but no associated user account exists. Send them over to the
|
||||
# PreregistrationUser flow.
|
||||
return maybe_send_to_registration(request, remote_user_to_email(remote_username), full_name)
|
||||
# Since execution has reached here, we have verified the user
|
||||
# controls an email address (remote_username) but there's no
|
||||
# associated Zulip user account.
|
||||
if is_signup:
|
||||
# If they're trying to sign up, send them over to the PreregistrationUser flow.
|
||||
return maybe_send_to_registration(request, remote_user_to_email(remote_username), full_name)
|
||||
|
||||
# Otherwise, we send them to a special page that asks if they
|
||||
# want to register or provided the wrong email and want to go back.
|
||||
try:
|
||||
validate_email(remote_username)
|
||||
invalid_email = False
|
||||
except ValidationError:
|
||||
# If email address is invalid, we can't send the user
|
||||
# PreregistrationUser flow.
|
||||
invalid_email = True
|
||||
context = {'full_name': full_name,
|
||||
'email': remote_username,
|
||||
'invalid_email': invalid_email}
|
||||
return render(request,
|
||||
'zerver/confirm_continue_registration.html',
|
||||
context=context)
|
||||
|
||||
if mobile_flow_otp is not None:
|
||||
# For the mobile Oauth flow, we send the API key and other
|
||||
|
|
Loading…
Reference in New Issue