You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.7 KiB
45 lines
1.7 KiB
# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
|
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
|
|
|
from odoo import api, models, _
|
|
from odoo.exceptions import AccessError
|
|
|
|
|
|
class Message(models.Model):
|
|
_inherit = 'mail.message'
|
|
|
|
@api.multi
|
|
def write(self, vals):
|
|
user = self.env.user
|
|
if self._uid == 1:
|
|
rec = super(Message, self).write(vals=vals)
|
|
elif self._name != 'mail.message':
|
|
rec = super(Message, self).write(vals=vals)
|
|
elif user.has_group(
|
|
'message_security_author.group_mail_message_manager'):
|
|
rec = super(Message, self).write(vals=vals)
|
|
elif not self.filtered(lambda m: user not in m.author_id.user_ids):
|
|
rec = super(Message, self).write(vals=vals)
|
|
else:
|
|
raise AccessError(
|
|
_("Sorry, you are not allowed to modify this document."))
|
|
return rec
|
|
|
|
@api.multi
|
|
def unlink(self):
|
|
user = self.env.user
|
|
if self._uid == 1:
|
|
rec = super(Message, self).unlink()
|
|
elif self._name != 'mail.message':
|
|
rec = super(Message, self).unlink()
|
|
elif self._context.get('deleting_mail_thread'):
|
|
rec = super(Message, self).unlink()
|
|
elif user.has_group(
|
|
'message_security_author.group_mail_message_manager'):
|
|
rec = super(Message, self).unlink()
|
|
elif not self.filtered(lambda m: user not in m.author_id.user_ids):
|
|
rec = super(Message, self).unlink()
|
|
else:
|
|
raise AccessError(
|
|
_("Sorry, you are not allowed to delete this document."))
|
|
return rec
|