if !@object[:email]
return
end
-=begin
- if found_objects.size > 1
- logger.warn ("Found #{found_objects.size} users with email #{user_email}. Stop.")
- raise ArgumentError.new "Found #{found_objects.size} users with email #{user_email}. Stop."
- elsif found_objects.size == 1
- found_object = found_objects.first
- end
-=end
found_objects = User.where('email=?', @object[:email])
found_object = found_objects.first
banner ''
opt :debug, <<-eos
Show debug messages.
- eos
- opt :create, <<-eos
-Create a new user with the given email address if an existing user \
-is not found.
eos
opt :openid_prefix, <<-eos, default: 'https://www.google.com/accounts/o8/id'
If creating a new user record, require authentication from an OpenID \
"with uuid or email #{user_arg.inspect}. Stop."
else
user = found.first
- # Found user. Update ther user links
- user = arv.user.setup(repo_name: user_repo_name, vm_uuid: vm_uuid,
- user: {email: user[:uuid]})
+ # Found user. Update the user links
+ user = arv.user.setup(user: {email: user[:uuid]}, repo_name: user_repo_name,
+ vm_uuid: vm_uuid, openid_prefix: opts.openid_prefix)
end
puts "USER = #{user.inspect}"
authorize_with :admin
post :setup, {
+ user: {uuid: 'not_an_existing_uuid_and_not_email_format'},
repo_name: 'test_repo',
- vm_uuid: 'no_such_vm',
- user: {uuid: 'not_an_existing_uuid_and_not_email_format'}
+ vm_uuid: 'no_such_vm'
}
response_body = JSON.parse(@response.body)
response_errors = response_body['errors']
authorize_with :admin
post :setup, {
+ user: {uuid: inactive_user['uuid']},
repo_name: 'test_repo',
- vm_uuid: 'no_such_vm',
- user: {uuid: inactive_user['uuid']}
+ vm_uuid: 'no_such_vm'
}
assert_response :success
authorize_with :admin
post :setup, {
- repo_name: 'test_repo',
+ user: {email: 'abc@xyz.com'},
vm_uuid: 'no_such_vm',
- user: {email: 'abc@xyz.com'}
+ repo_name: 'test_repo'
}
assert_response :success
# create again
post :setup, {
- user_param: 'abc@xyz.com',
repo_name: 'test_repo',
vm_uuid: 'no_such_vm',
- user: {}
+ user: {email: 'abc@xyz.com'}
}
assert_response :success
authorize_with :admin
post :setup, {
- repo_name: 'test_repo',
- vm_uuid: @vm_uuid,
user: {
first_name: "in_create_test_first_name",
last_name: "test_last_name",
email: "test@abc.com"
- }
+ },
+ repo_name: 'test_repo',
+ vm_uuid: @vm_uuid
}
assert_response :success
created = JSON.parse(@response.body)