From 9f75fa49fea9be0ff6b393c9de887b858845604b Mon Sep 17 00:00:00 2001
From: bbk <bbk@nocloud.ch>
Date: Fri, 8 Dec 2023 08:19:46 +0100
Subject: [PATCH 1/3] add django-ipware

---
 requirements.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/requirements.txt b/requirements.txt
index 493fe13a8..4e03fdbaa 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14,6 +14,7 @@ django-recaptcha~=4.0.0
 Django==4.2.6
 django-activity-stream==2.0.0
 django-axes==6.1.1
+django-ipware==6.0.2
 django-crispy-forms~=2.1
 crispy-bootstrap4==2023.1
 django-simple-history~=3.4

From 936683b36ca25c59e1661f19598115cf8fd06955 Mon Sep 17 00:00:00 2001
From: bbk <bbk@nocloud.ch>
Date: Fri, 8 Dec 2023 08:28:47 +0100
Subject: [PATCH 2/3] add axes settings

---
 extras/docker/development/settings.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/extras/docker/development/settings.py b/extras/docker/development/settings.py
index c7b8dbc8e..a31d3f701 100644
--- a/extras/docker/development/settings.py
+++ b/extras/docker/development/settings.py
@@ -123,9 +123,12 @@
 # Django Axes
 #
 AXES_ENABLED = env.bool('AXES_ENABLED', True)
+AXES_LOCKOUT_PARAMETERS = env.str('AXES_LOCKOUT_PARAMETERS', "['ip-address']")
 AXES_FAILURE_LIMIT = env.int('AXES_FAILURE_LIMIT', 10)
 AXES_COOLOFF_TIME = timedelta(minutes=env.float('AXES_COOLOFF_TIME', 30))
 AXES_HANDLER = env.str('AXES_HANDLER', 'axes.handlers.cache.AxesCacheHandler')
+AXES_IPWARE_PROXY_COUNT = env.int('AXES_IPWARE_PROXY_COUNT', 0)
+AXES_IPWARE_META_PRECEDENCE_ORDER = env.str('AXES_IPWARE_META_PRECEDENCE_ORDER', "['REMOTE_ADDR']")
 
 #
 # Django Rest Framework SimpleJWT

From f578cee241507d06d0b0e4f67857b5e25cd10a0b Mon Sep 17 00:00:00 2001
From: bbk <bbk@nocloud.ch>
Date: Fri, 8 Dec 2023 11:19:42 +0100
Subject: [PATCH 3/3] use env.list

---
 extras/docker/development/settings.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/extras/docker/development/settings.py b/extras/docker/development/settings.py
index a31d3f701..392e70192 100644
--- a/extras/docker/development/settings.py
+++ b/extras/docker/development/settings.py
@@ -123,12 +123,12 @@
 # Django Axes
 #
 AXES_ENABLED = env.bool('AXES_ENABLED', True)
-AXES_LOCKOUT_PARAMETERS = env.str('AXES_LOCKOUT_PARAMETERS', "['ip-address']")
+AXES_LOCKOUT_PARAMETERS = env.list('AXES_LOCKOUT_PARAMETERS', default=['ip-address'])
 AXES_FAILURE_LIMIT = env.int('AXES_FAILURE_LIMIT', 10)
 AXES_COOLOFF_TIME = timedelta(minutes=env.float('AXES_COOLOFF_TIME', 30))
 AXES_HANDLER = env.str('AXES_HANDLER', 'axes.handlers.cache.AxesCacheHandler')
 AXES_IPWARE_PROXY_COUNT = env.int('AXES_IPWARE_PROXY_COUNT', 0)
-AXES_IPWARE_META_PRECEDENCE_ORDER = env.str('AXES_IPWARE_META_PRECEDENCE_ORDER', "['REMOTE_ADDR']")
+AXES_IPWARE_META_PRECEDENCE_ORDER = env.list('AXES_IPWARE_META_PRECEDENCE_ORDER', default=['REMOTE_ADDR'])
 
 #
 # Django Rest Framework SimpleJWT