X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b98ffafdc9e1b5904b200013ebe106959334c0c3..a7a482db3954fa6470be74f0e00f6e1e105e0b6c:/services/api/script/setup-new-user.rb diff --git a/services/api/script/setup-new-user.rb b/services/api/script/setup-new-user.rb index 19f5aeb7b7..1e033667dc 100755 --- a/services/api/script/setup-new-user.rb +++ b/services/api/script/setup-new-user.rb @@ -1,14 +1,17 @@ #!/usr/bin/env ruby +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 abort 'Error: Ruby >= 1.9.3 required.' if RUBY_VERSION < '1.9.3' require 'logger' -require 'trollop' +require 'optimist' log = Logger.new STDERR log.progname = $0.split('/').last -opts = Trollop::options do +opts = Optimist::options do banner '' banner "Usage: #{log.progname} " + "{user_uuid_or_email} {user_and_repo_name} {vm_uuid}" @@ -21,12 +24,15 @@ If creating a new user record, require authentication from an OpenID \ with this OpenID prefix *and* a matching email address in order to \ claim the account. eos + opt :send_notification_email, <<-eos, default: 'true' +Send notification email after successfully setting up the user. + eos end log.level = (ENV['DEBUG'] || opts.debug) ? Logger::DEBUG : Logger::WARN - + if ARGV.count != 3 - Trollop::die "required arguments are missing" + Optimist::die "required arguments are missing" end user_arg, user_repo_name, vm_uuid = ARGV @@ -39,8 +45,8 @@ begin found_user = arv.user.get(uuid: user_arg) rescue Arvados::TransactionFailedError found = arv.user.list(where: {email: user_arg})[:items] - - if found.count == 0 + + if found.count == 0 if !user_arg.match(/\w\@\w+\.\w+/) abort "About to create new user, but #{user_arg.inspect} " + "does not look like an email address. Stop." @@ -55,10 +61,12 @@ end # Invoke user setup method if (found_user) user = arv.user.setup uuid: found_user[:uuid], repo_name: user_repo_name, - vm_uuid: vm_uuid, openid_prefix: opts.openid_prefix + vm_uuid: vm_uuid, openid_prefix: opts.openid_prefix, + send_notification_email: opts.send_notification_email else user = arv.user.setup user: {email: user_arg}, repo_name: user_repo_name, - vm_uuid: vm_uuid, openid_prefix: opts.openid_prefix + vm_uuid: vm_uuid, openid_prefix: opts.openid_prefix, + send_notification_email: opts.send_notification_email end log.info {"user uuid: " + user[:uuid]}