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()
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()
def register(self, form): username = form.cleaned_data[get_username_field()] user_model = get_user_model() return user_model.objects.create_user(username)
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)
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)
def setUp(self): self.user = get_user_model().objects.create(username='******') self.inactive_user = get_user_model().objects.create(username='******', is_active=False)
def get_user(self, user_id): try: return get_user_model().objects.get(pk=user_id) except get_user_model().DoesNotExist: return None