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))
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)
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))
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() }