X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/57dbb702fde186b90fb2ad2504a35603a33b15dc..8e69317214ad56a6255f56725fa3b966c663eda3:/services/api/app/controllers/arvados/v1/api_client_authorizations_controller.rb diff --git a/services/api/app/controllers/arvados/v1/api_client_authorizations_controller.rb b/services/api/app/controllers/arvados/v1/api_client_authorizations_controller.rb index 17c5c4b889..8fd915ddfb 100644 --- a/services/api/app/controllers/arvados/v1/api_client_authorizations_controller.rb +++ b/services/api/app/controllers/arvados/v1/api_client_authorizations_controller.rb @@ -2,6 +2,7 @@ class Arvados::V1::ApiClientAuthorizationsController < ApplicationController accept_attribute_as_json :scopes, Array before_filter :current_api_client_is_trusted before_filter :admin_required, :only => :create_system_auth + skip_before_filter :render_404_if_no_object, :only => :create_system_auth def self._create_system_auth_requires_parameters { @@ -10,13 +11,13 @@ class Arvados::V1::ApiClientAuthorizationsController < ApplicationController } end def create_system_auth - api_client_auth = ApiClientAuthorization. + @object = ApiClientAuthorization. new(user_id: system_user.id, api_client_id: params[:api_client_id] || current_api_client.andand.id, created_by_ip_address: remote_ip, scopes: Oj.load(params[:scopes] || '["all"]')) - api_client_auth.save! - render :json => api_client_auth.as_api_response(:superuser) + @object.save! + show end def create @@ -27,6 +28,7 @@ class Arvados::V1::ApiClientAuthorizationsController < ApplicationController resource_attrs[:user_id] = User.where(uuid: resource_attrs.delete(:owner_uuid)).first.andand.id end + resource_attrs[:api_client_id] = Thread.current[:api_client].id super end