X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0f644e242ef37c911ad3dc25aca8135c339de349..707ed2964a24ebe940ae440af22fdcb56781fcbd:/services/api/app/controllers/arvados/v1/users_controller.rb diff --git a/services/api/app/controllers/arvados/v1/users_controller.rb b/services/api/app/controllers/arvados/v1/users_controller.rb index 5e1235210a..dc7e62f3e3 100644 --- a/services/api/app/controllers/arvados/v1/users_controller.rb +++ b/services/api/app/controllers/arvados/v1/users_controller.rb @@ -9,7 +9,7 @@ class Arvados::V1::UsersController < ApplicationController [:activate, :current, :system, :setup] skip_before_filter :render_404_if_no_object, only: [:activate, :current, :system, :setup] - before_filter :admin_required, only: [:setup, :unsetup] + before_filter :admin_required, only: [:setup, :unsetup, :update_uuid] def current if current_user @@ -118,6 +118,13 @@ class Arvados::V1::UsersController < ApplicationController show end + # Change UUID to a new (unused) uuid and transfer all owned/linked + # objects accordingly. + def update_uuid + @object.update_uuid(new_uuid: params[:new_uuid]) + show + end + protected def self._setup_requires_parameters @@ -140,6 +147,14 @@ class Arvados::V1::UsersController < ApplicationController } end + def self._update_uuid_requires_parameters + { + new_uuid: { + type: 'string', required: true, + }, + } + end + def apply_filters(model_class=nil) return super if @read_users.any?(&:is_admin) if params[:uuid] != current_user.andand.uuid