From a8499642ac3b31ca7b1ea6a823abdd857662e374 Mon Sep 17 00:00:00 2001 From: Lorygold Date: Wed, 18 Dec 2024 18:18:19 +0100 Subject: [PATCH 1/3] Forced only 1 Config object presence --- buffalogs/impossible_travel/models.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/buffalogs/impossible_travel/models.py b/buffalogs/impossible_travel/models.py index 87a2ee9..1690891 100644 --- a/buffalogs/impossible_travel/models.py +++ b/buffalogs/impossible_travel/models.py @@ -1,5 +1,6 @@ from django.conf import settings from django.contrib.postgres.fields import ArrayField +from django.core.exceptions import ValidationError from django.db import models from impossible_travel.constants import AlertDetectionType, AlertFilterType, UserRiskScoreType @@ -133,3 +134,11 @@ class Config(models.Model): default=settings.CERTEGO_BUFFALOGS_ALERT_MAX_DAYS, help_text="Days after which the alerts will be removed from the db" ) ip_max_days = models.PositiveIntegerField(default=settings.CERTEGO_BUFFALOGS_IP_MAX_DAYS, help_text="Days after which the IPs will be removed from the db") + + def clean(self): + if not self.pk and Config.objects.exists(): + raise ValidationError("A Config object already exist - it is possible just to modify it, not to create a new one") + + def save(self, *args, **kwargs): + self.clean() + super().save(*args, **kwargs) From 1f0782203fbcc0bbe37b3314ae2636e05e831382 Mon Sep 17 00:00:00 2001 From: Lorygold Date: Wed, 18 Dec 2024 18:21:37 +0100 Subject: [PATCH 2/3] Set always Config.id=1 --- buffalogs/impossible_travel/models.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/buffalogs/impossible_travel/models.py b/buffalogs/impossible_travel/models.py index 1690891..a04b290 100644 --- a/buffalogs/impossible_travel/models.py +++ b/buffalogs/impossible_travel/models.py @@ -138,6 +138,9 @@ class Config(models.Model): def clean(self): if not self.pk and Config.objects.exists(): raise ValidationError("A Config object already exist - it is possible just to modify it, not to create a new one") + else: + # Config.id=1 always + self.pk = 1 def save(self, *args, **kwargs): self.clean() From 38f018aa5470e3061607cd4ad3f3ae3373819f94 Mon Sep 17 00:00:00 2001 From: Lorygold Date: Wed, 18 Dec 2024 18:24:55 +0100 Subject: [PATCH 3/3] Updated CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 613410d..d2841d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ ## 1.3.x +### 1.3.1 +### Changes +* Forced the existence of only 1 Config object with id=1 ### 1.3.0 #### Feature * Added configuration panel in order to set custom preferences