示例#1
0
def prepare_activation_url(email: str,
                           request: HttpRequest,
                           realm_creation: bool = False,
                           streams: Optional[List[Stream]] = None,
                           invited_as: Optional[int] = None) -> str:
    """
    Send an email with a confirmation link to the provided e-mail so the user
    can complete their registration.
    """
    prereg_user = create_preregistration_user(email, request, realm_creation)

    if streams is not None:
        prereg_user.streams.set(streams)

    if invited_as is not None:
        prereg_user.invited_as = invited_as
        prereg_user.save()

    confirmation_type = Confirmation.USER_REGISTRATION
    if realm_creation:
        confirmation_type = Confirmation.REALM_CREATION

    activation_url = create_confirmation_link(prereg_user, request.get_host(),
                                              confirmation_type)
    if settings.DEVELOPMENT and realm_creation:
        request.session['confirmation_key'] = {
            'confirmation_key': activation_url.split('/')[-1]
        }
    return activation_url
示例#2
0
def send_registration_completion_email(
        email: str,
        request: HttpRequest,
        realm_creation: bool = False,
        streams: Optional[List[Stream]] = None) -> None:
    """
    Send an email with a confirmation link to the provided e-mail so the user
    can complete their registration.
    """
    prereg_user = create_preregistration_user(email, request, realm_creation)

    if streams is not None:
        prereg_user.streams = streams
        prereg_user.save()

    confirmation_type = Confirmation.USER_REGISTRATION
    if realm_creation:
        confirmation_type = Confirmation.REALM_CREATION

    activation_url = create_confirmation_link(prereg_user, request.get_host(),
                                              confirmation_type)
    send_email('zerver/emails/confirm_registration',
               to_email=email,
               from_address=FromAddress.NOREPLY,
               context={'activate_url': activation_url})
    if settings.DEVELOPMENT and realm_creation:
        request.session['confirmation_key'] = {
            'confirmation_key': activation_url.split('/')[-1]
        }
示例#3
0
def prepare_activation_url(
    email: str,
    session: SessionBase,
    *,
    realm: Optional[Realm],
    realm_creation: bool = False,
    streams: Optional[Iterable[Stream]] = None,
    invited_as: Optional[int] = None,
) -> str:
    """
    Send an email with a confirmation link to the provided e-mail so the user
    can complete their registration.
    """
    prereg_user = create_preregistration_user(email, realm, realm_creation)

    if streams is not None:
        prereg_user.streams.set(streams)

    if invited_as is not None:
        prereg_user.invited_as = invited_as
        prereg_user.save()

    confirmation_type = Confirmation.USER_REGISTRATION
    if realm_creation:
        confirmation_type = Confirmation.REALM_CREATION

    activation_url = create_confirmation_link(prereg_user, confirmation_type)
    if settings.DEVELOPMENT and realm_creation:
        session["confirmation_key"] = {"confirmation_key": activation_url.split("/")[-1]}
    return activation_url
示例#4
0
def register_demo_development_realm(request: HttpRequest) -> HttpResponse:
    count = UserProfile.objects.count()
    name = f"user-{count}"
    email = f"{name}@zulip.com"
    realm_name = generate_demo_realm_name()
    realm_type = Realm.ORG_TYPES["business"]["id"]
    prereg = create_preregistration_user(email,
                                         None,
                                         realm_creation=True,
                                         password_required=False)
    activation_url = create_confirmation_link(prereg,
                                              Confirmation.REALM_CREATION)
    key = activation_url.split("/")[-1]
    # Need to add test data to POST request as it doesn't originally contain the required parameters
    modify_postdata(
        request,
        key=key,
        realm_name=realm_name,
        realm_type=realm_type,
        full_name=name,
        password="******",
        realm_subdomain=realm_name,
        terms="true",
        is_demo_organization="true",
    )

    return accounts_register(request)
示例#5
0
def register_development_user(request: HttpRequest) -> HttpResponse:
    realm = get_realm_from_request(request)
    if realm is None:
        return HttpResponseRedirect(
            f"{settings.EXTERNAL_URI_SCHEME}{settings.REALM_HOSTS['zulip']}/devtools/register_user/",
            status=307,
        )

    count = UserProfile.objects.count()
    name = f"user-{count}"
    email = f"{name}@zulip.com"
    prereg = create_preregistration_user(email,
                                         realm,
                                         realm_creation=False,
                                         password_required=False)
    activation_url = create_confirmation_link(prereg,
                                              Confirmation.USER_REGISTRATION)
    key = activation_url.split("/")[-1]
    # Need to add test data to POST request as it doesn't originally contain the required parameters
    modify_postdata(request,
                    key=key,
                    full_name=name,
                    password="******",
                    terms="true")

    return accounts_register(request)
def register_development_realm(request: HttpRequest) -> HttpResponse:
    count = UserProfile.objects.count()
    name = 'user-%d' % (count,)
    email = '*****@*****.**' % (name,)
    realm_name = 'realm-%d' % (count,)
    prereg = create_preregistration_user(email, request, realm_creation=True,
                                         password_required=False)
    activation_url = create_confirmation_link(prereg, request.get_host(),
                                              Confirmation.REALM_CREATION)
    key = activation_url.split('/')[-1]
    # Need to add test data to POST request as it doesnt originally contain the required parameters
    modify_postdata(request, key=key, realm_name=realm_name, full_name=name, password='******',
                    realm_subdomain=realm_name)

    return accounts_register(request)
def register_development_user(request: HttpRequest) -> HttpResponse:
    if get_subdomain(request) == '':
        request.META['HTTP_HOST'] = settings.REALM_HOSTS['zulip']
    count = UserProfile.objects.count()
    name = 'user-%d' % (count,)
    email = '*****@*****.**' % (name,)
    prereg = create_preregistration_user(email, request, realm_creation=False,
                                         password_required=False)
    activation_url = create_confirmation_link(prereg, request.get_host(),
                                              Confirmation.USER_REGISTRATION)
    key = activation_url.split('/')[-1]
    # Need to add test data to POST request as it doesnt originally contain the required parameters
    modify_postdata(request, key=key, full_name=name, password='******')

    return accounts_register(request)
示例#8
0
def send_registration_completion_email(email, request, realm_creation=False, streams=None):
    # type: (str, HttpRequest, bool, Optional[List[Stream]]) -> None
    """
    Send an email with a confirmation link to the provided e-mail so the user
    can complete their registration.
    """
    prereg_user = create_preregistration_user(email, request, realm_creation)

    if streams is not None:
        prereg_user.streams = streams
        prereg_user.save()

    activation_url = create_confirmation_link(prereg_user, request.get_host(), Confirmation.USER_REGISTRATION)
    send_email('zerver/emails/confirm_registration', to_email=email, from_address=FromAddress.NOREPLY,
               context={'activate_url': activation_url})
    if settings.DEVELOPMENT and realm_creation:
        request.session['confirmation_key'] = {'confirmation_key': activation_url.split('/')[-1]}
示例#9
0
def prepare_activation_url(email: str, request: HttpRequest,
                           realm_creation: bool=False,
                           streams: Optional[List[Stream]]=None) -> str:
    """
    Send an email with a confirmation link to the provided e-mail so the user
    can complete their registration.
    """
    prereg_user = create_preregistration_user(email, request, realm_creation)

    if streams is not None:
        prereg_user.streams.set(streams)

    confirmation_type = Confirmation.USER_REGISTRATION
    if realm_creation:
        confirmation_type = Confirmation.REALM_CREATION

    activation_url = create_confirmation_link(prereg_user, request.get_host(), confirmation_type)
    if settings.DEVELOPMENT and realm_creation:
        request.session['confirmation_key'] = {'confirmation_key': activation_url.split('/')[-1]}
    return activation_url
示例#10
0
def register_development_user(request: HttpRequest) -> HttpResponse:
    if get_subdomain(request) == "":
        request.META["HTTP_HOST"] = settings.REALM_HOSTS["zulip"]
    count = UserProfile.objects.count()
    name = f"user-{count}"
    email = f"{name}@zulip.com"
    prereg = create_preregistration_user(email,
                                         request,
                                         realm_creation=False,
                                         password_required=False)
    activation_url = create_confirmation_link(prereg,
                                              Confirmation.USER_REGISTRATION)
    key = activation_url.split("/")[-1]
    # Need to add test data to POST request as it doesn't originally contain the required parameters
    modify_postdata(request,
                    key=key,
                    full_name=name,
                    password="******",
                    terms="true")

    return accounts_register(request)