summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorDenis Vermylen <dve@odoo.com>2017-06-09 18:45:24 +0200
committerThibault Delavallée <tde@odoo.com>2017-07-06 12:53:39 +0200
commit054c68689b58f554e9433938644f2960720e08ef (patch)
treecd6196a3b8654beee6232d9f604616e97bbca30a /addons
parent7dd6225f0bbee29f4a138633edd0c16298743518 (diff)
[IMP] auth_signup: various usability improvements in signup process
* allow new signup on invalid token * relabel signup buttons * send a welcome email upon signup with a signup token. This way, should the token somehow be usurped by someone else, the original partner's email address will be notified. (before the usurper can change the email)
Diffstat (limited to 'addons')
-rw-r--r--addons/auth_signup/controllers/main.py10
-rw-r--r--addons/auth_signup/data/auth_signup_data.xml44
-rw-r--r--addons/auth_signup/views/auth_signup_login_templates.xml6
3 files changed, 57 insertions, 3 deletions
diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py
index 1ec853f3dee..8f8db0fab0d 100644
--- a/addons/auth_signup/controllers/main.py
+++ b/addons/auth_signup/controllers/main.py
@@ -35,6 +35,16 @@ class AuthSignupHome(Home):
if 'error' not in qcontext and request.httprequest.method == 'POST':
try:
self.do_signup(qcontext)
+ # Send an account creation confirmation email
+ if qcontext.get('token'):
+ user_sudo = request.env['res.users'].sudo().search([('login', '=', qcontext.get('login'))])
+ template = request.env.ref('auth_signup.mail_template_user_signup_account_created', raise_if_not_found=False)
+ if user_sudo and template:
+ template.sudo().with_context(
+ lang=user_sudo.lang,
+ auth_login=werkzeug.url_encode({'auth_login': user_sudo.email}),
+ password=request.params.get('password')
+ ).send_mail(user_sudo.id, force_send=True)
return super(AuthSignupHome, self).web_login(*args, **kw)
except UserError as e:
qcontext['error'] = str(e)
diff --git a/addons/auth_signup/data/auth_signup_data.xml b/addons/auth_signup/data/auth_signup_data.xml
index 2b6ceeeed79..b9f88893d2a 100644
--- a/addons/auth_signup/data/auth_signup_data.xml
+++ b/addons/auth_signup/data/auth_signup_data.xml
@@ -91,5 +91,49 @@
<field name="user_signature" eval="False"/>
</record>
+ <!-- Email template for new users that used a signup token -->
+ <record id="mail_template_user_signup_account_created" model="mail.template">
+ <field name="name">Auth Signup: Odoo Account Created</field>
+ <field name="model_id" ref="base.model_res_users"/>
+ <field name="email_from">"${object.company_id.name|safe}" &lt;${(object.company_id.email or user.email)|safe}&gt;</field>
+ <field name="email_to">${object.email|safe}</field>
+ <field name="subject">Welcome to ${object.company_id.name}!</field>
+ <field name="body_html" type="html">
+<div style="padding:0px;width:600px;margin:auto;background: #FFFFFF repeat top /100%;color:#777777">
+ <table cellspacing="0" cellpadding="0" style="width:600px;border-collapse:collapse;background:inherit;color:inherit">
+ <tbody><tr>
+ <td valign="center" width="200" style="padding:10px 10px 10px 5px;font-size: 12px">
+ <img src="/logo.png" style="padding: 0px; margin: 0px; height: auto; width: 80px;" alt="${user.company_id.name}" />
+ </td>
+ </tr></tbody>
+ </table>
+</div>
+<div style="padding:0px;width:600px;margin:auto;background: #FFFFFF repeat top /100%;color:#777777">
+ <p>Dear ${object.name},</p>
+ <p>
+ Your account has been successfully created!
+ </p>
+ <p>
+ Your login: ${object.email}
+ <br/>
+ Your password: ${ctx['password']}
+ </p>
+ <p>
+ To gain access to your account, you can use the following link:
+ </p>
+ <div style="text-align: center; margin-top: 16px;">
+ <a href="/web/login?${ctx['auth_login']}" style="padding: 5px 10px; font-size: 12px; line-height: 18px; color: #FFFFFF; border-color:#875A7B; text-decoration: none; display: inline-block; margin-bottom: 0px; font-weight: 400; text-align: center; vertical-align: middle; cursor: pointer; white-space: nowrap; background-image: none; background-color: #875A7B; border: 1px solid #875A7B; border-radius:3px">Go to My Account</a>
+ </div>
+ <p>Best regards,</p>
+</div>
+<div style="padding:0px;width:600px;margin:auto; margin-top: 10px; background: #fff repeat top /100%;color:#777777">
+ ${user.signature | safe}
+ <p style="font-size: 11px; margin-top: 10px;">
+ <strong>Sent by ${user.company_id.name} using <a href="www.odoo.com" style="text-decoration:none; color: #875A7B;">Odoo</a></strong>
+ </p>
+</div></field>
+ <field name="user_signature" eval="False"/>
+ </record>
+
</data>
</odoo>
diff --git a/addons/auth_signup/views/auth_signup_login_templates.xml b/addons/auth_signup/views/auth_signup_login_templates.xml
index b3e17efac90..a38596abe9c 100644
--- a/addons/auth_signup/views/auth_signup_login_templates.xml
+++ b/addons/auth_signup/views/auth_signup_login_templates.xml
@@ -2,7 +2,7 @@
<odoo>
<template id="auth_signup.login" inherit_id="web.login" name="Sign up - Reset Password">
<xpath expr="//button[@type='submit']" position="before">
- <a t-if="signup_enabled" t-attf-href="/web/signup?{{ keep_query() }}" class="btn btn-link pull-right">Sign up</a>
+ <a t-if="signup_enabled" t-attf-href="/web/signup?{{ keep_query() }}" class="btn btn-link pull-right">Don't have an account?</a>
<a t-if="reset_password_enabled" t-attf-href="/web/reset_password?{{ keep_query() }}" class="btn btn-link pull-right">Reset Password</a>
</xpath>
</template>
@@ -40,7 +40,7 @@
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<t t-call="auth_signup.fields">
- <t t-set="only_passwords" t-value="bool(token)"/>
+ <t t-set="only_passwords" t-value="bool(token and not invalid_token)"/>
</t>
<p class="alert alert-danger" t-if="error">
@@ -49,7 +49,7 @@
<input type="hidden" name="redirect" t-att-value="redirect"/>
<input type="hidden" name="token" t-att-value="token"/>
<div class="clearfix oe_login_buttons">
- <a t-attf-href="/web/login?{{ keep_query() }}" class="btn btn-link pull-right">Back to Login</a>
+ <a t-attf-href="/web/login?{{ keep_query() }}" class="btn btn-link pull-right">Already have an account?</a>
<button type="submit" class="btn btn-primary pull-left">Sign up</button>
</div>