X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/eb7227693e8847a65798afa7f7e8a4ffe8a199a4..9f37a732c9bfb3892231765f37e213af4e037e68:/services/api/test/unit/log_test.rb diff --git a/services/api/test/unit/log_test.rb b/services/api/test/unit/log_test.rb index 3876775916..0c85d4c6e4 100644 --- a/services/api/test/unit/log_test.rb +++ b/services/api/test/unit/log_test.rb @@ -65,13 +65,6 @@ class LogTest < ActiveSupport::TestCase end end - def set_user_from_auth(auth_name) - client_auth = api_client_authorizations(auth_name) - Thread.current[:api_client_authorization] = client_auth - Thread.current[:api_client] = client_auth.api_client - Thread.current[:user] = client_auth.user - end - test "creating a user makes a log" do set_user_from_auth :admin_trustedclient u = User.new(first_name: "Log", last_name: "Test") @@ -224,4 +217,27 @@ class LogTest < ActiveSupport::TestCase auth.destroy assert_auth_logged_with_clean_properties(auth, :destroy) end + + test "use ownership and permission links to determine which logs a user can see" do + c = Log.readable_by(users(:admin)).order("id asc").each.to_a + assert_equal 6, c.size + assert_equal 1, c[0].id # no-op + assert_equal 2, c[1].id # admin changes repository foo, which is owned by active user + assert_equal 3, c[2].id # admin changes specimen owned_by_spectator + assert_equal 4, c[3].id # foo collection added, readable by active through link + assert_equal 5, c[4].id # baz collection added, readable by active and spectator through group 'all users' group membership + assert_equal 6, c[5].id # log_owned_by_active + + c = Log.readable_by(users(:active)).order("id asc").each.to_a + assert_equal 4, c.size + assert_equal 2, c[0].id # admin changes repository foo, which is owned by active user + assert_equal 4, c[1].id # foo collection added, readable by active through link + assert_equal 5, c[2].id # baz collection added, readable by active and spectator through group 'all users' group membership + assert_equal 6, c[3].id # log_owned_by_active + + c = Log.readable_by(users(:spectator)).order("id asc").each.to_a + assert_equal 2, c.size + assert_equal 3, c[0].id # admin changes specimen owned_by_spectator + assert_equal 5, c[1].id # baz collection added, readable by active and spectator through group 'all users' group membership + end end