diff options
| author | Raphael Collet <rco@openerp.com> | 2017-01-19 16:17:10 +0100 |
|---|---|---|
| committer | Raphael Collet <rco@openerp.com> | 2017-01-20 10:05:10 +0100 |
| commit | 4a18d5744e0a36cb2f120bfad00b52ad22f4d01d (patch) | |
| tree | f797b3632baaf656f3f1816db98c8cb111ca5d30 | |
| parent | 5b521136d4f1682dfa77c5bcb8c1ad899024a9a7 (diff) | |
[FIX] base: restrict read access to `ir.model` and `ir.model.fields` to employees
| -rw-r--r-- | addons/mail/models/mail_activity.py | 2 | ||||
| -rw-r--r-- | addons/website_form/controllers/main.py | 2 | ||||
| -rw-r--r-- | odoo/addons/base/ir/ir_translation.py | 4 | ||||
| -rw-r--r-- | odoo/addons/base/res/ir_property.py | 2 | ||||
| -rw-r--r-- | odoo/addons/base/security/ir.model.access.csv | 4 | ||||
| -rw-r--r-- | odoo/report/custom.py | 8 |
6 files changed, 11 insertions, 11 deletions
diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index 661f3fa849d..b39416b41ac 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -44,7 +44,7 @@ class MailActivity(models.Model): def default_get(self, fields): res = super(MailActivity, self).default_get(fields) if not fields or 'res_model_id' in fields and res.get('res_model'): - res['res_model_id'] = self.env['ir.model'].sudo().search([('model', '=', res['res_model'])]).id + res['res_model_id'] = self.env['ir.model']._get(res['res_model']).id return res # owner diff --git a/addons/website_form/controllers/main.py b/addons/website_form/controllers/main.py index 742a8eeb0b7..2f5f7ec2292 100644 --- a/addons/website_form/controllers/main.py +++ b/addons/website_form/controllers/main.py @@ -21,7 +21,7 @@ class WebsiteForm(http.Controller): # Check and insert values from the form on the model <model> @http.route('/website_form/<string:model_name>', type='http', auth="public", methods=['POST'], website=True) def website_form(self, model_name, **kwargs): - model_record = request.env['ir.model'].search([('model', '=', model_name), ('website_form_access', '=', True)]) + model_record = request.env['ir.model'].sudo().search([('model', '=', model_name), ('website_form_access', '=', True)]) if not model_record: return json.dumps(False) diff --git a/odoo/addons/base/ir/ir_translation.py b/odoo/addons/base/ir/ir_translation.py index 46f3dbba1a0..5c63e3c7244 100644 --- a/odoo/addons/base/ir/ir_translation.py +++ b/odoo/addons/base/ir/ir_translation.py @@ -501,7 +501,7 @@ class IrTranslation(models.Model): :param model_name: the name of a model :return: the model's fields' strings as a dictionary `{field_name: field_string}` """ - fields = self.env['ir.model.fields'].search([('model', '=', model_name)]) + fields = self.env['ir.model.fields'].sudo().search([('model', '=', model_name)]) return {field.name: field.field_description for field in fields} @api.model @@ -513,7 +513,7 @@ class IrTranslation(models.Model): :param model_name: the name of a model :return: the model's fields' help as a dictionary `{field_name: field_help}` """ - fields = self.env['ir.model.fields'].search([('model', '=', model_name)]) + fields = self.env['ir.model.fields'].sudo().search([('model', '=', model_name)]) return {field.name: field.help for field in fields} @api.multi diff --git a/odoo/addons/base/res/ir_property.py b/odoo/addons/base/res/ir_property.py index de3f4d9d214..82db6eba933 100644 --- a/odoo/addons/base/res/ir_property.py +++ b/odoo/addons/base/res/ir_property.py @@ -79,7 +79,7 @@ class Property(models.Model): else: field_id = self.env['ir.model.fields'].browse(field_id) - value = '%s,%d' % (field_id.relation, value) + value = '%s,%d' % (field_id.sudo().relation, value) values[field] = value return values diff --git a/odoo/addons/base/security/ir.model.access.csv b/odoo/addons/base/security/ir.model.access.csv index 389c8ac2c1a..57fb62af90c 100644 --- a/odoo/addons/base/security/ir.model.access.csv +++ b/odoo/addons/base/security/ir.model.access.csv @@ -10,9 +10,9 @@ "access_ir_model_access_group_erp_manager","ir_model_access_group_erp_manager","model_ir_model_access","group_erp_manager",1,1,1,1 "access_ir_model_data_group_erp_manager","ir_model_data group_erp_manager","model_ir_model_data","group_erp_manager",1,1,1,1 "access_ir_model_fields_group_erp_manager","ir_model_fields group_erp_manager","model_ir_model_fields","group_erp_manager",1,1,1,1 -"access_ir_model_all","ir_model_all","model_ir_model",,1,0,0,0 +"access_ir_model_user","ir_model_all","model_ir_model",base.group_user,1,0,0,0 "access_ir_model_data_user","ir_model_data user","model_ir_model_data",base.group_user,1,0,1,0 -"access_ir_model_fields_all","ir_model_fields all","model_ir_model_fields",,1,0,0,0 +"access_ir_model_fields_user","ir_model_fields all","model_ir_model_fields",base.group_user,1,0,0,0 "access_ir_module_category_group_user","ir_module_category group_user","model_ir_module_category","group_erp_manager",1,0,0,0 "access_ir_module_module_group_user","ir_module_module group_user","model_ir_module_module","group_system",1,1,1,1 "access_ir_module_module_dependency_group_system","ir_module_module_dependency group_system","model_ir_module_module_dependency","group_system",1,1,1,1 diff --git a/odoo/report/custom.py b/odoo/report/custom.py index be4b95f9389..1eb68f0890f 100644 --- a/odoo/report/custom.py +++ b/odoo/report/custom.py @@ -118,7 +118,7 @@ class report_custom(report_int): report = report.read()[0] fields = env['ir.report.custom.fields'].browse(report['fields_child0']).read() fields.sort(key=lambda x: x['sequence']) - model_name = env['ir.model'].browse(report['model_id'][0]).model + model_name = env['ir.model'].sudo().browse(report['model_id'][0]).model fct = { 'id': lambda x: x, @@ -134,7 +134,7 @@ class report_custom(report_int): field_child = f['field_child'+str(i)] if field_child: row.append( - env['ir.model.fields'].browse(field_child[0]).name + env['ir.model.fields'].sudo().browse(field_child[0]).name ) if f['fc'+str(i)+'_operande']: fct_name = 'id' @@ -342,7 +342,7 @@ class report_custom(report_int): for f in fields: field_id = (f['field_child3'] and f['field_child3'][0]) or (f['field_child2'] and f['field_child2'][0]) or (f['field_child1'] and f['field_child1'][0]) or (f['field_child0'] and f['field_child0'][0]) if field_id: - ttype = env['ir.model.fields'].browse(field_id).ttype + ttype = env['ir.model.fields'].sudo().browse(field_id).ttype if ttype == 'date': date_idx = idx fct[idx] = process_date[report['frequency']] @@ -435,7 +435,7 @@ class report_custom(report_int): for f in fields: field_id = (f['field_child3'] and f['field_child3'][0]) or (f['field_child2'] and f['field_child2'][0]) or (f['field_child1'] and f['field_child1'][0]) or (f['field_child0'] and f['field_child0'][0]) if field_id: - ttype = env['ir.model.fields'].browse(field_id).ttype + ttype = env['ir.model.fields'].sudo().browse(field_id).ttype if ttype == 'date': date_idx = idx fct[idx] = process_date[report['frequency']] |
