X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e39a7d5704932cbec606e85cdca50aa38a1ed053..5b863886118890cc81b728a3a606ea823c836f2b:/services/api/test/integration/api_client_authorizations_scopes_test.rb diff --git a/services/api/test/integration/api_client_authorizations_scopes_test.rb b/services/api/test/integration/api_client_authorizations_scopes_test.rb index a1a20d428e..dfb57496a7 100644 --- a/services/api/test/integration/api_client_authorizations_scopes_test.rb +++ b/services/api/test/integration/api_client_authorizations_scopes_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + # The v1 API uses token scopes to control access to the REST API at the path # level. This is enforced in the base ApplicationController, making it a # functional test that we can run against many different controllers. @@ -23,6 +27,20 @@ class ApiTokensScopeTest < ActionDispatch::IntegrationTest assert_response 403 end + test "narrow + wide scoped tokens for different users" do + get_args = [{ + reader_tokens: [api_client_authorizations(:anonymous).api_token] + }, auth(:active_userlist)] + get(v1_url('users'), *get_args) + assert_response :success + get(v1_url('users', ''), *get_args) # Add trailing slash. + assert_response :success + get(v1_url('users', 'current'), *get_args) + assert_response 403 + get(v1_url('virtual_machines'), *get_args) + assert_response 403 + end + test "specimens token can see exactly owned specimens" do get_args = [{}, auth(:active_specimens)] get(v1_url('specimens'), *get_args)