From: Michael Tremer Date: Sat, 13 Sep 2025 09:12:31 +0000 (+0000) Subject: accounts: Track registration IP address and user agent X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2030bc1c9319f1f94f4c6cda6e2d2f720256ae89;p=ipfire.org.git accounts: Track registration IP address and user agent Signed-off-by: Michael Tremer --- diff --git a/src/backend/accounts.py b/src/backend/accounts.py index 659df06c..246cde9e 100644 --- a/src/backend/accounts.py +++ b/src/backend/accounts.py @@ -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", diff --git a/src/web/auth.py b/src/web/auth.py index b178af15..442c80a9 100644 --- a/src/web/auth.py +++ b/src/web/auth.py @@ -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