Browse Source

chore(api): bump dependencies

Code changes were necessary

- in serializers.py (https://docs.djangoproject.com/en/4.1/releases/4.1/#reverse-foreign-key-changes-for-unsaved-model-instances),
- in authentication.py (https://docs.djangoproject.com/en/4.1/ref/utils/#django.utils.timezone.utc).
Peter Thomassen 2 years ago
parent
commit
d2a22d452b
4 changed files with 7 additions and 7 deletions
  1. 2 2
      api/desecapi/authentication.py
  2. 1 1
      api/desecapi/models.py
  3. 1 1
      api/desecapi/serializers.py
  4. 3 3
      api/requirements.txt

+ 2 - 2
api/desecapi/authentication.py

@@ -1,5 +1,5 @@
 import base64
 import base64
-from datetime import datetime, timezone
+import datetime
 from ipaddress import ip_address
 from ipaddress import ip_address
 
 
 from django.contrib.auth.hashers import PBKDF2PasswordHasher
 from django.contrib.auth.hashers import PBKDF2PasswordHasher
@@ -161,7 +161,7 @@ class AuthenticatedBasicUserActionAuthentication(BaseAuthentication):
         serializer.is_valid(raise_exception=True)
         serializer.is_valid(raise_exception=True)
         user = serializer.validated_data['user']
         user = serializer.validated_data['user']
 
 
-        email_verified = datetime.fromtimestamp(serializer.timestamp, timezone.utc)
+        email_verified = datetime.datetime.fromtimestamp(serializer.timestamp, datetime.timezone.utc)
         user.email_verified = max(user.email_verified or email_verified, email_verified)
         user.email_verified = max(user.email_verified or email_verified, email_verified)
         user.save()
         user.save()
 
 

+ 1 - 1
api/desecapi/models.py

@@ -511,7 +511,7 @@ class Token(ExportModelOperationsMixin('Token'), rest_framework.authtoken.models
         when=pgtrigger.Before,
         when=pgtrigger.Before,
         condition=pgtrigger.Q(old__domain__isnull=True, new__domain__isnull=False),
         condition=pgtrigger.Q(old__domain__isnull=True, new__domain__isnull=False),
     ),
     ),
-    # Ideally, this would be a deferred trigger, but depends on https://github.com/Opus10/django-pgtrigger/issues/14
+    # Ideally, a deferred trigger (https://github.com/Opus10/django-pgtrigger/issues/14). Available in 3.4.0.
     pgtrigger.Trigger(
     pgtrigger.Trigger(
         name='default_policy_on_delete',
         name='default_policy_on_delete',
         operation=pgtrigger.Delete,
         operation=pgtrigger.Delete,

+ 1 - 1
api/desecapi/serializers.py

@@ -531,7 +531,7 @@ class RRsetSerializer(ConditionalExistenceModelSerializer):
 
 
     def exists(self, arg):
     def exists(self, arg):
         if isinstance(arg, models.RRset):
         if isinstance(arg, models.RRset):
-            return arg.records.exists()
+            return arg.records.exists() if arg.pk else False
         else:
         else:
             return bool(arg.get('records')) if 'records' in arg.keys() else True
             return bool(arg.get('records')) if 'records' in arg.keys() else True
 
 

+ 3 - 3
api/requirements.txt

@@ -2,12 +2,12 @@ captcha~=0.4.0
 celery~=5.2.1
 celery~=5.2.1
 coverage~=6.2
 coverage~=6.2
 cryptography~=37.0.4
 cryptography~=37.0.4
-Django~=4.0.3
-django-cors-headers~=3.10.1
+Django~=4.1.0
+django-cors-headers~=3.13.0
 djangorestframework~=3.13.1
 djangorestframework~=3.13.1
 django-celery-email~=3.0.0
 django-celery-email~=3.0.0
 django-netfields~=1.3.0
 django-netfields~=1.3.0
-django-pgtrigger~=2.4.0
+django-pgtrigger~=2.5.1  # Upgrade to 3.x on occasion. Trigger management syntax has changed considerably.
 django-prometheus~=2.2.0
 django-prometheus~=2.2.0
 dnspython~=2.2.0
 dnspython~=2.2.0
 httpretty~=1.0.5
 httpretty~=1.0.5