projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into 14874-protected-collection-properties
[arvados.git]
/
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 561f8175126520e09f54b8d44c6f549050aa07ad..1e033667dcbc4b78646065b35648c684973ce3eb 100755
(executable)
--- a/
services/api/script/setup-new-user.rb
+++ b/
services/api/script/setup-new-user.rb
@@
-1,14
+1,17
@@
#!/usr/bin/env ruby
#!/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'
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
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}"
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
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
end
log.level = (ENV['DEBUG'] || opts.debug) ? Logger::DEBUG : Logger::WARN
-
+
if ARGV.count != 3
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
end
user_arg, user_repo_name, vm_uuid = ARGV
@@
-38,36
+44,31
@@
arv = Arvados.new(api_version: 'v1')
begin
found_user = arv.user.get(uuid: user_arg)
rescue Arvados::TransactionFailedError
begin
found_user = arv.user.get(uuid: user_arg)
rescue Arvados::TransactionFailedError
- found = arv.user.list(where: {email:
ARGV[0]
})[:items]
-
- if found.count == 0
+ found = arv.user.list(where: {email:
user_arg
})[:items]
+
+ 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."
end
elsif found.count != 1
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."
end
elsif found.count != 1
- abort "Found #{found.count} users " +
- "with uuid or email #{user_arg.inspect}. Stop."
+ abort "Found #{found.count} users with email. Stop."
else
found_user = found.first
end
end
else
found_user = found.first
end
end
-# Invoke user setup method
+# Invoke user setup method
if (found_user)
if (found_user)
- user = {uuid: found_user[:uuid]}
+ user = arv.user.setup uuid: found_user[:uuid], repo_name: user_repo_name,
+ vm_uuid: vm_uuid, openid_prefix: opts.openid_prefix,
+ send_notification_email: opts.send_notification_email
else
else
- user = {email: user_arg}
+ user = arv.user.setup user: {email: user_arg}, repo_name: user_repo_name,
+ vm_uuid: vm_uuid, openid_prefix: opts.openid_prefix,
+ send_notification_email: opts.send_notification_email
end
end
-if opts.openid_prefix
- puts "used the -o option"
-end
-
-user = arv.user.setup(user: user, repo_name: user_repo_name, vm_uuid: vm_uuid,
- openid_prefix: opts.openid_prefix)
-
-log.info { "user uuid: " + user[:uuid] }
+log.info {"user uuid: " + user[:uuid]}
puts user.inspect
puts user.inspect
-