From: Michael Tremer Date: Wed, 23 Oct 2019 16:07:00 +0000 (+0100) Subject: Capture country code at registration of an account X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=757372cdddddc72a3c361e42aa3028afda80d200;p=ipfire.org.git Capture country code at registration of an account Signed-off-by: Michael Tremer --- diff --git a/src/backend/accounts.py b/src/backend/accounts.py index 2bb87c76..9d72b1cb 100644 --- a/src/backend/accounts.py +++ b/src/backend/accounts.py @@ -186,7 +186,7 @@ class Accounts(Object): # Registration - def register(self, uid, email, first_name, last_name): + def register(self, uid, email, first_name, last_name, country_code=None): # Convert all uids to lowercase uid = uid.lower() @@ -200,8 +200,8 @@ 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) VALUES(%s, %s, %s, %s, %s)", - uid, activation_code, email, first_name, last_name) + email, first_name, last_name, country_code) VALUES(%s, %s, %s, %s, %s, %s)", + uid, activation_code, email, first_name, last_name, country_code) # Send an account activation email self.backend.messages.send_template("auth/messages/register", @@ -220,7 +220,8 @@ class Accounts(Object): # Create a new account on the LDAP database account = self.create(uid, res.email, - first_name=res.first_name, last_name=res.last_name) + first_name=res.first_name, last_name=res.last_name, + country_code=res.country_code) # Send email about account registration self.backend.messages.send_template("people/messages/new-account", @@ -228,7 +229,7 @@ class Accounts(Object): return account - def create(self, uid, email, first_name, last_name): + def create(self, uid, email, first_name, last_name, country_code=None): cn = "%s %s" % (first_name, last_name) # Account Parameters @@ -251,8 +252,15 @@ class Accounts(Object): self.accounts._authenticate() self.ldap.add_s(dn, ldap.modlist.addModlist(account)) + # Fetch the account + account = self.get_by_dn(dn) + + # Optionally set country code + if country_code: + account.country_code = country_code + # Return account - return self.get_by_dn(dn) + return account # Session stuff diff --git a/src/web/auth.py b/src/web/auth.py index b969a671..256c4ee8 100644 --- a/src/web/auth.py +++ b/src/web/auth.py @@ -105,7 +105,8 @@ class RegisterHandler(base.BaseHandler): try: with self.db.transaction(): self.backend.accounts.register(uid, email, - first_name=first_name, last_name=last_name) + first_name=first_name, last_name=last_name, + country_code=self.current_country_code) except ValueError as e: raise tornado.web.HTTPError(400, "%s" % e) from e