[FIX] base: restrict read access to ir.model and ir.model.fields to employees
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
@@ -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']]
|
||||
|
||||
Reference in New Issue
Block a user