Beispiel #1
0
        default="+",
        description="Use international mobile phone number format with plus sign, country code, followed by your mobile number. Example: +1 555 123 1234.",
        widget=deform.widget.TextInputWidget(type='tel', template="textinput_placeholder")
    )


def has_pending_phone_number_request(request: Request, user: User):
    return request.dbsession.query(UserNewPhoneNumberConfirmation).filter_by(user=user, state=ManualConfirmationState.pending).one_or_none()


@view_config(
    context=UserWallet,
    route_name="wallet",
    name="new-phone-number",
    renderer="wallet/new_phone_number.html",
    decorator=throttled_view(limit=999999))
def new_phone_number(wallet, request):

    user = wallet.user

    if has_pending_phone_number_request(request, user):
        return httpexceptions.HTTPFound(request.resource_url(wallet, "confirm-phone-number"))

    schema = NewPhoneNumber().bind(request=request)

    b = deform.Button(name='process', title="Send verification code", css_class="btn-primary btn-block btn-lg")
    form = deform.Form(schema, buttons=(b,))

    # User submitted this form
    if request.method == "POST":
        if 'process' in request.POST:
Beispiel #2
0
 def configure_views(self):
     self.config.add_route("throttle_sample", "/")
     self.config.add_view(throttle_sample,
                          route_name="throttle_sample",
                          decorator=throttled_view(limit=1))
Beispiel #3
0
 def configure_views(self):
     self.config.add_route("throttle_sample", "/")
     self.config.add_view(throttle_sample, route_name="throttle_sample", decorator=throttled_view(limit=1))
        description="Please give your mobile phone number in international format using with country code prefix with plus sign notation. Example: +1 555 123 1234.",
        widget=deform.widget.TextInputWidget(size=6, maxlength=6, type='tel', template="textinput_placeholder")

    )


def has_pending_phone_number_request(request: Request, user: User):
    return request.dbsession.query(UserNewPhoneNumberConfirmation).filter_by(user=user, state=ManualConfirmationState.pending).one_or_none()


@view_config(
    context=UserWallet,
    route_name="wallet",
    name="new-phone-number",
    renderer="wallet/new_phone_number.html",
    decorator=throttled_view(limit=999999))
def new_phone_number(wallet, request):

    user = wallet.user

    if has_pending_phone_number_request(request, user):
        return httpexceptions.HTTPFound(request.resource_url(wallet, "confirm-phone-number"))

    schema = NewPhoneNumber().bind(request=request)

    b = deform.Button(name='process', title="Send verification code", css_class="btn-block btn-lg")
    form = deform.Form(schema, buttons=(b,))

    # User submitted this form
    if request.method == "POST":
        if 'process' in request.POST:
Beispiel #5
0
@simple_route("/login", route_name="login", renderer='magiclogin/login.html')
@include_in_sitemap(False)
def login(request: Request):
    """Replace the defaut login view with this simplified version."""
    settings = request.registry.settings
    social_logins = aslist(settings.get("websauna.social_logins", []))
    login_slogan = request.registry.settings.get("magiclogin.login_slogan")
    return locals()


@simple_route(
    "/login-email",
    route_name="login_email",
    renderer='magiclogin/login_email.html',
    decorator=throttled_view(setting="magiclogin.login_email_throttle"))
@include_in_sitemap(False)
def login_email(request: Request):
    """Ask user email to start email sign in process."""
    schema = AskEmailSchema().bind(request=request)
    button = deform.Button(name='confirm',
                           title="Email me a link to sign in",
                           css_class="btn btn-primary btn-block")
    form = deform.Form(schema, buttons=[button])

    # User submitted this form
    if request.method == "POST":
        if 'confirm' in request.POST:
            try:

                # Where to go after user clicks the link in the email.