]> git.ipfire.org Git - ipfire.org.git/commitdiff
accounts: Add function to register a new (temporary account)
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 7 May 2019 15:05:40 +0000 (16:05 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 7 May 2019 15:06:04 +0000 (16:06 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/backend/accounts.py
src/templates/auth/messages/register.txt [new file with mode: 0644]

index 4f147c576c089e39179f3ff50778e95aba6633b6..70872e1307c3c85792fe462c42f2e30fd429d7ee 100644 (file)
@@ -116,6 +116,11 @@ templates_auth_DATA = \
 
 templates_authdir = $(templatesdir)/auth
 
+templates_auth_messages_DATA = \
+       src/templates/auth/messages/register.txt
+
+templates_auth_messagesdir = $(templates_authdir)/messages
+
 templates_blog_DATA = \
        src/templates/blog/author.html \
        src/templates/blog/base.html \
index 69257c15b3038ec5179ec800e5695c335bcc1ec9..a474bc0cec07153426e25fdfc08cc3c4af81ed58 100644 (file)
@@ -171,11 +171,27 @@ class Accounts(Object):
 
        # Registration
 
-       def create(self, uid, email, first_name, last_name):
+       def register(self, uid, email, first_name, last_name):
                # Check if UID is unique
                if self.get_by_uid(uid):
                        raise ValueError("UID exists: %s" % uid)
 
+               # Generate a random activation code
+               activation_code = util.random_string(36)
+
+               # 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)
+
+               # Send an account activation email
+               self.backend.messages.send_template("auth/messages/register",
+                       recipients=[email], priority=100, uid=uid,
+                       activation_code=activation_code, email=email,
+                       first_name=first_name, last_name=last_name)
+
+       def create(self, uid, email, first_name, last_name):
                activation_code = util.random_string(24)
 
                # Account Parameters
diff --git a/src/templates/auth/messages/register.txt b/src/templates/auth/messages/register.txt
new file mode 100644 (file)
index 0000000..b8bf73e
--- /dev/null
@@ -0,0 +1,11 @@
+From: IPFire Project <no-reply@ipfire.org>
+To: {{ first_name }} {{ last_name }} <{{ email }}>
+Subject: {{ _("Welcome to the IPFire Project!") }}
+
+{{ _("Hello %s!") % first_name }}
+
+{{ _("Thank you for registering a new account with us.") }} {{ _("This account will allow you to take part in our project. Either by joining the debates on our forum, writing documentation, or becoming a developer.") }} {{ _("There is many things you can do with your account.") }}
+
+{{ _("To activate it, please click on this link:") }}
+
+  https://people.ipfire.org/activate/{{ uid }}/{{ activation_code }}