diff --git a/app/models/concerns/permission_checkable_model.rb b/app/models/concerns/permission_checkable_model.rb index 66b04ac78..5563ff398 100644 --- a/app/models/concerns/permission_checkable_model.rb +++ b/app/models/concerns/permission_checkable_model.rb @@ -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 } })