mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
remote_upgrade_page: Add /upgrade URL for self hosted realms.
This commit is contained in:
@@ -6,7 +6,9 @@ from django.conf import settings
|
||||
from django.db import transaction
|
||||
from django.http import HttpRequest, HttpResponse, HttpResponseRedirect
|
||||
from django.shortcuts import render
|
||||
from pydantic import Json
|
||||
|
||||
from corporate.lib.remote_billing_util import get_remote_realm_from_session
|
||||
from corporate.lib.stripe import (
|
||||
VALID_BILLING_MODALITY_VALUES,
|
||||
VALID_BILLING_SCHEDULE_VALUES,
|
||||
@@ -14,15 +16,21 @@ from corporate.lib.stripe import (
|
||||
BillingError,
|
||||
InitialUpgradeRequest,
|
||||
RealmBillingSession,
|
||||
RemoteRealmBillingSession,
|
||||
UpgradeRequest,
|
||||
)
|
||||
from corporate.lib.support import get_support_url
|
||||
from corporate.models import CustomerPlan, ZulipSponsorshipRequest
|
||||
from zerver.actions.users import do_change_is_billing_admin
|
||||
from zerver.decorator import require_organization_member, zulip_login_required
|
||||
from zerver.decorator import (
|
||||
require_organization_member,
|
||||
self_hosting_management_endpoint,
|
||||
zulip_login_required,
|
||||
)
|
||||
from zerver.lib.request import REQ, has_request_variables
|
||||
from zerver.lib.response import json_success
|
||||
from zerver.lib.send_email import FromAddress, send_email
|
||||
from zerver.lib.typed_endpoint import PathOnly, typed_endpoint
|
||||
from zerver.lib.validator import check_bool, check_int, check_string_in
|
||||
from zerver.models import UserProfile, get_org_type_display_name
|
||||
|
||||
@@ -102,6 +110,29 @@ def upgrade_page(
|
||||
return response
|
||||
|
||||
|
||||
@self_hosting_management_endpoint
|
||||
@typed_endpoint
|
||||
def remote_realm_upgrade_page(
|
||||
request: HttpRequest,
|
||||
*,
|
||||
realm_uuid: PathOnly[str],
|
||||
manual_license_management: Json[bool] = False,
|
||||
) -> HttpResponse: # nocoverage
|
||||
remote_realm = get_remote_realm_from_session(request, realm_uuid)
|
||||
initial_upgrade_request = InitialUpgradeRequest(
|
||||
manual_license_management=manual_license_management,
|
||||
tier=CustomerPlan.STANDARD,
|
||||
)
|
||||
billing_session = RemoteRealmBillingSession(remote_realm)
|
||||
redirect_url, context = billing_session.get_initial_upgrade_context(initial_upgrade_request)
|
||||
|
||||
if redirect_url:
|
||||
return HttpResponseRedirect(redirect_url)
|
||||
|
||||
response = render(request, "corporate/upgrade.html", context=context)
|
||||
return response
|
||||
|
||||
|
||||
class SponsorshipRequestForm(forms.Form):
|
||||
website = forms.URLField(max_length=ZulipSponsorshipRequest.MAX_ORG_URL_LENGTH, required=False)
|
||||
organization_type = forms.IntegerField()
|
||||
|
Reference in New Issue
Block a user