You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The 6.0.1 saved search and dashboard rights migration decided whether
to rename an old name ACE or drop it as a duplicate by calling
HasRight for the new right. HasRight honors group membership
inheritance, so when several principals converge on one new right and
a group was migrated before a principal that belongs to it, the
member inherited the new right and its own old name ACE was deleted
instead of renamed. The member then lost its direct grant entirely if
it later left the group. This affects any inheriting principal: a
subgroup or a user who is a member of the migrated group.
Test instead for a direct ACE on the same principal and object with a
new helper, _has_direct_ace, so a genuine duplicate is still deleted
while a principal's own grant is always renamed and kept.
Drop the InvalidateACLCache calls that followed each rename. They
existed only so the in loop HasRight check would see prior renames.
The direct ACE query reads the table directly and does not consult the
cache, so they are no longer needed.
0 commit comments