Pārlūkot izejas kodu

refactor(api): move Token class down so Domain can be referenced

Peter Thomassen 4 gadi atpakaļ
vecāks
revīzija
79a7ef47ae
1 mainītis faili ar 23 papildinājumiem un 23 dzēšanām
  1. 23 23
      api/desecapi/models.py

+ 23 - 23
api/desecapi/models.py

@@ -188,29 +188,6 @@ class User(ExportModelOperationsMixin('User'), AbstractBaseUser):
         return num_queued
 
 
-class Token(ExportModelOperationsMixin('Token'), rest_framework.authtoken.models.Token):
-    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
-    key = models.CharField("Key", max_length=128, db_index=True, unique=True)
-    user = models.ForeignKey(
-        User, related_name='auth_tokens',
-        on_delete=models.CASCADE, verbose_name="User"
-    )
-    name = models.CharField('Name', blank=True, max_length=64)
-    last_used = models.DateTimeField(null=True, blank=True)
-    perm_manage_tokens = models.BooleanField(default=False)
-
-    plain = None
-
-    def generate_key(self):
-        self.plain = secrets.token_urlsafe(21)
-        self.key = Token.make_hash(self.plain)
-        return self.key
-
-    @staticmethod
-    def make_hash(plain):
-        return make_password(plain, salt='static', hasher='pbkdf2_sha256_iter1')
-
-
 validate_domain_name = [
     validate_lower,
     RegexValidator(
@@ -404,6 +381,29 @@ class Domain(ExportModelOperationsMixin('Domain'), models.Model):
         ordering = ('created',)
 
 
+class Token(ExportModelOperationsMixin('Token'), rest_framework.authtoken.models.Token):
+    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
+    key = models.CharField("Key", max_length=128, db_index=True, unique=True)
+    user = models.ForeignKey(
+        User, related_name='auth_tokens',
+        on_delete=models.CASCADE, verbose_name="User"
+    )
+    name = models.CharField('Name', blank=True, max_length=64)
+    last_used = models.DateTimeField(null=True, blank=True)
+    perm_manage_tokens = models.BooleanField(default=False)
+
+    plain = None
+
+    def generate_key(self):
+        self.plain = secrets.token_urlsafe(21)
+        self.key = Token.make_hash(self.plain)
+        return self.key
+
+    @staticmethod
+    def make_hash(plain):
+        return make_password(plain, salt='static', hasher='pbkdf2_sha256_iter1')
+
+
 def get_default_value_created():
     return timezone.now()