From a97f8892281928193ae1b4506051ec4bedcaa4f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 31 Oct 2018 20:21:04 +0100 Subject: [PATCH] Fix get access against nullable active group The group table is in a left join so group.active can be NULL for model/field access without group. On such case the access values must still be selected. issue7023 --- trytond/ir/model.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/trytond/ir/model.py b/trytond/ir/model.py index b9799e73fd..acc8179ce4 100644 --- a/trytond/ir/model.py +++ b/trytond/ir/model.py @@ -501,9 +501,10 @@ class ModelAccess(DeactivableMixin, ModelSQL, ModelView): Max(Case((model_access.perm_create == True, 1), else_=0)), Max(Case((model_access.perm_delete == True, 1), else_=0)), where=ir_model.model.in_(models) - & ((user_group.user == user) | (model_access.group == Null)) & (model_access.active == True) - & (group.active == True), + & (((user_group.user == user) + & (group.active == True)) + | (model_access.group == Null)), group_by=ir_model.model)) access.update(dict( (m, {'read': r, 'write': w, 'create': c, 'delete': d}) @@ -686,9 +687,10 @@ class ModelFieldAccess(DeactivableMixin, ModelSQL, ModelView): Max(Case((field_access.perm_create == True, 1), else_=0)), Max(Case((field_access.perm_delete == True, 1), else_=0)), where=ir_model.model.in_(models) - & ((user_group.user == user) | (field_access.group == Null)) & (field_access.active == True) - & (group.active == True), + & (((user_group.user == user) + & (group.active == True)) + | (field_access.group == Null)), group_by=[ir_model.model, model_field.name])) for m, f, r, w, c, d in cursor.fetchall(): accesses[m][f] = {'read': r, 'write': w, 'create': c, 'delete': d}