Beispiel #1
0
def get_redirect_url(request, redirect_field_name):
    redirect_url = settings.DEFAULT_REDIRECT_URL
    redirect_param_value = get_request_param(request, redirect_field_name)
    if redirect_param_value:
        if is_valid_redirect(urllib.parse.unquote(redirect_param_value)):
            redirect_url = redirect_param_value
    return redirect_url
Beispiel #2
0
    def get_context_data(self, **kwargs):

        ret = super(SignupView, self).get_context_data(**kwargs)

        form = ret['form']
        email = self.request.session.get('account_verified_email')

        if email:
            email_keys = ['email']
            if app_settings.SIGNUP_EMAIL_ENTER_TWICE:
                email_keys.append('email2')
            for email_key in email_keys:
                form.fields[email_key].initial = email

        login_url = passthrough_next_redirect_url(self.request,
                                                  reverse("account_login"),
                                                  self.redirect_field_name)
        redirect_field_name = self.redirect_field_name
        redirect_field_value = get_request_param(self.request,
                                                 redirect_field_name)

        ret.update({
            'login_url': login_url,
            'redirect_field_name': redirect_field_name,
            'redirect_field_value': redirect_field_value,
            'cart': get_cart(self.request),
        })

        return ret
Beispiel #3
0
    def get_email_confirmation_url(self, request, emailconfirmation):
        """
        Constructs the email confirmation (activation) url.
        """
        redirect_url = settings.DEFAULT_REDIRECT_URL

        redirect_param_value = get_request_param(request,
                                                 settings.REDIRECT_FIELD_NAME)
        if redirect_param_value:
            redirect_url = redirect_param_value

        email_confirmation_url = super().get_email_confirmation_url(
            request, emailconfirmation)

        if redirect_url:
            if is_valid_redirect(urllib.parse.unquote(redirect_url)):
                # This is to handle the case when user registered on one device
                # (e.g. desktop) and clicked 'confirm email' on another (e.g.
                # mobile) - if user is automatically logged in on confirm
                # (which will happen when clicking confirm on same machine)
                # login view will redirect to 'next', if not (when switching
                # browsers), user will have to log in and then will be
                # redirected
                login_url_with_next = get_url_with_redirect(
                    url=reverse('account_login'), redirect_url=redirect_url)
                email_confirmation_url = get_url_with_redirect(
                    url=email_confirmation_url,
                    redirect_url=login_url_with_next)
        return email_confirmation_url
Beispiel #4
0
    def get_context_data(self, **kwargs):

        ret = super(LoginView, self).get_context_data(**kwargs)
        signup_url = passthrough_next_redirect_url(self.request,
                                                   reverse('account_signup'),
                                                   self.redirect_field_name)

        redirect_field_value = get_request_param(self.request,
                                                 self.redirect_field_name)
        site = get_current_site(self.request)

        ret.update({
            'signup_url':
            signup_url,
            'site':
            site,
            'redirect_field_name':
            self.redirect_field_name,
            'redirect_field_value':
            redirect_field_value,
            'cart':
            get_cart(self.request),
            'cart_count':
            Cart_Item.objects.filter(cart=get_cart(self.request)).aggregate(
                Sum('quantity'))['quantity__sum'],
            'in_bar':
            get_in_barrels(),
            'wishlist_count':
            len(
                Wishlist_Item.objects.filter(
                    wishlist=get_wishlist(self.request))),
        })

        return ret
Beispiel #5
0
    def get_context_data(self, **kwargs):

        ret = super(LoginView, self).get_context_data(**kwargs)
        signup_url = passthrough_next_redirect_url(self.request,
                                                   reverse('account_signup'),
                                                   self.redirect_field_name)

        redirect_field_value = get_request_param(self.request,
                                                 self.redirect_field_name)
        site = get_current_site(self.request)

        ret.update({
            'signup_url': signup_url,
            'site': site,
            'redirect_field_name': self.redirect_field_name,
            'redirect_field_value': redirect_field_value,
            'cart': get_cart(self.request),
        })

        return ret
Beispiel #6
0
    def get_context_data(self, **kwargs):
        ret = super(SignupView, self).get_context_data(**kwargs)

        form = ret['form']
        email = self.request.session.get('account_verified_email')

        if email:
            email_keys = ['email']
            if app_settings.SIGNUP_EMAIL_ENTER_TWICE:
                email_keys.append('email2')
            for email_key in email_keys:
                form.fields[email_key].initial = email

        login_url = passthrough_next_redirect_url(self.request,
                                                  reverse("account_login"),
                                                  self.redirect_field_name)
        redirect_field_name = self.redirect_field_name
        redirect_field_value = get_request_param(self.request,
                                                 redirect_field_name)

        ret.update({
            'login_url':
            login_url,
            'redirect_field_name':
            redirect_field_name,
            'redirect_field_value':
            redirect_field_value,
            'cart':
            get_cart(self.request),
            'cart_count':
            Cart_Item.objects.filter(cart=get_cart(self.request)).aggregate(
                Sum('quantity'))['quantity__sum'],
            'in_bar':
            get_in_barrels(),
            'wishlist_count':
            len(
                Wishlist_Item.objects.filter(
                    wishlist=get_wishlist(self.request))),
        })

        return ret
Beispiel #7
0
 def get_redirect_url(self):
     redirect_to = get_request_param(self.request, self.redirect_field_name)
     if redirect_to and validate_next(redirect_to):
         return redirect_to
     return settings.LOGOUT_REDIRECT_URL