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
Beispiel #2
0
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')
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
def getAudio(request, audioType='mp3'):
    visualCaptcha = Captcha(Session(request.session))

    headers = {}
    result = visualCaptcha.streamAudio(headers, audioType)

    if result is False:
        return HttpResponse(result, headers, 404)

    return HttpResponse(result, headers)
Beispiel #6
0
def getAudio(request, audioType='mp3'):
    visualCaptcha = Captcha(Session(request.session))

    headers = {}
    result = visualCaptcha.streamAudio(headers, audioType)

    if result is False:
        return HttpResponse(result, headers, 404)

    return HttpResponse(result, headers)
Beispiel #7
0
def getImage(request, index):
    visualCaptcha = Captcha(Session(request.session))

    headers = {}
    result = visualCaptcha.streamImage(headers, index)

    if result is False:
        return HttpResponse(result, headers, 404)

    return HttpResponse(result, headers)
Beispiel #8
0
def getImage(request, index):
    visualCaptcha = Captcha(Session(request.session))

    headers = {}
    result = visualCaptcha.streamImage(
        headers, index, request.GET.get('retina'))

    if result is False:
        return HttpResponse(result, headers, 404)

    return HttpResponse(result, headers)
Beispiel #9
0
    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'}
Beispiel #11
0
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
Beispiel #12
0
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
Beispiel #13
0
    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)
Beispiel #14
0
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