Example #1
0
def register(request, template_name='registration/registration_form.html'):
    """
    Register method of account
    """
    from tcms.core.contrib.auth import get_using_backend
    from forms import RegistrationForm

    # Check the register is allowed by backend
    backend = get_using_backend()
    cr = getattr(backend, 'can_register') # can register
    if not cr:
        return HttpResponse(Prompt.render(
            request = request,
            info_type = Prompt.Alert,
            info = 'The backend is not allow to register.',
            next = request.REQUEST.get('next', reverse('tcms.core.views.index'))
        ))

    if request.method == 'POST':
        form = form = RegistrationForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            form.save()
            ak = form.set_active_key()

            # Send email to user if mail server availabel.
            if form.cleaned_data['email'] and settings.EMAIL_HOST:
                form.send_confirm_mail(request = request, active_key = ak)

                msg = 'Your accounts has been create, please check your mailbox for active.'
                return HttpResponse(Prompt.render(
                    request = request,
                    info_type = Prompt.Info,
                    info = msg,
                    next = request.REQUEST.get('next', reverse('tcms.core.views.index'))
                ))

            # If can not send email, prompt to user.
            msg = 'Your accounts has been create, but you need to contact admins to active your account.'
            if settings.ADMINS:
                msg += '<p>Following is the admin list</p><ul>'
                for admin in settings.ADMINS:
                    msg += '<li><a href="mailto:%s">%s</a></li>' % (admin[1], admin[0])
                msg += '</ul>'

            return HttpResponse(Prompt.render(
                request = request,
                info_type = Prompt.Info,
                info = msg,
                next = request.REQUEST.get('next', reverse('tcms.core.views.index'))
            ))
    else:
        form = RegistrationForm()

    context_data = {
        'form': form,
    }
    return render_to_response(template_name, context_data,
                              context_instance=RequestContext(request))
Example #2
0
File: views.py Project: thr27/Kiwi
def register(request, template_name='registration/registration_form.html'):
    """Register method of account"""

    request_data = request.GET or request.POST

    # Check that registration is allowed by backend
    backend = get_using_backend()
    cr = getattr(backend, 'can_register')  # can register
    if not cr:
        return HttpResponse(
            Prompt.render(request=request,
                          info_type=Prompt.Alert,
                          info='The backend is not allowed to register.',
                          next=request_data.get('next',
                                                reverse('core-views-index'))))

    if request.method == 'POST':
        form = RegistrationForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            form.save()
            ak = form.set_active_key()

            # Send email to user if mail server is available.
            if form.cleaned_data['email'] and settings.EMAIL_HOST:
                form.send_confirm_mail(request=request, active_key=ak)

                msg = 'Your account has been created, please check your ' \
                      'mailbox for confirmation.'
            else:
                msg = [
                    '<p>Your account has been created, but you need to contact '
                    'an administrator to active your account.</p>',
                ]
                # If can not send email, prompt to user.
                if settings.ADMINS:
                    msg.append('<p>Following is the admin list</p><ul>')
                    for name, email in settings.ADMINS:
                        msg.append(
                            '<li><a href="mailto:{}">{}</a></li>'.format(
                                email, name))
                    msg.append('</ul>')
                msg = ''.join(msg)

            return HttpResponse(
                Prompt.render(request=request,
                              info_type=Prompt.Info,
                              info=msg,
                              next=request.POST.get(
                                  'next', reverse('core-views-index'))))
    else:
        form = RegistrationForm()

    context_data = {
        'form': form,
    }
    return render(request, template_name, context_data)
Example #3
0
def register(request, template_name='registration/registration_form.html'):
    """Register method of account"""

    request_data = request.GET or request.POST

    # Check that registration is allowed by backend
    backend = get_using_backend()
    cr = getattr(backend, 'can_register')  # can register
    if not cr:
        return HttpResponse(Prompt.render(
            request=request,
            info_type=Prompt.Alert,
            info='The backend is not allowed to register.',
            next=request_data.get('next', reverse('tcms.core.views.index'))
        ))

    if request.method == 'POST':
        form = RegistrationForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            form.save()
            ak = form.set_active_key()

            # Send email to user if mail server is available.
            if form.cleaned_data['email'] and settings.EMAIL_HOST:
                form.send_confirm_mail(request=request, active_key=ak)

                msg = 'Your account has been created, please check your ' \
                      'mailbox for confirmation.'
            else:
                msg = [
                    '<p>Your account has been created, but you need to contact '
                    'an administrator to active your account.</p>',
                ]
                # If can not send email, prompt to user.
                if settings.ADMINS:
                    msg.append('<p>Following is the admin list</p><ul>')
                    for name, email in settings.ADMINS:
                        msg.append('<li><a href="mailto:{}">{}</a></li>'.format(email, name))
                    msg.append('</ul>')
                    msg = ''.join(msg)

            return HttpResponse(Prompt.render(
                request=request,
                info_type=Prompt.Info,
                info=msg,
                next=request.POST.get('next', reverse('tcms.core.views.index'))
            ))
    else:
        form = RegistrationForm()

    context_data = {
        'form': form,
    }
    return render_to_response(template_name, context_data,
                              context_instance=RequestContext(request))
Example #4
0
def register(request, template_name='registration/registration_form.html'):
    """Register method of account"""
    # Check that registration is allowed by backend
    backend = get_using_backend()
    can_register = getattr(backend, 'can_register')
    if not can_register:
        messages.add_message(
            request, messages.ERROR,
            _('This backend does not allow user registration'))
        return HttpResponseRedirect(reverse('tcms-login'))

    if request.method == 'POST':
        form = RegistrationForm(data=request.POST, files=request.FILES)
        if form.is_valid():
            new_user = form.save()
            activation_key = form.set_activation_key()
            # send a signal that new user has been registered
            USER_REGISTERED_SIGNAL.send(sender=form.__class__,
                                        request=request,
                                        user=new_user,
                                        backend=backend)

            # Send confirmation email to new user
            if settings.DEFAULT_FROM_EMAIL and settings.AUTO_APPROVE_NEW_USERS:
                form.send_confirm_mail(request=request,
                                       activation_key=activation_key)

                messages.add_message(
                    request, messages.INFO,
                    _('Your account has been created, please check your mailbox for confirmation'
                      ))
            else:
                messages.add_message(
                    request, messages.WARNING,
                    _('Your account has been created, but you need an administrator to activate it'
                      ))
                if settings.ADMINS:
                    messages.add_message(
                        request, messages.INFO,
                        _('Following is the administrator list'))
                    for name, email in settings.ADMINS:
                        messages.add_message(
                            request, messages.INFO,
                            '<a href="mailto:{}">{}</a>'.format(email, name))

            return HttpResponseRedirect(reverse('core-views-index'))
    else:
        form = RegistrationForm()

    context_data = {
        'form': form,
    }
    return render(request, template_name, context_data)
def auth_backend_processor(request):
    """Determine the be able to login/logout/register request """
    from tcms.core.contrib.auth import get_using_backend
    return { 'AUTH_BACKEND': get_using_backend() }