summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorRohan Patel <rop@odoo.com>2017-12-22 16:17:49 +0530
committerThibault Delavallée <tde@odoo.com>2018-03-15 11:34:41 +0100
commit7cee389e78b4c5b0dfa83ee83cd4ff8c6ede5713 (patch)
treee56996f4482e61a6358494ffc452b2570a0c6915 /addons
parente3afd5508c1792fdbac79f3c9b0fa49466edfd26 (diff)
[IMP] auth_signup,portal: create portal user using template user
Purpose of this commit is to standardize portal user creation when creating new portal users (when 'Free sign up (B2C)' option activated). It copies the portal user template. The same behavior now applies when converting a partner into portal user using the portal wizard. This commit is related to task ID 31399 .
Diffstat (limited to 'addons')
-rw-r--r--addons/auth_signup/models/res_users.py21
-rw-r--r--addons/portal/wizard/portal_wizard.py3
2 files changed, 14 insertions, 10 deletions
diff --git a/addons/auth_signup/models/res_users.py b/addons/auth_signup/models/res_users.py
index 92e505bd840..a1be6e05b6b 100644
--- a/addons/auth_signup/models/res_users.py
+++ b/addons/auth_signup/models/res_users.py
@@ -76,19 +76,24 @@ class ResUsers(models.Model):
@api.model
def _signup_create_user(self, values):
- """ create a new user from the template user """
- get_param = self.env['ir.config_parameter'].sudo().get_param
- template_user_id = literal_eval(get_param('base.template_portal_user_id', 'False'))
- template_user = self.browse(template_user_id)
- assert template_user.exists(), 'Signup: invalid template user'
+ """ signup a new user using the template user """
# check that uninvited users may sign up
if 'partner_id' not in values:
- if get_param('auth_signup.invitation_scope', 'b2b') != 'b2c':
+ if self.env['ir.config_parameter'].sudo().get_param('auth_signup.invitation_scope', 'b2b') != 'b2c':
raise SignupError(_('Signup is not allowed for uninvited users'))
+ return self._create_user_from_template(values)
+
+ def _create_user_from_template(self, values):
+ template_user_id = literal_eval(self.env['ir.config_parameter'].sudo().get_param('base.template_portal_user_id', 'False'))
+ template_user = self.browse(template_user_id)
+ if template_user.exists():
+ raise ValueError(_('Signup: invalid template user'))
- assert values.get('login'), "Signup: no login given for new user"
- assert values.get('partner_id') or values.get('name'), "Signup: no name or partner given for new user"
+ if not values.get('login'):
+ raise ValueError(_('Signup: no login given for new user'))
+ if not values.get('partner_id') or not values.get('name'):
+ raise ValueError(_('Signup: no name or partner given for new user'))
# create a copy of the template user (attached to a specific partner_id if given)
values['active'] = True
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index c96eb169915..22d6765aac7 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -160,13 +160,12 @@ class PortalWizardUser(models.TransientModel):
:returns record of res.users
"""
company_id = self.env.context.get('company_id')
- return self.env['res.users'].with_context(no_reset_password=True).create({
+ return self.env['res.users'].with_context(no_reset_password=True)._create_user_from_template({
'email': extract_email(self.email),
'login': extract_email(self.email),
'partner_id': self.partner_id.id,
'company_id': company_id,
'company_ids': [(6, 0, [company_id])],
- 'groups_id': [(6, 0, [])],
})
@api.multi