1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 django,
6 setuptools,
7 pyotp,
8 fido2,
9 qrcode,
10 python,
11}:
12
13buildPythonPackage rec {
14 pname = "django-mfa3";
15 version = "1.0.0";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "xi";
20 repo = "django-mfa3";
21 tag = version;
22 hash = "sha256-bgIzrSM8KP6uQHvn393NWYw9DODdHLMqKn6pgw3EG/w=";
23 };
24
25 build-system = [ setuptools ];
26
27 dependencies = [
28 django
29 pyotp
30 fido2
31 qrcode
32 ];
33
34 # qrcode 8.0 not supported yet
35 # See https://github.com/xi/django-mfa3/pull/14
36 pythonRelaxDeps = [ "qrcode" ];
37
38 checkPhase = ''
39 ${python.interpreter} -m django test --settings tests.settings
40 '';
41
42 meta = {
43 description = "Multi factor authentication for Django";
44 homepage = "https://github.com/xi/django-mfa3";
45 changelog = "https://github.com/xi/django-mfa3/blob/${src.rev}/CHANGES.md";
46 license = lib.licenses.mit;
47 maintainers = [ lib.maintainers.onny ];
48 };
49}