diff --git a/app/controllers/concerns/hyrax/works_controller_behavior.rb b/app/controllers/concerns/hyrax/works_controller_behavior.rb index e65dd1ca32..ec6f40d247 100644 --- a/app/controllers/concerns/hyrax/works_controller_behavior.rb +++ b/app/controllers/concerns/hyrax/works_controller_behavior.rb @@ -496,13 +496,14 @@ def save_permissions end def permissions_changed? - @saved_permissions != - case curation_concern - when ActiveFedora::Base - curation_concern.permissions.map(&:to_hash) - else - Hyrax::AccessControl.for(resource: curation_concern).permissions - end + case curation_concern + when ActiveFedora::Base + @saved_permissions != curation_concern.permissions.map(&:to_hash) + else + new_permissions = Hyrax::AccessControl.for(resource: curation_concern).permissions + saved_permissions_set = @saved_permissions.to_set + new_permissions.size != @saved_permissions.size || new_permissions.any? { |e| !saved_permissions_set.include? e } + end end def concern_has_file_sets?