diff --git a/web_widget_digitized_signature/models/mail_thread.py b/web_widget_digitized_signature/models/mail_thread.py index 5f4fa107a..d8d7de0e0 100644 --- a/web_widget_digitized_signature/models/mail_thread.py +++ b/web_widget_digitized_signature/models/mail_thread.py @@ -36,4 +36,4 @@ class MailThread(models.AbstractModel): msg_body += message msg_body += '' msg_body += '' - self.message_post(body=msg_body, attachments=attachments) + self.sudo().message_post(body=msg_body, attachments=attachments) diff --git a/web_widget_digitized_signature/models/res_users.py b/web_widget_digitized_signature/models/res_users.py index 48cc0faed..69cdc135b 100644 --- a/web_widget_digitized_signature/models/res_users.py +++ b/web_widget_digitized_signature/models/res_users.py @@ -24,3 +24,12 @@ class ResUsers(models.Model): def write(self, vals): self._track_signature(vals, 'digital_signature') return super(ResUsers, self).write(vals) + + def __init__(self, pool, cr): + super(ResUsers, self).__init__(pool, cr) + # duplicate list to avoid modifying the original reference + type(self).SELF_WRITEABLE_FIELDS = list(self.SELF_WRITEABLE_FIELDS) + type(self).SELF_WRITEABLE_FIELDS.extend(['digital_signature']) + # duplicate list to avoid modifying the original reference + type(self).SELF_READABLE_FIELDS = list(self.SELF_READABLE_FIELDS) + type(self).SELF_READABLE_FIELDS.extend(['digital_signature']) diff --git a/web_widget_digitized_signature/tests/test_signature_tracking.py b/web_widget_digitized_signature/tests/test_signature_tracking.py index 1ca800ddc..cde80f0ef 100644 --- a/web_widget_digitized_signature/tests/test_signature_tracking.py +++ b/web_widget_digitized_signature/tests/test_signature_tracking.py @@ -35,3 +35,10 @@ class TestSignatureTracking(common.SavepointCase): current_messages = self.message_obj.search([]) message = current_messages - prev_messages self.assertIn('Signature has been deleted.', message.body) + + def test_self_signature_write(self): + """Ensure users are able to set its own signature""" + user = self.env.ref('base.user_demo') + user = user.sudo(user) + user.write({"digital_signature": b'TEST'}) + self.assertEqual(user.digital_signature, b'TEST') diff --git a/web_widget_digitized_signature/views/res_users_view.xml b/web_widget_digitized_signature/views/res_users_view.xml index ff34ac67c..8fc7e5560 100644 --- a/web_widget_digitized_signature/views/res_users_view.xml +++ b/web_widget_digitized_signature/views/res_users_view.xml @@ -23,7 +23,7 @@