Exemplo n.º 1
0
    def create_code_for_user(cls, user, next=None):
        if not user.is_active:
            return None

        code = None

        params = {
            'length': getattr(settings, 'NOPASSWORD_CODE_LENGTH', 20),
            'algorithm': getattr(settings, 'NOPASSWORD_HASH_ALGORITHM',
                                 'sha256'),
            'numeric': getattr(settings, 'NOPASSWORD_NUMERIC_CODES', False),
        }
        params.update(
            {k: getattr(cls, k)
             for k in params.keys() if hasattr(cls, k)})

        while cls.code_is_used(code):
            code = cls.generate_code(**params)
        login_code = LoginCode(user=user, code=code)
        if next is not None:
            login_code.next = next
        login_code.save()
        return login_code
Exemplo n.º 2
0
 def test_str(self):
     code = LoginCode(user=self.user, code='foo', timestamp=datetime(2018, 7, 1))
     self.assertEqual(str(code), 'test_user - 2018-07-01 00:00:00')