[FIX] base: restrict read access to ir.model and ir.model.fields to employees

This commit is contained in:
Raphael Collet
2017-01-20 10:05:10 +01:00
parent 5b521136d4
commit 4a18d5744e
6 changed files with 11 additions and 11 deletions
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
10 access_ir_model_access_group_erp_manager ir_model_access_group_erp_manager model_ir_model_access group_erp_manager 1 1 1 1
11 access_ir_model_data_group_erp_manager ir_model_data group_erp_manager model_ir_model_data group_erp_manager 1 1 1 1
12 access_ir_model_fields_group_erp_manager ir_model_fields group_erp_manager model_ir_model_fields group_erp_manager 1 1 1 1
13 access_ir_model_all access_ir_model_user ir_model_all model_ir_model base.group_user 1 0 0 0
14 access_ir_model_data_user ir_model_data user model_ir_model_data base.group_user 1 0 1 0
15 access_ir_model_fields_all access_ir_model_fields_user ir_model_fields all model_ir_model_fields base.group_user 1 0 0 0
16 access_ir_module_category_group_user ir_module_category group_user model_ir_module_category group_erp_manager 1 0 0 0
17 access_ir_module_module_group_user ir_module_module group_user model_ir_module_module group_system 1 1 1 1
18 access_ir_module_module_dependency_group_system ir_module_module_dependency group_system model_ir_module_module_dependency group_system 1 1 1 1
+4 -4
View File
@@ -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']]