diff --git a/pkgs/development/python-modules/django-two-factor-auth/default.nix b/pkgs/development/python-modules/django-two-factor-auth/default.nix new file mode 100644 index 000000000000..7ca684149800 --- /dev/null +++ b/pkgs/development/python-modules/django-two-factor-auth/default.nix @@ -0,0 +1,85 @@ +{ lib +, buildPythonPackage +, django +, django-formtools +, django-otp +, django-phonenumber-field +, fetchFromGitHub +, phonenumbers +, pydantic +, pythonOlder +, pythonRelaxDepsHook +, qrcode +, setuptools-scm +, twilio +, webauthn +}: + +buildPythonPackage rec { + pname = "django-two-factor-auth"; + version = "1.15.1"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "jazzband"; + repo = "django-two-factor-auth"; + rev = "refs/tags/${version}"; + hash = "sha256-+E6kSD00ChPiRLT2i43dNlVkbvuR1vKkbSZfD1Bf3qc="; + }; + + nativeBuildInputs = [ + pythonRelaxDepsHook + setuptools-scm + ]; + + pythonRelaxDeps = [ + "django-phonenumber-field" + ]; + + propagatedBuildInputs = [ + django + django-formtools + django-otp + django-phonenumber-field + qrcode + ]; + + passthru.optional-dependencies = { + call = [ + twilio + ]; + sms = [ + twilio + ]; + webauthn = [ + pydantic + webauthn + ]; + # yubikey = [ + # django-otp-yubikey + # ]; + phonenumbers = [ + phonenumbers + ]; + # phonenumberslite = [ + # phonenumberslite + # ]; + }; + + # Tests require internet connection + doCheck = false; + + pythonImportsCheck = [ + "two_factor" + ]; + + meta = with lib; { + description = "Complete Two-Factor Authentication for Django"; + homepage = "https://github.com/jazzband/django-two-factor-auth"; + changelog = "https://github.com/jazzband/django-two-factor-auth/releases/tag/${version}"; + license = licenses.mit; + maintainers = with maintainers; [ derdennisop ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 329a14efaa8b..75c879008fb6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2759,6 +2759,8 @@ self: super: with self; { django_treebeard = callPackage ../development/python-modules/django_treebeard { }; + django-two-factor-auth = callPackage ../development/python-modules/django-two-factor-auth { }; + django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield { }; django-vite = callPackage ../development/python-modules/django-vite { };