diff --git a/plugins/work_assignment/lib/work_assignment_plugin/work_assignment.rb b/plugins/work_assignment/lib/work_assignment_plugin/work_assignment.rb index 51b9584..b3485c2 100644 --- a/plugins/work_assignment/lib/work_assignment_plugin/work_assignment.rb +++ b/plugins/work_assignment/lib/work_assignment_plugin/work_assignment.rb @@ -40,4 +40,9 @@ class WorkAssignmentPlugin::WorkAssignment < Folder children.map(&:children).flatten.compact end + def cache_key_with_person(params = {}, user = nil, language = 'en') + cache_key_without_person + (user && profile.members.include?(user) ? "-#{user.identifier}" : '') + end + alias_method_chain :cache_key, :person + end diff --git a/plugins/work_assignment/test/unit/work_assingment_plugin/work_assignment_test.rb b/plugins/work_assignment/test/unit/work_assingment_plugin/work_assignment_test.rb index a529a89..06a077d 100644 --- a/plugins/work_assignment/test/unit/work_assingment_plugin/work_assignment_test.rb +++ b/plugins/work_assignment/test/unit/work_assingment_plugin/work_assignment_test.rb @@ -40,4 +40,16 @@ class WorkAssignmentTest < ActiveSupport::TestCase author_folder = work_assignment.find_or_create_author_folder(author) assert author_folder, submission.parent end + + should 'add logged user on cache_key if is a member' do + organization = fast_create(Organization) + not_member = fast_create(Person) + member = fast_create(Person) + organization.add_member(member) + work_assignment = WorkAssignmentPlugin::WorkAssignment.create!(:name => 'Sample Work Assignment', :profile => organization) + + assert_no_match(/-#{not_member.identifier}/, work_assignment.cache_key({}, not_member)) + assert_match(/-#{member.identifier}/, work_assignment.cache_key({}, member)) + end + end -- libgit2 0.21.2