details:   https://code.tryton.org/tryton/commit/de058ece9c74
branch:    8.2
user:      Cédric Krier <[email protected]>
date:      Fri Oct 09 12:42:03 2026 +0200
description:
        Set a default value for the readonly fields that are copied under check 
access

        fields with default values are skipped from the create call and thus 
their
        access rights are not enforced.

        Closes #15156
        (grafted from 2844635bb7825ff31074bf0eb2be829ee9af5f1f)
diffstat:

 trytond/trytond/model/modelstorage.py |  8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diffs (18 lines):

diff -r 33621b5235fa -r de058ece9c74 trytond/trytond/model/modelstorage.py
--- a/trytond/trytond/model/modelstorage.py     Wed Sep 23 10:41:33 2026 +0200
+++ b/trytond/trytond/model/modelstorage.py     Fri Oct 09 12:42:03 2026 +0200
@@ -736,6 +736,14 @@
             values = {
                 d['id']: d for d in cls.read(ids, fields_names=fields_names)}
         default_values = cls.default_get(fields_names, with_rec_name=False)
+
+        if Transaction().check_access:
+            # force default value to skip access rights
+            for field_name, field in fields_.items():
+                if field.readonly:
+                    default.setdefault(
+                        field_name, default_values.get(field_name))
+
         to_create = []
         for id_ in ids:
             data = convert_data(fields_, values[id_], default_values)

Reply via email to