diff options
| author | Rohan Patel <rop@odoo.com> | 2017-12-22 16:17:49 +0530 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2018-03-15 11:34:41 +0100 |
| commit | 7cee389e78b4c5b0dfa83ee83cd4ff8c6ede5713 (patch) | |
| tree | e56996f4482e61a6358494ffc452b2570a0c6915 /addons | |
| parent | e3afd5508c1792fdbac79f3c9b0fa49466edfd26 (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.py | 21 | ||||
| -rw-r--r-- | addons/portal/wizard/portal_wizard.py | 3 |
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 |
