mirror of https://github.com/zulip/zulip.git
423aebf98e
The way the flow goes now is this: 1. The user initiaties login via "Billing" in the gear menu. 2. That takes them to `/self-hosted-billing/` (possibly with a `next_page` param if we use that for some gear menu options). 3. The server queries the bouncer to give the user a link with a signed access token. 4. The user is redirected to that link (on `selfhosting.zulipchat.com`). Now we have two cases, either the user is logging in for the first time and already did in the past. If this is the first time, we have: 5. The user is asked to fill in their email in a form that's shown, pre-filled with the value provided inside the signed access token. They POST this to the next endpoint. 6. The next endpoint sends a confirmation email to that address and asks the user to go check their email. 7. The user clicks the link in their email is taken to the from_confirmation endpoint. 8. Their initial RemoteBillingUser is created, a new signed link like in (3) is generated and they're transparently taken back to (4), where now that they have a RemoteBillingUser, they're handled just like a user who already logged in before: If the user already logged in before, they go straight here: 9. "Confirm login" page - they're shown their information (email and full_name), can update their full name in the form if they want. They also accept ToS here if necessary. They POST this form back to the endpoint and finally have a logged in session. 10. They're redirected to billing (or `next_page`) now that they have access. |
||
---|---|---|
.. | ||
0001_initial.py | ||
0002_remote_zulip_server.py | ||
0003_add_default_for_remotezulipserver_last_updated_field.py | ||
0004_remove_deployment_model.py | ||
0005_remotepushdevicetoken_fix_uniqueness.py | ||
0006_customer.py | ||
0007_remotezulipserver_fix_uniqueness.py | ||
0008_customer_billing_user.py | ||
0009_plan.py | ||
0010_billingprocessor.py | ||
0011_customer_has_billing_relationship.py | ||
0012_coupon.py | ||
0013_remove_customer_billing_user.py | ||
0014_cleanup_pushdevicetoken.py | ||
0015_delete_billing.py | ||
0016_remote_counts.py | ||
0017_installationcount_indexes.py | ||
0018_remoterealmauditlog.py | ||
0019_remotezulipserver_plan_type.py | ||
0020_remotezulipserverauditlog.py | ||
0021_alter_remotezulipserver_uuid.py | ||
0022_remotezulipserver_create_audit_log_backfill.py | ||
0023_remotezulipserver_deactivated.py | ||
0024_remotepushdevicetoken_user_uuid.py | ||
0025_alter_remotepushdevicetoken_user_id_drop_index.py | ||
0026_auditlog_models_extra_data_json.py | ||
0027_backfill_remote_realmauditlog_extradata_to_json_field.py | ||
0028_rename_extradatajson_remoteauditlog_extra_data.py | ||
0029_update_remoterealm_indexes.py | ||
0030_alter_remoteinstallationcount_remote_id.py | ||
0031_alter_remoteinstallationcount_remote_id_and_more.py | ||
0032_remotepushdevicetoken_backfill_ios_app_id.py | ||
0033_remoterealm.py | ||
0034_remoterealmauditlog_remote_realm_and_more.py | ||
0035_remoterealmcount_remote_realm_and_more.py | ||
0036_remotezulipserver_last_version.py | ||
0037_alter_remoteinstallationcount_unique_together_and_more.py | ||
0038_unique_server_remote_id.py | ||
0039_remoterealm_org_type.py | ||
0040_remoterealm_authentication_methods_remoterealm_name.py | ||
0041_remotezulipserver_org_type.py | ||
0042_alter_remoterealmauditlog_realm_id.py | ||
0043_remotepushdevicetoken_remote_realm.py | ||
0044_remoterealmbillinguser.py | ||
0045_remoterealmauditlog_zilencer_remoterealmauditlog_server_realm_and_more.py | ||
0046_remotezulipserver_last_audit_log_update.py | ||
0047_preregistrationremoteserverbillinguser_and_more.py | ||
0048_remotezulipserver_last_api_feature_level.py | ||
0049_alter_remoterealmbillinguser_unique_together_and_more.py | ||
__init__.py |