def authenticate(self, code=None, **credentials):
     try:
         if "password" in credentials:
             return None
         user = get_user_model().objects.get(**credentials)
     except  get_user_model().DoesNotExist:
         if getattr(settings, 'NOPASSWORD_CREATE_USERS', False):
             user = self.create_user(**credentials)
             if not user:
                 return None
         else:
             return None
     try:
         if not self.verify_user(user):
             return None
         if code is None:
             return LoginCode.create_code_for_user(user)
         else:
             timeout = getattr(settings, 'NOPASSWORD_LOGIN_CODE_TIMEOUT', 900)
             timestamp = datetime.now() - timedelta(seconds=timeout)
             login_code = LoginCode.objects.get(user=user, code=code, timestamp__gt=timestamp)
             user = login_code.user
             user.code = login_code
             multiuse_logins = getattr(settings, 'NOPASSWORD_MULTIUSE_CODES', False)
             if (not multiuse_logins):
                 login_code.delete()
             return user
     except (TypeError, get_user_model().DoesNotExist, LoginCode.DoesNotExist, FieldError):
         return None
 def setUp(self):
     self.user = get_user_model().objects.create(
         username='******',
         email='*****@*****.**',
     )
     self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
     self.backend = EmailBackend()
Beispiel #3
0
 def authenticate(self, code=None, **credentials):
     try:
         user = get_user_model().objects.get(**credentials)
         if not self.verify_user(user):
             return None
         if code is None:
             return LoginCode.create_code_for_user(user)
         else:
             timeout = getattr(settings, 'NOPASSWORD_LOGIN_CODE_TIMEOUT', 900)
             timestamp = datetime.now() - timedelta(seconds=timeout)
             login_code = LoginCode.objects.get(user=user, code=code, timestamp__gt=timestamp)
             user = login_code.user
             user.code = login_code
             login_code.delete()
             return user
     except (TypeError, get_user_model().DoesNotExist, LoginCode.DoesNotExist, FieldError):
         return None
Beispiel #4
0
 def authenticate(self, code=None, **credentials):
     try:
         user = get_user_model().objects.get(**credentials)
         if not self.verify_user(user):
             return None
         if code is None:
             return LoginCode.create_code_for_user(user)
         else:
             timeout = getattr(settings, 'NOPASSWORD_LOGIN_CODE_TIMEOUT', 900)
             timestamp = datetime.now() - timedelta(seconds=timeout)
             login_code = LoginCode.objects.get(user=user, code=code, timestamp__gt=timestamp)
             user = login_code.user
             user.code = login_code
             login_code.delete()
             return user
     except (TypeError, get_user_model().DoesNotExist, LoginCode.DoesNotExist, FieldError):
         return None
 def setUp(self):
     self.user = get_user_model().objects.create(username='******')
     self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
     self.assertEqual(len(self.code.code), 20)
     self.assertIsNotNone(
         authenticate(username=self.user.username, code=self.code.code))
     self.assertEqual(
         LoginCode.objects.filter(user=self.user,
                                  code=self.code.code).count(), 0)
    def test_twilio_backend(self, mock_object):
        self.user = get_user_model().objects.create(username='******')
        self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
        self.assertEqual(len(self.code.code), 20)
        self.assertIsNotNone(authenticate(username=self.user.username, code=self.code.code))
        self.assertEqual(LoginCode.objects.filter(user=self.user, code=self.code.code).count(), 0)

        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()

        self.backend.send_login_code(self.code)
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)

        authenticate(username=self.user.username)
        self.assertEqual(LoginCode.objects.filter(user=self.user).count(), 1)

        self.user.delete()
    def test_twilio_backend(self, mock_object):
        self.user = get_user_model().objects.create(username='******')
        self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
        self.assertEqual(len(self.code.code), 20)
        self.assertIsNotNone(
            authenticate(username=self.user.username, code=self.code.code))
        self.assertEqual(
            LoginCode.objects.filter(user=self.user,
                                     code=self.code.code).count(), 0)

        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()

        self.backend.send_login_code(self.code)
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)

        authenticate(username=self.user.username)
        self.assertEqual(LoginCode.objects.filter(user=self.user).count(), 1)

        self.user.delete()
 def setUp(self):
     self.user = get_user_model().objects.create(username='******')
     self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
     self.assertEqual(len(self.code.code), 20)
     self.assertIsNotNone(authenticate(username=self.user.username, code=self.code.code))
     self.assertEqual(LoginCode.objects.filter(user=self.user, code=self.code.code).count(), 0)
 def setUp(self):
     self.user = get_user_model().objects.create(username='******')
     self.inactive_user = get_user_model().objects.create(username='******', is_active=False)
     self.backend = NoPasswordBackend()
Beispiel #10
0
 def register(self, form):
     username = form.cleaned_data[get_username_field()]
     user_model = get_user_model()
     return user_model.objects.create_user(username)
Beispiel #11
0
 def setUp(self):
     self.c = Client()
     self.user = get_user_model().objects.create(username='******')
Beispiel #12
0
 def setUp(self):
     self.user = get_user_model().objects.create(username='******')
     self.inactive_user = get_user_model().objects.create(
         username='******', is_active=False)
     self.code = LoginCode.create_code_for_user(self.user)
Beispiel #13
0
 def setUp(self):
     self.c = Client()
     self.user = get_user_model().objects.create(username='******')
 def setUp(self):
     self.user = get_user_model().objects.create(username='******')
     self.inactive_user = get_user_model().objects.create(username='******', is_active=False)
     self.code = LoginCode.create_code_for_user(self.user)
Beispiel #15
0
 def setUp(self):
     self.user = get_user_model().objects.create(username='******')
     self.inactive_user = get_user_model().objects.create(username='******', is_active=False)
Beispiel #16
0
 def get_user(self, user_id):
     try:
         return get_user_model().objects.get(pk=user_id)
     except get_user_model().DoesNotExist:
         return None