[FIX] *: add sudo when accessing models
This commit is contained in:
@@ -154,7 +154,7 @@ class GoogleDrive(models.Model):
|
||||
'''
|
||||
# TO DO in master: fix my signature and my model
|
||||
if isinstance(res_model, str):
|
||||
res_model = self.env['ir.model'].search([('model', '=', res_model)]).id
|
||||
res_model = self.env['ir.model'].sudo().search([('model', '=', res_model)]).id
|
||||
if not res_id:
|
||||
raise UserError(_("Creating google drive may only be done by one at a time."))
|
||||
# check if a model is configured with a template
|
||||
|
||||
@@ -740,7 +740,8 @@ class MailActivity(models.Model):
|
||||
'o_closest_deadline': group['date_deadline'],
|
||||
}
|
||||
activity_type_infos = []
|
||||
activity_type_ids = self.env['mail.activity.type'].search(['|', ('res_model_id.model', '=', res_model), ('res_model_id', '=', False)])
|
||||
activity_type_ids = self.env['mail.activity.type'].sudo().search(
|
||||
['|', ('res_model_id.model', '=', res_model), ('res_model_id', '=', False)])
|
||||
for elem in sorted(activity_type_ids, key=lambda item: item.sequence):
|
||||
mail_template_info = []
|
||||
for mail_template_id in elem.mail_template_ids:
|
||||
|
||||
@@ -924,20 +924,22 @@ class MailThread(models.AbstractModel):
|
||||
# if destination = alias with different model -> consider it is a forward and not a reply
|
||||
# if destination = alias with same model -> check contact settings as they still apply
|
||||
if reply_model and reply_thread_id:
|
||||
reply_model_id = self.env['ir.model']._get_id(reply_model)
|
||||
other_model_aliases = self.env['mail.alias'].search([
|
||||
'&', '&',
|
||||
('alias_name', '!=', False),
|
||||
('alias_name', 'in', email_to_localparts),
|
||||
('alias_model_id.model', '!=', reply_model),
|
||||
('alias_model_id', '!=', reply_model_id),
|
||||
])
|
||||
if other_model_aliases:
|
||||
is_a_reply = False
|
||||
rcpt_tos_valid_localparts = [to for to in rcpt_tos_valid_localparts if to in other_model_aliases.mapped('alias_name')]
|
||||
|
||||
if is_a_reply:
|
||||
reply_model_id = self.env['ir.model']._get_id(reply_model)
|
||||
dest_aliases = self.env['mail.alias'].search([
|
||||
('alias_name', 'in', rcpt_tos_localparts),
|
||||
('alias_model_id.model', '=', reply_model)
|
||||
('alias_model_id', '=', reply_model_id)
|
||||
], limit=1)
|
||||
|
||||
user_id = self._mail_find_user_for_gateway(email_from, alias=dest_aliases).id or self._uid
|
||||
@@ -972,7 +974,7 @@ class MailThread(models.AbstractModel):
|
||||
routes = []
|
||||
for alias in dest_aliases:
|
||||
user_id = self._mail_find_user_for_gateway(email_from, alias=alias).id or self._uid
|
||||
route = (alias.alias_model_id.model, alias.alias_force_thread_id, ast.literal_eval(alias.alias_defaults), user_id, alias)
|
||||
route = (alias.sudo().alias_model_id.model, alias.alias_force_thread_id, ast.literal_eval(alias.alias_defaults), user_id, alias)
|
||||
route = self._routing_check_route(message, message_dict, route, raise_exception=True)
|
||||
if route:
|
||||
_logger.info(
|
||||
@@ -1536,7 +1538,7 @@ class MailThread(models.AbstractModel):
|
||||
|
||||
if alias and alias.alias_parent_model_id and alias.alias_parent_thread_id:
|
||||
followers = self.env['mail.followers'].search([
|
||||
('res_model', '=', alias.alias_parent_model_id.model),
|
||||
('res_model', '=', alias.alias_parent_model_id.sudo().model),
|
||||
('res_id', '=', alias.alias_parent_thread_id)]
|
||||
).mapped('partner_id')
|
||||
else:
|
||||
|
||||
@@ -99,7 +99,7 @@ class Users(models.Model):
|
||||
})
|
||||
activity_data = self.env.cr.dictfetchall()
|
||||
model_ids = [a['id'] for a in activity_data]
|
||||
model_names = {n[0]: n[1] for n in self.env['ir.model'].browse(model_ids).name_get()}
|
||||
model_names = {n[0]: n[1] for n in self.env['ir.model'].sudo().browse(model_ids).name_get()}
|
||||
|
||||
user_activities = {}
|
||||
for activity in activity_data:
|
||||
|
||||
Reference in New Issue
Block a user