Merge pull request #8694 from artoscinote/ma_SCI_12152

Fix user_assignment priority in .permission_granted? [SCI-12152]
This commit is contained in:
Martin Artnik 2025-07-24 13:51:38 +02:00 committed by GitHub
commit a26d08ca3e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -33,9 +33,11 @@ module PermissionCheckableModel
end
def permission_granted?(user, permission, permission_team = user.permission_team)
return true if user_assignments.joins(:user_role)
.where(user: user, team: permission_team)
.exists?(['user_roles.permissions @> ARRAY[?]::varchar[]', [permission]])
if user_assignments.exists?(user: user, team: permission_team)
return user_assignments.joins(:user_role)
.where(user: user, team: permission_team)
.exists?(['user_roles.permissions @> ARRAY[?]::varchar[]', [permission]])
end
user_roles = UserRole.left_outer_joins(:team_assignments, user_group_assignments: { user_group: :users })
user_roles.where(user_group_assignments: { assignable: self, user_groups: { users: user } })