Example #1
0
class TestUserValidation(TestCase):
    def setUp(self):
        self.validator = UserValidation()

    def test_required_fields(self):
        bundle = Bundle(data={})

        errors = self.validator.is_valid(bundle)

        self.assertIn("email", errors)

    def test_invalid_emails(self):
        for email in [
                'nobody.com', 'nobody@', 'nobody@nobody', '[email protected]', ''
        ]:
            bundle = Bundle(data={'email': email})

            errors = self.validator.is_valid(bundle)

            self.assertIn("email", errors)

    def test_valid_emails(self):
        for email in [
                '*****@*****.**', '*****@*****.**',
                '*****@*****.**'
        ]:
            bundle = Bundle(data={'email': email})

            errors = self.validator.is_valid(bundle)

            self.assertNotIn("email", errors)
Example #2
0
class TestUserValidation(TestCase):
    def setUp(self):
        self.validator = UserValidation()

    def test_required_fields(self):
        bundle = Bundle(data={})

        errors = self.validator.is_valid(bundle)

        self.assertIn("email", errors)

    def test_invalid_emails(self):
        for email in ['nobody.com', 'nobody@', 'nobody@nobody', '[email protected]', '']:
            bundle = Bundle(data={ 'email': email })
        
            errors = self.validator.is_valid(bundle)

            self.assertIn("email", errors)

    def test_valid_emails(self):
        for email in ['*****@*****.**', '*****@*****.**', '*****@*****.**']:
            bundle = Bundle(data={ 'email': email })
        
            errors = self.validator.is_valid(bundle)

            self.assertNotIn("email", errors)
Example #3
0
def activate(request):
    """
    PANDA user activation.
    """
    if request.method == 'POST':
        validator = UserValidation()

        data = dict([(k, v) for k, v in request.POST.items()])

        try:
            user_profile = UserProfile.objects.get(
                activation_key=data['activation_key'])
        except UserProfile.DoesNotExist:
            return JSONResponse({'__all__': 'Invalid activation key!'},
                                status=400)

        user = user_profile.user

        if user_profile.activation_key_expiration <= now():
            return JSONResponse(
                {
                    '__all__':
                    'Expired activation key. Contact your administrator.'
                },
                status=400)

        if 'password' not in data:
            return JSONResponse({'password': '******'},
                                status=400)

        if 'reenter_password' in data:
            del data['reenter_password']

        bundle = Bundle(data=data)

        errors = validator.is_valid(bundle)

        if errors:
            return JSONResponse(errors, status=400)

        user.username = bundle.data['email']
        user.email = bundle.data['email']
        user.first_name = bundle.data.get('first_name', '')
        user.last_name = bundle.data.get('last_name', '')
        user.set_password(bundle.data['password'])
        user.is_active = True

        user.save()

        user_profile.activation_key_expiration = now()
        user_profile.save()

        # Success
        return JSONResponse(make_user_login_response(user))
    else:
        # Invalid request
        return JSONResponse(None, status=400)
Example #4
0
def activate(request):
    """
    PANDA user activation.
    """
    if request.method == 'POST':
        validator = UserValidation()

        data = dict([(k, v) for k, v in request.POST.items()])

        try:
            user_profile = UserProfile.objects.get(activation_key=data['activation_key'])
        except UserProfile.DoesNotExist:
            return JSONResponse({ '__all__': 'Invalid activation key!' }, status=400)

        user = user_profile.user

        if user_profile.activation_key_expiration <= now():
            return JSONResponse({ '__all__': 'Expired activation key. Contact your administrator.' }, status=400)

        if 'password' not in data:
            return JSONResponse({ 'password': '******' }, status=400)

        if 'reenter_password' in data:
            del data['reenter_password']

        bundle = Bundle(data=data)

        errors = validator.is_valid(bundle)

        if errors:
            return JSONResponse(errors, status=400) 

        user.username = bundle.data['email']
        user.email = bundle.data['email']
        user.first_name = bundle.data.get('first_name', '')
        user.last_name = bundle.data.get('last_name', '')
        user.set_password(bundle.data['password'])
        user.is_active = True

        user.save()

        user_profile.activation_key_expiration = now()
        user_profile.save()

        # Success
        return JSONResponse(make_user_login_response(user))
    else:
        # Invalid request
        return JSONResponse(None, status=400)
Example #5
0
def activate(request):
    """
    PANDA user activation.
    """
    if request.method == "POST":
        validator = UserValidation()

        data = dict([(k, v) for k, v in request.POST.items()])

        try:
            user_profile = UserProfile.objects.get(activation_key=data["activation_key"])
        except UserProfile.DoesNotExist:
            return JSONResponse({"__all__": "Invalid activation key!"}, status=400)

        user = user_profile.user

        if user_profile.activation_key_expiration <= now():
            return JSONResponse({"__all__": "Expired activation key. Contact your administrator."}, status=400)

        if "password" not in data:
            return JSONResponse({"password": "******"}, status=400)

        if "reenter_password" in data:
            del data["reenter_password"]

        bundle = Bundle(data=data)

        errors = validator.is_valid(bundle)

        if errors:
            return JSONResponse(errors, status=400)

        user.username = bundle.data["email"]
        user.email = bundle.data["email"]
        user.first_name = bundle.data.get("first_name", "")
        user.last_name = bundle.data.get("last_name", "")
        user.set_password(bundle.data["password"])
        user.is_active = True

        user.save()

        user_profile.activation_key_expiration = now()
        user_profile.save()

        # Success
        return JSONResponse(make_user_login_response(user))
    else:
        # Invalid request
        return JSONResponse(None, status=400)
Example #6
0
File: views.py Project: eads/panda
def activate(request):
    """
    PANDA user activation.
    """
    if request.method == 'POST':
        validator = UserValidation()

        data = dict([(k, v) for k, v in request.POST.items()])

        try:
            user_profile = UserProfile.objects.get(activation_key=data['activation_key'])
        except UserProfile.DoesNotExist:
            return JSONResponse({ '__all__': 'Invalid activation key!' }, status=400)

        user = user_profile.user

        if user.is_active:
            return JSONResponse({ '__all__': 'User is already active!' }, status=400)

        if 'reenter_password' in data:
            del data['reenter_password']

        bundle = Bundle(data=data)

        errors = validator.is_valid(bundle)

        if errors:
            return JSONResponse(errors, status=400) 

        user.username = bundle.data['email']
        user.email = bundle.data['email']
        user.first_name = bundle.data['first_name']
        user.last_name = bundle.data['last_name']
        user.password = bundle.data['password']
        user.is_active = True

        user.save()

        # Success
        return JSONResponse(make_user_login_response(user))
    else:
        # Invalid request
        return JSONResponse(None, status=400)
Example #7
0
class TestUserValidation(TestCase):
    def setUp(self):
        self.validator = UserValidation()

    def test_required_fields(self):
        bundle = Bundle(data={})

        errors = self.validator.is_valid(bundle)

        self.assertIn("email", errors)

    def test_invalid_emails(self):
        for email in ['nobody.com', 'nobody@', 'nobody@nobody', '[email protected]', '']:
            bundle = Bundle(data={ 'email': email })
        
            errors = self.validator.is_valid(bundle)

            self.assertIn("email", errors)

    def test_valid_emails(self):
        for email in ['*****@*****.**', '*****@*****.**', '*****@*****.**']:
            bundle = Bundle(data={ 'email': email })
        
            errors = self.validator.is_valid(bundle)

            self.assertNotIn("email", errors)

    def test_email_used_as_username(self):
        bundle = Bundle(data={ 'email': '*****@*****.**' })
    
        self.validator.is_valid(bundle)

        self.assertEqual(bundle.data['username'], '*****@*****.**')       

    def test_password_missing(self):
        bundle = Bundle(data={ 'email': '*****@*****.**' })

        self.validator.is_valid(bundle)

        self.assertEqual(bundle.data['password'], None)

    def test_password_supplied(self):
        bundle = Bundle(data={ 'email': '*****@*****.**', 'password': '******' })

        self.validator.is_valid(bundle)

        self.assertEqual(bundle.data['password'][:5], 'sha1$')
Example #8
0
 def setUp(self):
     self.validator = UserValidation()
Example #9
0
 def setUp(self):
     self.validator = UserValidation()