From d7c55c27076febb956753a423f08a17ecef0594a Mon Sep 17 00:00:00 2001 From: Eduard Brahas Date: Thu, 31 Oct 2024 12:00:17 +0100 Subject: [PATCH] [IMP] impersonate_login: Update create_uid for impersonated record creation - Ensure impersonation is properly reflected in record creation - Update related tests to verify correct impersonation behavior --- impersonate_login/models/model.py | 9 ++++++++- impersonate_login/tests/test_impersonate_login.py | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/impersonate_login/models/model.py b/impersonate_login/models/model.py index ece3334f91..c83d2371cf 100644 --- a/impersonate_login/models/model.py +++ b/impersonate_login/models/model.py @@ -17,8 +17,15 @@ def _create(self, data_list): and request.session.impersonate_from_uid and "create_uid" in self._fields ): + impersonator_id = request.session.impersonate_from_uid for rec in res: - rec["create_uid"] = request.session.impersonate_from_uid + self.env.cr.execute( + """ + UPDATE "%s" SET create_uid = %%s WHERE id = %%s + """ + % self._table, + (impersonator_id, rec.id), + ) return res def write(self, vals): diff --git a/impersonate_login/tests/test_impersonate_login.py b/impersonate_login/tests/test_impersonate_login.py index 85ba94b88d..41b5e04062 100644 --- a/impersonate_login/tests/test_impersonate_login.py +++ b/impersonate_login/tests/test_impersonate_login.py @@ -123,6 +123,8 @@ def test_01_admin_impersonates_user_demo(self): # Check impersonate log log2 = self.env["impersonate.log"].search([], order="id desc", limit=1) + # Refresh the log1 after the attribute date_end is updated + log1.refresh() self.assertEqual(log1, log2) self.assertTrue(log1.date_start) self.assertTrue(log1.date_end) @@ -254,6 +256,8 @@ def test_04_write_uid(self): data = response.json() result = data["result"] + # Refresh contact to reflect changes in the database self.assertEqual(result, True) + contact.invalidate_cache() self.assertEqual(contact.ref, "abc") self.assertEqual(contact.write_uid, self.admin_user)