]> git.ipfire.org Git - ipfire.org.git/commitdiff
accounts: Track registration IP address and user agent
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 13 Sep 2025 09:12:31 +0000 (09:12 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 13 Sep 2025 09:12:31 +0000 (09:12 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py
src/web/auth.py

index 659df06c5c125ee0fabe3b1361575f997a262297..246cde9e5de36a42861aba60182e1e9f25a6de49 100644 (file)
@@ -463,7 +463,8 @@ class Accounts(Object):
 
        # Join
 
-       def join(self, uid, email, first_name, last_name, country_code=None):
+       def join(self, uid, email, first_name, last_name,
+                       country_code=None, address=None, user_agent=None):
                # Convert all uids to lowercase
                uid = uid.lower()
 
@@ -488,9 +489,26 @@ class Accounts(Object):
 
                # Create an entry in our database until the user
                # has activated the account
-               self.db.execute("INSERT INTO account_activations(uid, activation_code, \
-                       email, first_name, last_name, country_code) VALUES(%s, %s, %s, %s, %s, %s)",
-                       uid, activation_code, email, first_name, last_name, country_code)
+               self.db.execute("""
+                       INSERT INTO
+                               account_activations
+                       (
+                               uid,
+                               activation_code,
+                               email,
+                               first_name,
+                               last_name,
+                               country_code,
+                               address,
+                               user_agent
+                       )
+                       VALUES
+                       (
+                               %s, %s, %s, %s, %s, %s, %s, %s
+                       )
+                       """, uid, activation_code, email, first_name, last_name,
+                       country_code, address, user_agent,
+               )
 
                # Send an account activation email
                self.backend.messages.send_template("auth/messages/join",
index b178af1525255005e8169f55a19eaa291e703fa0..442c80a98b94b4e5986e69c0637b785faef8c0d2 100644 (file)
@@ -108,9 +108,15 @@ class JoinHandler(base.AnalyticsMixin, base.BaseHandler):
                # Register account
                try:
                        with self.db.transaction():
-                               self.backend.accounts.join(uid, email,
-                                       first_name=first_name, last_name=last_name,
-                                       country_code=self.current_country_code)
+                               self.backend.accounts.join(
+                                       uid          = uid,
+                                       email        = email,
+                                       first_name   = first_name,
+                                       last_name    = last_name,
+                                       country_code = self.current_country_code,
+                                       address      = self.current_address,
+                                       user_agent   = self.user_agent,
+                               )
                except ValueError as e:
                        raise tornado.web.HTTPError(400, "%s" % e) from e