[FIX] base: user fields_get no add group if asked
The override of fields_get adds "virtual" fields corresponding to groups. If for example we make "res.users" have inherit "mail.thread", we get these "virtual" field as if they had "track_visibility", since we do a "fields_get" with fields having track_visibility expecting to only get back "track_visibility" ones. So the system would then fail trying to track visibility on fields like "in_group_5" and for example a res.users could not be created anymore. With this fix, we fix the fields_get so it respect the fields we ask of it. fixes #22332 opw-1878654 closes #22338 closes #26705 Co-authored-by: Wolfgang Pichler <wpichler@callino.at>
This commit is contained in:
co-authored by
Wolfgang Pichler
parent
43877095ed
commit
79e18ac6af
@@ -921,9 +921,12 @@ class UsersView(models.Model):
|
||||
# add reified groups fields
|
||||
for app, kind, gs in self.env['res.groups'].sudo().get_groups_by_application():
|
||||
if kind == 'selection':
|
||||
field_name = name_selection_groups(gs.ids)
|
||||
if allfields and field_name not in allfields:
|
||||
continue
|
||||
# selection group field
|
||||
tips = ['%s: %s' % (g.name, g.comment) for g in gs if g.comment]
|
||||
res[name_selection_groups(gs.ids)] = {
|
||||
res[field_name] = {
|
||||
'type': 'selection',
|
||||
'string': app.name or _('Other'),
|
||||
'selection': [(False, '')] + [(g.id, g.name) for g in gs],
|
||||
@@ -934,7 +937,10 @@ class UsersView(models.Model):
|
||||
else:
|
||||
# boolean group fields
|
||||
for g in gs:
|
||||
res[name_boolean_group(g.id)] = {
|
||||
field_name = name_boolean_group(g.id)
|
||||
if allfields and field_name not in allfields:
|
||||
continue
|
||||
res[field_name] = {
|
||||
'type': 'boolean',
|
||||
'string': g.name,
|
||||
'help': g.comment,
|
||||
|
||||
Reference in New Issue
Block a user