Example #1
0
def reset_confirm_pin(request):
    form = PinForm(data=request.DATA)
    if form.is_valid():
        buyer = form.cleaned_data['buyer']
        confirmed = False

        if buyer.locked_out:
            log_cef('Attempted access to locked out account: %s' % buyer.uuid,
                    request,
                    severity=1)

        else:
            if buyer.new_pin == form.cleaned_data['pin']:
                buyer.pin = form.cleaned_data['pin']
                buyer.new_pin = None
                buyer.needs_pin_reset = False
                buyer.pin_confirmed = True
                buyer.pin_was_locked_out = False
                buyer.save()
                confirmed = True

        output = ConfirmedSerializer(instance=buyer, confirmed=confirmed)
        return Response(output.data)

    raise FormError(form.errors)
Example #2
0
def verify_pin(request):
    form = PinForm(data=request.DATA)

    if form.is_valid():
        buyer = form.cleaned_data['buyer']
        valid = False
        locked = False

        if buyer.pin_confirmed:
            # Note that the incr_lockout and clear_lockout methods
            # trigger saves on the object. You should not do a save
            # in this view as well for fear of stomping on the save
            # caused by those methods.
            if buyer.locked_out:
                log_cef('Attempted access to locked out account: %s'
                        % buyer.uuid, request, severity=1)
                locked = True

            else:
                valid = buyer.pin == form.cleaned_data['pin']
                if not valid:
                    locked = buyer.incr_lockout()
                    if locked:
                        locked = True
                        log_cef('Locked out account: %s' % buyer.uuid,
                                request, severity=1)
                else:
                    buyer.clear_lockout(clear_was_locked=True)

        output = VerifiedSerializer(instance=buyer, valid=valid, locked=locked)
        return Response(output.data)

    raise FormError(form.errors)
Example #3
0
def confirm_pin(request):
    form = PinForm(data=request.DATA)

    if form.is_valid():
        buyer = form.cleaned_data['buyer']
        confirmed = False

        if buyer.pin == form.cleaned_data['pin']:
            buyer.pin_confirmed = True
            confirmed = True
            buyer.save()
        else:
            buyer.pin_confirmed = False
            buyer.save()

        output = ConfirmedSerializer(instance=buyer, confirmed=confirmed)
        return Response(output.data)

    raise FormError(form.errors)
Example #4
0
def confirm_pin(request):
    form = PinForm(data=request.DATA)

    if form.is_valid():
        buyer = form.cleaned_data['buyer']
        confirmed = False

        if buyer.pin == form.cleaned_data['pin']:
            buyer.pin_confirmed = True
            confirmed = True
            buyer.save()
        else:
            buyer.pin_confirmed = False
            buyer.save()

        output = ConfirmedSerializer(instance=buyer, confirmed=confirmed)
        return Response(output.data)

    raise FormError(form.errors)
Example #5
0
def verify_pin(request):
    form = PinForm(data=request.DATA)

    if form.is_valid():
        buyer = form.cleaned_data['buyer']
        valid = False
        locked = False

        if buyer.pin_confirmed:
            # Note that the incr_lockout and clear_lockout methods
            # trigger saves on the object. You should not do a save
            # in this view as well for fear of stomping on the save
            # caused by those methods.
            if buyer.locked_out:
                log_cef('Attempted access to locked out account: %s' %
                        buyer.uuid,
                        request,
                        severity=1)
                locked = True

            else:
                valid = buyer.pin == form.cleaned_data['pin']
                if not valid:
                    locked = buyer.incr_lockout()
                    if locked:
                        locked = True
                        log_cef('Locked out account: %s' % buyer.uuid,
                                request,
                                severity=1)
                else:
                    buyer.clear_lockout(clear_was_locked=True)

        output = VerifiedSerializer(instance=buyer, valid=valid, locked=locked)
        return Response(output.data)

    raise FormError(form.errors)
Example #6
0
def reset_confirm_pin(request):
    form = PinForm(data=request.DATA)
    if form.is_valid():
        buyer = form.cleaned_data['buyer']
        confirmed = False

        if buyer.locked_out:
            log_cef('Attempted access to locked out account: %s'
                    % buyer.uuid, request, severity=1)

        else:
            if buyer.new_pin == form.cleaned_data['pin']:
                buyer.pin = form.cleaned_data['pin']
                buyer.new_pin = None
                buyer.needs_pin_reset = False
                buyer.pin_confirmed = True
                buyer.pin_was_locked_out = False
                buyer.save()
                confirmed = True

        output = ConfirmedSerializer(instance=buyer, confirmed=confirmed)
        return Response(output.data)

    raise FormError(form.errors)
Example #7
0
 def test_completely_alpha_pin(self):
     self.data['pin'] = 'asfa'
     form = PinForm(self.data)
     assert not form.is_valid()
     assert PIN_ONLY_NUMBERS in form.errors['pin']
Example #8
0
 def test_too_short_pin(self):
     self.data['pin'] = '123'
     form = PinForm(self.data)
     assert not form.is_valid()
     assert PIN_4_NUMBERS_LONG in form.errors['pin']
Example #9
0
 def test_partially_numeric_pin(self):
     self.data['pin'] = '123a'
     form = PinForm(self.data)
     assert not form.is_valid()
     assert PIN_ONLY_NUMBERS in form.errors['pin']
Example #10
0
 def test_good_pin(self):
     self.data['pin'] = '1234'
     form = PinForm(self.data)
     assert form.is_valid()
Example #11
0
 def test_completely_alpha_pin(self):
     self.data['pin'] = 'asfa'
     form = PinForm(self.data)
     assert not form.is_valid()
     assert PIN_ONLY_NUMBERS in form.errors['pin']
Example #12
0
 def test_partially_numeric_pin(self):
     self.data['pin'] = '123a'
     form = PinForm(self.data)
     assert not form.is_valid()
     assert PIN_ONLY_NUMBERS in form.errors['pin']
Example #13
0
 def test_too_short_pin(self):
     self.data['pin'] = '123'
     form = PinForm(self.data)
     assert not form.is_valid()
     assert PIN_4_NUMBERS_LONG in form.errors['pin']
Example #14
0
 def test_good_pin(self):
     self.data['pin'] = '1234'
     form = PinForm(self.data)
     assert form.is_valid()