Esempio n. 1
0
def confirm_registration(request, uidb64, token):
    AuthUser = djauth.get_user_model()  # noqa
    uid = django.utils.http.urlsafe_base64_decode(uidb64)
    try:
        user = AuthUser.objects.get(pk=uid)
        if user.is_active:  # this is only for new users
            raise PermissionDenied
    except AuthUser.DoesNotExist:
        raise PermissionDenied
    token_generator = django.contrib.auth.tokens.default_token_generator

    if token == INTERNAL_REGISTRATION_URL_TOKEN:
        session_token = request.session.get(INTERNAL_REGISTRATION_SESSION_TOKEN_KEY)
        if token_generator.check_token(user, session_token):
            if request.method == 'POST':
                form = forms.RegistrationConfirmationForm(
                    user=user,
                    token=session_token,
                    token_generator=token_generator,
                    data=request.POST,
                )
                if form.is_valid():
                    form.save()
                    return views_common.tracker_response(
                        request,
                        'tracker/confirm_registration_done.html',
                        {'user': form.user},
                    )
            else:
                form = forms.RegistrationConfirmationForm(
                    user=user,
                    token=session_token,
                    token_generator=token_generator,
                    initial={'userid': uid, 'username': user.username,},
                )
            return views_common.tracker_response(
                request,
                'tracker/confirm_registration.html',
                {'formuser': user, 'form': form,},
            )
    else:
        if token_generator.check_token(user, token):
            request.session[INTERNAL_REGISTRATION_SESSION_TOKEN_KEY] = token
            return HttpResponseRedirect(
                reverse(
                    'tracker:confirm_registration',
                    kwargs={'uidb64': uidb64, 'token': INTERNAL_REGISTRATION_URL_TOKEN},
                )
            )

    raise PermissionDenied
Esempio n. 2
0
def confirm_registration(request):
    AuthUser = djauth.get_user_model()
    uidb64 = request.GET.get('uidb64', None)
    uid = django.utils.http.urlsafe_base64_decode(uidb64) if uidb64 else None
    token = request.GET.get('token', None)
    user = None
    tokenGenerator = django.contrib.auth.tokens.default_token_generator
    try:
        user = AuthUser.objects.get(pk=uid)
    except:
        user = None
    if request.method == 'POST':
        form = forms.RegistrationConfirmationForm(
            user=user, token=token, token_generator=tokenGenerator, data=request.POST)
        if form.is_valid():
            form.save()
            return views_common.tracker_response(request, 'tracker/confirm_registration_done.html', {'user': form.user})
    else:
        form = forms.RegistrationConfirmationForm(user=user, token=token, token_generator=tokenGenerator, initial={
                                                  'userid': uid, 'authtoken': token, 'username': user.username if user else ''})
    return views_common.tracker_response(request, 'tracker/confirm_registration.html', {'formuser': user, 'tokenmatches': tokenGenerator.check_token(user, token) if token else False, 'form': form})