diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py index 1d1b0476337..b8bdb9787b3 100644 --- a/addons/auth_signup/controllers/main.py +++ b/addons/auth_signup/controllers/main.py @@ -93,7 +93,7 @@ class AuthSignupHome(Home): get_param = request.env['ir.config_parameter'].sudo().get_param return { - 'signup_enabled': get_param('auth_signup.allow_uninvited') == 'True', + 'signup_enabled': get_param('auth_signup.invitation_scope', 'b2b') == 'b2c', 'reset_password_enabled': get_param('auth_signup.reset_password') == 'True', } diff --git a/addons/auth_signup/models/res_config_settings.py b/addons/auth_signup/models/res_config_settings.py index 7350121137b..9cfceecaecd 100644 --- a/addons/auth_signup/models/res_config_settings.py +++ b/addons/auth_signup/models/res_config_settings.py @@ -9,36 +9,13 @@ from odoo import api, fields, models class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' - auth_signup_reset_password = fields.Boolean(string='Enable password reset from Login page') + auth_signup_reset_password = fields.Boolean(string='Enable password reset from Login page', config_parameter='auth_signup.reset_password') auth_signup_uninvited = fields.Selection([ ('b2b', 'On invitation (B2B)'), ('b2c', 'Free sign up (B2C)'), - ], string='Customer Account') - auth_signup_template_user_id = fields.Many2one('res.users', string='Template user for new users created through signup') - - @api.model - def get_values(self): - res = super(ResConfigSettings, self).get_values() - get_param = self.env['ir.config_parameter'].sudo().get_param - auth_signup_template_user_id = literal_eval(get_param('auth_signup.template_user_id', default='False')) - if auth_signup_template_user_id and not self.env['res.users'].sudo().browse(auth_signup_template_user_id).exists(): - auth_signup_template_user_id = False - # the value of the parameter is a nonempty string - res.update( - auth_signup_reset_password=get_param('auth_signup.reset_password', 'False').lower() == 'true', - auth_signup_uninvited='b2c' if get_param('auth_signup.allow_uninvited', 'False').lower() == 'true' else 'b2b', - auth_signup_template_user_id=auth_signup_template_user_id, - ) - return res - - @api.multi - def set_values(self): - super(ResConfigSettings, self).set_values() - set_param = self.env['ir.config_parameter'].sudo().set_param - # we store the repr of the values, since the value of the parameter is a required string - set_param('auth_signup.reset_password', repr(self.auth_signup_reset_password)) - set_param('auth_signup.allow_uninvited', repr(self.auth_signup_uninvited == 'b2c')) - set_param('auth_signup.template_user_id', repr(self.auth_signup_template_user_id.id)) + ], string='Customer Account', default='b2b', config_parameter='auth_signup.invitation_scope') + auth_signup_template_user_id = fields.Many2one('res.users', string='Template user for new users created through signup', + config_parameter='auth_signup.template_user_id') @api.multi def open_template_user(self): diff --git a/addons/auth_signup/models/res_partner.py b/addons/auth_signup/models/res_partner.py index ecf63246580..9fbcd27872f 100644 --- a/addons/auth_signup/models/res_partner.py +++ b/addons/auth_signup/models/res_partner.py @@ -102,7 +102,7 @@ class ResPartner(models.Model): """ res = defaultdict(dict) - allow_signup = self.env['ir.config_parameter'].sudo().get_param('auth_signup.allow_uninvited', 'False').lower() == 'true' + allow_signup = self.env['ir.config_parameter'].sudo().get_param('auth_signup.invitation_scope', 'b2b') == 'b2c' for partner in self: if allow_signup and not partner.user_ids: partner.signup_prepare() diff --git a/addons/auth_signup/models/res_users.py b/addons/auth_signup/models/res_users.py index ceab0701772..c91cf78a3fc 100644 --- a/addons/auth_signup/models/res_users.py +++ b/addons/auth_signup/models/res_users.py @@ -84,7 +84,7 @@ class ResUsers(models.Model): # check that uninvited users may sign up if 'partner_id' not in values: - if not literal_eval(get_param('auth_signup.allow_uninvited', 'False')): + if get_param('auth_signup.invitation_scope', 'b2b') != 'b2c': raise SignupError(_('Signup is not allowed for uninvited users')) assert values.get('login'), "Signup: no login given for new user" diff --git a/addons/base_setup/models/res_config_settings.py b/addons/base_setup/models/res_config_settings.py index e925bac6a05..063ebf6a829 100644 --- a/addons/base_setup/models/res_config_settings.py +++ b/addons/base_setup/models/res_config_settings.py @@ -11,8 +11,14 @@ class ResConfigSettings(models.TransientModel): group_multi_company = fields.Boolean("Manage multiple companies", implied_group='base.group_multi_company') company_id = fields.Many2one('res.company', string='Company', required=True, default=lambda self: self.env.user.company_id) - default_user_rights = fields.Boolean("Default Access Rights") - default_external_email_server = fields.Boolean("External Email Servers") + user_default_rights = fields.Boolean( + "Default Access Rights", + config_parameter='base_setup.default_user_rights', + oldname='default_user_rights') + external_email_server_default = fields.Boolean( + "External Email Servers", + config_parameter='base_setup.default_external_email_server', + oldname='default_external_email_server') module_base_import = fields.Boolean("Allow users to import data from CSV/XLS/XLSX/ODS files") module_google_calendar = fields.Boolean( string='Allow the users to synchronize their calendar with Google Calendar') @@ -28,7 +34,6 @@ class ResConfigSettings(models.TransientModel): help="Share your partners to all companies defined in your instance.\n" " * Checked : Partners are visible for every companies, even if a company is defined on the partner.\n" " * Unchecked : Each company can see only its partner (partners where company is defined). Partners not related to a company are visible for all companies.") - default_custom_report_footer = fields.Boolean("Default Custom Report Footer") report_footer = fields.Text(related="company_id.report_footer", string='Custom Report Footer', help="Footer text displayed at the bottom of all reports.") group_multi_currency = fields.Boolean(string='Multi-Currencies', implied_group='base.group_multi_currency', @@ -39,14 +44,7 @@ class ResConfigSettings(models.TransientModel): @api.model def get_values(self): res = super(ResConfigSettings, self).get_values() - params = self.env['ir.config_parameter'].sudo() - default_external_email_server = params.get_param('base_setup.default_external_email_server', default=False) - default_user_rights = params.get_param('base_setup.default_user_rights', default=False) - default_custom_report_footer = params.get_param('base_setup.default_custom_report_footer', default=False) res.update( - default_external_email_server=default_external_email_server, - default_user_rights=default_user_rights, - default_custom_report_footer=default_custom_report_footer, company_share_partner=not self.env.ref('base.res_partner_rule').active, ) return res @@ -54,9 +52,6 @@ class ResConfigSettings(models.TransientModel): @api.multi def set_values(self): super(ResConfigSettings, self).set_values() - self.env['ir.config_parameter'].sudo().set_param("base_setup.default_external_email_server", self.default_external_email_server) - self.env['ir.config_parameter'].sudo().set_param("base_setup.default_user_rights", self.default_user_rights) - self.env['ir.config_parameter'].sudo().set_param("base_setup.default_custom_report_footer", self.default_custom_report_footer) self.env.ref('base.res_partner_rule').write({'active': not self.company_share_partner}) @api.multi diff --git a/addons/base_setup/views/res_config_settings_views.xml b/addons/base_setup/views/res_config_settings_views.xml index 12b60ef5914..a58f3e0d808 100644 --- a/addons/base_setup/views/res_config_settings_views.xml +++ b/addons/base_setup/views/res_config_settings_views.xml @@ -50,17 +50,17 @@

Users

-
+
- +
-