changeset d41d48d68cdf in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset&node=d41d48d68cdf
description:
        Skip keyword action window for which user has not read access

        issue11589
        review419541003
diffstat:

 trytond/ir/action.py |  5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diffs (22 lines):

diff -r 73c1250aaa21 -r d41d48d68cdf trytond/ir/action.py
--- a/trytond/ir/action.py      Tue Jul 19 20:57:47 2022 +0200
+++ b/trytond/ir/action.py      Sat Jul 30 11:10:37 2022 +0200
@@ -243,6 +243,7 @@
         pool = Pool()
         Action = pool.get('ir.action')
         Menu = pool.get('ir.ui.menu')
+        ModelAccess = pool.get('ir.model.access')
         key = (keyword, tuple(value))
         keywords = cls._get_keyword_cache.get(key)
         if keywords is not None:
@@ -273,6 +274,10 @@
             types[type_].append(action_keyword.action.id)
         for type_, action_ids in types.items():
             for value in Action.get_action_values(type_, action_ids):
+                if (type_ == 'ir.action.act_window'
+                        and not ModelAccess.check(
+                            value['res_model'], raise_exception=False)):
+                    continue
                 value['keyword'] = keyword
                 keywords.append(value)
         if keyword == 'tree_open' and model == Menu.__name__:

Reply via email to