Exemple #1
0
def register(request,
             success_url=None,
             form_class=RegistrationForm,
             profile_callback=None,
             template_name='registration/registration_form.html',
             extra_context=None):
    if 'INVITE_MODE' in dir(settings) and settings.INVITE_MODE:
        if 'invitation_key' in request.REQUEST \
            and is_key_valid(request.REQUEST['invitation_key']):
            if extra_context is None:
                extra_context = {
                    'invitation_key': request.REQUEST['invitation_key']
                }
            else:
                extra_context.update({'invitation_key': invitation_key})
            return registration_register(request, success_url, form_class,
                                         profile_callback, template_name,
                                         extra_context)
        else:
            return direct_to_template(request,
                                      'invitation/wrong_invitation_key.html')
    else:
        return registration_register(request, success_url, form_class,
                                     profile_callback, template_name,
                                     extra_context)
Exemple #2
0
def register(request, backend, success_url=None,
            form_class=RegistrationForm,
            disallowed_url='registration_disallowed',
            post_registration_redirect=None,
            template_name=registration_template,
            wrong_template_name='invitation/wrong_invitation_key.html',
            extra_context=None):
    
    extra_context = extra_context is not None and extra_context.copy() or {}
    if getattr(settings, 'INVITE_MODE', False):
        invitation_key = request.REQUEST.get('invitation_key', False)
        if invitation_key:
            extra_context.update({'invitation_key': invitation_key})
            if is_key_valid(invitation_key):
                print '----register key is valid'
                return registration_register(request, backend, success_url,
                                            form_class, disallowed_url,
                                            template_name, extra_context)
            else:
                extra_context.update({'invalid_key': True})
        else:
            extra_context.update({'no_key': True})
        return render(request, wrong_template_name, extra_context)
    else:
        return registration_register(request, backend, success_url, form_class,
                                     disallowed_url, template_name, extra_context)
Exemple #3
0
def register(request, backend, success_url=None,
            form_class=RegistrationForm,
            disallowed_url='registration_disallowed',
            post_registration_redirect=None,
            template_name=registration_template,
            wrong_template_name='invitation/wrong_invitation_key.html',
            extra_context=None):
    
    extra_context = extra_context is not None and extra_context.copy() or {}
    if getattr(settings, 'INVITE_MODE', False):
        invitation_key = request.REQUEST.get('invitation_key', False)
        if invitation_key:
            extra_context.update({'invitation_key': invitation_key})
            if is_key_valid(invitation_key):
                return registration_register(request, backend, success_url,
                                            form_class, disallowed_url,
                                            template_name, extra_context)
            else:
                extra_context.update({'invalid_key': True})
        else:
            extra_context.update({'no_key': True})
        return render(request, wrong_template_name, extra_context)
    else:
        return registration_register(request, backend, success_url, form_class,
                                     disallowed_url, template_name, extra_context)
Exemple #4
0
def register(
    request,
    backend,
    success_url=None,
    form_class=None,
    disallowed_url='registration_disallowed',
    template_name='registration/registration_form.html',
    wrong_template_name='invitation/wrong_invitation_key.html',
    extra_context={
        'ADMIN_MAIL': settings.ADMIN_MAIL,
        'INVITATION_MAIL': settings.INVITATION_MAIL,
    }):
    extra_context = extra_context is not None and extra_context.copy() or {}
    if getattr(settings, 'INVITE_MODE', False):
        invitation_key = request.REQUEST.get('invitation_key', False)
        if invitation_key:
            extra_context.update({'invitation_key': invitation_key})
            if is_key_valid(invitation_key):
                return registration_register(request, backend, success_url,
                                             form_class, disallowed_url,
                                             template_name, extra_context)
            else:
                extra_context.update({'invalid_key': True})
        else:
            extra_context.update({'no_key': True})
        return direct_to_template(request, wrong_template_name, extra_context)
    else:
        return registration_register(request, backend, success_url, form_class,
                                     disallowed_url, template_name,
                                     extra_context)
Exemple #5
0
def register(
    request,
    backend,
    success_url=None,
    form_class=RegistrationForm,
    disallowed_url="registration_disallowed",
    post_registration_redirect=None,
    template_name="registration/registration_form.html",
    wrong_template_name="invitation/wrong_invitation_key.html",
    extra_context=None,
):
    extra_context = extra_context is not None and extra_context.copy() or {}
    if getattr(settings, "INVITE_MODE", True):
        invitation_key = request.REQUEST.get("invitation_key", False)
        if invitation_key:
            extra_context.update({"invitation_key": invitation_key})
            if is_key_valid(invitation_key):
                return registration_register(
                    request, backend, success_url, form_class, disallowed_url, template_name, extra_context
                )
            else:
                extra_context.update({"invalid_key": True})
        else:
            extra_context.update({"no_key": True})
        return direct_to_template(request, wrong_template_name, extra_context)
    else:
        return registration_register(
            request, backend, success_url, form_class, disallowed_url, template_name, extra_context
        )
Exemple #6
0
def register(request, backend, success_url=None, form_class=None,
             disallowed_url='registration_disallowed',
             template_name='registration/registration_form.html',
             wrong_template_name='invitation/wrong_invitation_key.html',
             extra_context={
                'ADMIN_MAIL': settings.ADMIN_MAIL,
                'INVITATION_MAIL': settings.INVITATION_MAIL,
            }):
    extra_context = extra_context is not None and extra_context.copy() or {}
    if getattr(settings, 'INVITE_MODE', False):
        invitation_key = request.REQUEST.get('invitation_key', False)
        if invitation_key:
            extra_context.update({'invitation_key': invitation_key})
            if is_key_valid(invitation_key):
                return registration_register(request, backend, success_url,
                                            form_class, disallowed_url,
                                            template_name, extra_context)
            else:
                extra_context.update({'invalid_key': True})
        else:
            extra_context.update({'no_key': True})
        return direct_to_template(request, wrong_template_name, extra_context)
    else:
        return registration_register(request, backend, success_url, form_class,
                                     disallowed_url, template_name, extra_context)
Exemple #7
0
def register(request, backend, success_url=None, form_class=None,
            disallowed_url='registration_disallowed',
            template_name='registration/registration_form.html',
            wrong_template_name='invitation/wrong_invitation_key.html',
            extra_context=None, initial_form_data=None):

    extra_context = extra_context is not None and extra_context.copy() or {}
    initial_form_data = initial_form_data is not None and initial_form_data.copy() or {}

    try:
        invitation_key = request.session.get('invitation_key', None)
        invitation_email = request.session.get('invitation_email', '')
        if getattr(settings, 'INVITE_MODE', False):
            if invitation_key is None:
                raise InvalidInvitationError('Invitation not valid')
            elif not invitation_key.is_usable():
                raise InvalidInvitationError('Invitation not usable')

            if getattr(settings, 'INVITE_MODE_STRICT', False):
                if not invitation_key.validate_email(invitation_email):
                    raise InvalidInvitationError('E-mail does not match invitation')
                initial_form_data['email'] = invitation_email
        
        if 'email' not in initial_form_data:
            initial_form_data['email'] = invitation_email

        extra_context['invitation_key'] = invitation_key
        extra_context['invitation_email'] = invitation_email
        return registration_register(request, backend, success_url,
                                     form_class, disallowed_url,
                                     template_name, extra_context,
                                     initial_form_data)
    except InvalidInvitationError:
        return HttpResponseRedirect(reverse('invitation_invited'))
Exemple #8
0
def register(request, success_url=None,
            form_class=RegistrationForm, profile_callback=None,
            template_name='registration/registration_form.html',
            extra_context=None):
    if 'INVITE_MODE' in settings.get_all_members() and settings.INVITE_MODE:
        if 'invitation_key' in request.REQUEST \
            and is_key_valid(request.REQUEST['invitation_key']):
            if extra_context is None:
                extra_context = {'invitation_key': request.REQUEST['invitation_key']}
            else:
                extra_context.update({'invitation_key': invitation_key})
            return registration_register(request, success_url, form_class, 
                        profile_callback, template_name, extra_context)
        else:
            return direct_to_template(request, 'invitation/wrong_invitation_key.html')
    else:
        return registration_register(request, success_url, form_class, 
                            profile_callback, template_name, extra_context)
Exemple #9
0
def register(request, success_url=None,
            form_class=RegistrationForm, profile_callback=None,
            backend="registration.backends.default.DefaultBackend",
            template_name='registration/registration_form.html',
            extra_context=None):
    if hasattr(settings, 'INVITE_MODE') and settings.INVITE_MODE:
        if 'invitation_key' in request.REQUEST \
            and is_key_valid(request.REQUEST['invitation_key']):
            if extra_context is None:
                extra_context = {'invitation_key': request.REQUEST['invitation_key']}
            else:
                extra_context.update({'invitation_key': invitation_key})
            print success_url
            return registration_register(request, backend, success_url, form_class,
                        profile_callback, template_name, extra_context)
        else:
            return direct_to_template(request, 'invitation/wrong_invitation_key.html')
    else:
        return registration_register(request, backend, success_url, form_class,
                            profile_callback, template_name, extra_context)
Exemple #10
0
def invited_register(request, backend, invitation_key, success_url=None,
            form_class=RegistrationForm,
            disallowed_url='registration_disallowed',
            post_registration_redirect=None,
            template_name='registration/registration_form.html',
            wrong_template_name='invitations/wrong_invitation_key.html',
            extra_context=None):
    extra_context = extra_context is not None and extra_context.copy() or {}
    if getattr(settings, 'INVITE_MODE', False):
        if invitation_key:
            extra_context.update({'invitation_key': invitation_key})
            # if key is valid
            if is_key_valid(invitation_key):
                key_object = get_key(invitation_key)
                # if email is assigned to an access content_object 
                # but not user - if user is assigned then this invitation has
                # already been accepted
                if ((key_object.content_object and \
                        key_object.content_object.email) and not \
                        key_object.content_object.user):

                    extra_context.update(
                            {'email': key_object.content_object.email})

                    if request.POST:
                        backend = get_backend(backend)
                        form = form_class(data=request.POST, files=request.FILES)
                        if form.is_valid():
                            new_user = backend.register(request, **extra_context)
                            to, args, kwargs = backend.post_registration_redirect(
                                    request,
                                    new_user,
                                    invitation_key=invitation_key)

                            messages.success(request, _("You've been registered and logged in."))                            
                            return redirect(to, *args, **kwargs)
                    else:
                        form = form_class()
                    extra_context.update({'form': form})

                    return render(request, template_name, extra_context)

                #return registration_register(request, backend, success_url,
                #                            form_class, disallowed_url,
                #                            template_name, extra_context)
            extra_context.update({'invalid_key': True})
        else:
            extra_context.update({'no_key': True})
        return render(request, wrong_template_name, extra_context)
    else:
        return registration_register(request, backend, success_url, form_class,
                                     disallowed_url, template_name, extra_context)
Exemple #11
0
def register_invited(request):
    invitation_code = request.GET.get('code', None)
    if invitation_code and Invitation.objects.is_valid_code(invitation_code):
        backend = 'website.registration_backends.RegistrationByInvitation'
        success_url = 'home'
        form_class = InviteRegistrationForm
        disallowed_url = 'registration_disallowed'  #Default
        post_registration_redirect = None  #Default
        template_name = 'registration/register_invited.html'
        return registration_register(request, backend, success_url, form_class,
                                     disallowed_url, template_name)
    else:
        return render(request, 'registration/invalid_invitation_code.html')
Exemple #12
0
def register(request,
             backend,
             success_url=None,
             form_class=None,
             disallowed_url='registration_disallowed',
             template_name='registration/registration_form.html',
             wrong_template_name='invitation/wrong_invitation_key.html',
             extra_context=None,
             initial_form_data=None):

    extra_context = extra_context is not None and extra_context.copy() or {}
    initial_form_data = initial_form_data is not None and initial_form_data.copy(
    ) or {}

    try:
        invitation_key = request.session.get('invitation_key', None)
        invitation_email = request.session.get('invitation_email', '')
        if getattr(settings, 'INVITE_MODE', False):
            if invitation_key is None:
                raise InvalidInvitationError('Invitation not valid')
            elif not invitation_key.is_usable():
                raise InvalidInvitationError('Invitation not usable')

            if getattr(settings, 'INVITE_MODE_STRICT', False):
                if not invitation_key.validate_email(invitation_email):
                    raise InvalidInvitationError(
                        'E-mail does not match invitation')
                initial_form_data['email'] = invitation_email

        if 'email' not in initial_form_data:
            initial_form_data['email'] = invitation_email

        extra_context['invitation_key'] = invitation_key
        extra_context['invitation_email'] = invitation_email
        return registration_register(request, backend, success_url, form_class,
                                     disallowed_url, template_name,
                                     extra_context, initial_form_data)
    except InvalidInvitationError:
        return HttpResponseRedirect(reverse('invitation_invited'))