X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/ab1f34fe3668832bd403a1eaf6711d1ba1184db1..a028b4c3222b379352a538b7b9f921876e31361c:/services/api/lib/current_api_client.rb diff --git a/services/api/lib/current_api_client.rb b/services/api/lib/current_api_client.rb index 884c4f0c26..3f595af8b5 100644 --- a/services/api/lib/current_api_client.rb +++ b/services/api/lib/current_api_client.rb @@ -25,6 +25,16 @@ module CurrentApiClient Thread.current[:api_client_ip_address] end + # Does the current API client authorization include any of ok_scopes? + def current_api_client_auth_has_scope(ok_scopes) + auth_scopes = current_api_client_authorization.andand.scopes || [] + unless auth_scopes.index('all') or (auth_scopes & ok_scopes).any? + logger.warn "Insufficient auth scope: need #{ok_scopes}, #{current_api_client_authorization.inspect} has #{auth_scopes}" + return false + end + true + end + def system_user_uuid [Server::Application.config.uuid_prefix, User.uuid_prefix,