def trySubmission(request): visualCaptcha = Captcha(Session(request.session)) frontendData = visualCaptcha.getFrontendData() # If an image field name was submitted, try to validate it if request.POST.get(frontendData['imageFieldName'], None) is not None: if visualCaptcha.validateImage( request.POST[frontendData['imageFieldName']]): response = HttpResponse(status=200) return redirect('/?status=validImage') else: response = HttpResponse(status=403) return redirect('/?status=failedImage') elif request.POST.get(frontendData['audioFieldName'], None) is not None: # We set lowercase to allow case-insensitivity , but it's # actually optional if visualCaptcha.validateAudio( request.POST[frontendData['audioFieldName']].lower()): response = HttpResponse(status=200) return redirect('/?status=validAudio') else: response = HttpResponse(status=403) return redirect('/?status=failedAudio') else: response = HttpResponse(status=500) return redirect('/?status=failedPost')
def trySubmission(request): visualCaptcha = Captcha(Session(request.session)) frontendData = visualCaptcha.getFrontendData() # If an image field name was submitted, try to validate it if request.POST.get(frontendData['imageFieldName'], None) is not None: if visualCaptcha.validateImage( request.POST[frontendData['imageFieldName']]): response = HttpResponse(status=200) return redirect('/?status=validImage') else: response = HttpResponse(status=403) return redirect('/?status=failedImage') elif request.POST.get(frontendData['audioFieldName'], None) is not None: # We set lowercase to allow case-insensitivity , but it's # actually optional if visualCaptcha.validateAudio( request.POST[frontendData['audioFieldName']].lower()): response = HttpResponse(status=200) return redirect('/?status=validAudio') else: response = HttpResponse(status=403) return redirect('/?status=failedAudio') else: response = HttpResponse(status=500) return redirect('/?status=failedPost') return response
def start(request, howMany): visualCaptcha = Captcha(Session(request.session)) visualCaptcha.generate(howMany) jsonFrontendData = JSONRenderer().render(visualCaptcha.getFrontendData()) response = HttpResponse(content=jsonFrontendData) response['Access-Control-Allow-Origin'] = '*' return response
def trySubmission(self): if self.request.arguments["valid"][0] == "false": return False visualCaptcha = Captcha(Session(self.session.session)) frontendData = visualCaptcha.getFrontendData() if frontendData is None: return False if frontendData['imageFieldName'] == self.request.arguments["name"][0]: imageFieldName = self.request.arguments["value"][0] return visualCaptcha.validateImage(imageFieldName) elif frontendData['audioFieldName'] == self.request.arguments["name"][ 0]: audioFieldName = self.request.arguments["value"][0] return visualCaptcha.validateAudio(audioFieldName) else: return False
def validate_captcha(request): visualCaptcha = Captcha(Session(request.session)) frontendData = visualCaptcha.getFrontendData() # If an image field name was submitted, try to validate it if frontendData['imageFieldName'] in request.POST: if visualCaptcha.validateImage(request.POST[frontendData['imageFieldName']]): return {'is_valid': True, 'message': 'Image was valid !'} else: return {'is_valid': False, 'message': 'Image was not valid !'} if frontendData['audioFieldName'] in request.POST: # We set lowercase to allow case-insensitivity, but it's actually optional if visualCaptcha.validateAudio(request.POST[frontendData['audioFieldName']].lower()): return {'is_valid': True, 'message': 'Accessibility answer was valid !'} else: return {'is_valid': True, 'message': 'Accessibility answer was NOT valid !'} return {"is_valid": False, 'message': 'Captcha is required, please try again'}
def trySubmission(request): visualCaptcha = Captcha(Session(request.session)) frontendData = visualCaptcha.getFrontendData() # SpamBot detection using mouse track data # if request.POST.get(frontendData['userInteractions'], None) is not None: if None: status = visualCaptcha.validateBehavior( request.POST[frontendData['userInteractions']]) if not status: response = HttpResponse(status=403) if status == 'REPLAY': return redirect('/?status=failedReplay') elif status == 'ROBOT': return redirect('/?status=failedROBOT') else: return redirect('/?status=failedUndefined') # If an image field name was submitted, try to validate it if request.POST.get(frontendData['imageFieldName'], None) is not None: if visualCaptcha.validateImage( request.POST[frontendData['imageFieldName']]): response = HttpResponse(status=200) return redirect('/?status=validImage') else: response = HttpResponse(status=403) return redirect('/?status=failedImage') elif request.POST.get(frontendData['audioFieldName'], None) is not None: # We set lowercase to allow case-insensitivity , but it's # actually optional if visualCaptcha.validateAudio( request.POST[frontendData['audioFieldName']].lower()): response = HttpResponse(status=200) return redirect('/?status=validAudio') else: response = HttpResponse(status=403) return redirect('/?status=failedAudio') else: response = HttpResponse(status=500) return redirect('/?status=failedPost') return response
def get(self, cmd, arg=None): if cmd == "start": visualCaptcha = Captcha(Session(self.session.session)) visualCaptcha.generate(int(arg)) self.write(visualCaptcha.getFrontendData()) elif cmd == "audio": visualCaptcha = Captcha(Session(self.session.session)) headers = {} result = visualCaptcha.streamAudio(headers, 'mp3') self.write(result) elif cmd == "image": visualCaptcha = Captcha(Session(self.session.session)) headers = {} result = visualCaptcha.streamImage(headers, int(arg)) self.write(result)
def trySubmission(request): visualCaptcha = Captcha(Session(request.session)) frontendData = visualCaptcha.getFrontendData() # If an image field name was submitted, try to validate it if request.POST.get(frontendData['imageFieldName'], None) is not None: if visualCaptcha.validateImage( request.POST[frontendData['imageFieldName']]): name = request.POST.get('name', None) email = request.POST.get('email', None) subject = request.POST.get('subject', None) message = request.POST.get('message', None) status = False html_message = "" try: validate_email(email) except ValidationError: error(request, "Email address not valid!") return HttpResponseRedirect(reverse('contact-us')) if message is not None and name is not None: #Check who the email is intended for sent_email = Email(sender=name, email=email, subject=subject, message=message) sent_email.save() er = EmailRecipient.objects.all() to_list = er.values_list('email', flat=True) html_message = create_email_message(email, message, name) #Create the html message to be sent via email status = send_email(html_message, settings.EMAIL_HOST_USER, to_list, subject) if status: info( request, "Success! We have received your email and will respond ASAP." ) else: error(request, "An error occurned. Please try again.") return HttpResponseRedirect(reverse('contact-us')) else: error(request, 'Please fill in all the fields') return HttpResponseRedirect(reverse('contact-us')) #response = HttpResponse(status=200) #return redirect('/mamase/contact/?status=validImage') else: response = HttpResponse(status=403) return redirect('/mamase/contact/?status=failedImage') elif request.POST.get(frontendData['audioFieldName'], None) is not None: # We set lowercase to allow case-insensitivity , but it's # actually optional if visualCaptcha.validateAudio( request.POST[frontendData['audioFieldName']].lower()): name = request.POST.get('name', None) email = request.POST.get('email', None) subject = request.POST.get('subject', None) message = request.POST.get('message', None) status = False html_message = "" try: validate_email(email) except ValidationError: error(request, "Email address not valid!") return HttpResponseRedirect(reverse('contact-us')) if message is not None and name is not None: #Check who the email is intended for sent_email = Email(sender=name, email=email, subject=subject, message=message) sent_email.save() er = EmailRecipient.objects.all() to_list = er.values_list('email', flat=True) html_message = create_email_message(email, message, name) #Create the html message to be sent via email status = send_email(html_message, settings.EMAIL_HOST_USER, to_list, subject) if status: info( request, "Success! We have received your email and will respond ASAP." ) else: error(request, "An error occurned. Please try again.") return HttpResponseRedirect(reverse('contact-us')) else: error(request, 'Please fill in all the fields') return HttpResponseRedirect(reverse('contact-us')) #response = HttpResponse(status=200) #return redirect('/mamase/contact/?status=validAudio') else: response = HttpResponse(status=403) return redirect('/mamase/contact/?status=failedAudio') else: response = HttpResponse(status=500) return redirect('/mamase/contact/?status=failedPost') return response
def trySubmission(request): visualCaptcha = Captcha(Session(request.session)) frontendData = visualCaptcha.getFrontendData() # If an image field name was submitted, try to validate it if request.POST.get(frontendData['imageFieldName'], None) is not None: if visualCaptcha.validateImage(request.POST[frontendData['imageFieldName']]): name = request.POST.get('name', None) email = request.POST.get('email', None) subject = request.POST.get('subject', None) message = request.POST.get('message', None) status = False html_message = "" try: validate_email(email) except ValidationError: error(request, "Email address not valid!") return HttpResponseRedirect(reverse('contact-us')) if message is not None and name is not None: #Check who the email is intended for sent_email = Email(sender=name, email=email, subject=subject, message=message) sent_email.save() er = EmailRecipient.objects.all() to_list = er.values_list('email', flat=True) html_message = create_email_message(email, message, name) #Create the html message to be sent via email status = send_email(html_message, settings.EMAIL_HOST_USER, to_list, subject) if status: info(request, "Success! We have received your email and will respond ASAP.") else: error(request, "An error occurned. Please try again.") return HttpResponseRedirect(reverse('contact-us')) else: error(request, 'Please fill in all the fields') return HttpResponseRedirect(reverse('contact-us')) #response = HttpResponse(status=200) #return redirect('/mamase/contact/?status=validImage') else: response = HttpResponse(status=403) return redirect('/mamase/contact/?status=failedImage') elif request.POST.get(frontendData['audioFieldName'], None) is not None: # We set lowercase to allow case-insensitivity , but it's # actually optional if visualCaptcha.validateAudio(request.POST[frontendData['audioFieldName']].lower()): name = request.POST.get('name', None) email = request.POST.get('email', None) subject = request.POST.get('subject', None) message = request.POST.get('message', None) status = False html_message = "" try: validate_email(email) except ValidationError: error(request, "Email address not valid!") return HttpResponseRedirect(reverse('contact-us')) if message is not None and name is not None: #Check who the email is intended for sent_email = Email(sender=name, email=email, subject=subject, message=message) sent_email.save() er = EmailRecipient.objects.all() to_list = er.values_list('email', flat=True) html_message = create_email_message(email, message, name) #Create the html message to be sent via email status = send_email(html_message, settings.EMAIL_HOST_USER, to_list, subject) if status: info(request, "Success! We have received your email and will respond ASAP.") else: error(request, "An error occurned. Please try again.") return HttpResponseRedirect(reverse('contact-us')) else: error(request, 'Please fill in all the fields') return HttpResponseRedirect(reverse('contact-us')) #response = HttpResponse(status=200) #return redirect('/mamase/contact/?status=validAudio') else: response = HttpResponse(status=403) return redirect('/mamase/contact/?status=failedAudio') else: response = HttpResponse(status=500) return redirect('/mamase/contact/?status=failedPost') return response