+ if found.count == 0 and opts.create
+ if !opts.force and !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
+ if opts.n
+ log.info "-n flag given. Stop before creating new user record."
+ exit 0
+ end
+ new_user = arv.user.create(user: {email: user_arg})
+ log.info { "created user: " + new_user[:uuid] }
+ login_perm_props = {identity_url_prefix: opts.openid_prefix }
+ oid_login_perm = arv.link.create(link: {
+ link_class: 'permission',
+ name: 'can_login',
+ tail_kind: 'email',
+ tail_uuid: user_arg,
+ head_kind: 'arvados#user',
+ head_uuid: new_user[:uuid],
+ properties: login_perm_props
+ })
+ log.info { "openid login permission: " + oid_login_perm[:uuid] }
+ found = [new_user]
+ end