From 71c57454fc3adf2d63db8b3cb1d0e8ecdff5c93f Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Wed, 2 Sep 2020 17:24:25 -0400 Subject: [PATCH] 16803: Create settings.conf for the user. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- services/login-sync/bin/arvados-login-sync | 34 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/services/login-sync/bin/arvados-login-sync b/services/login-sync/bin/arvados-login-sync index d5ec159867..61260990c9 100755 --- a/services/login-sync/bin/arvados-login-sync +++ b/services/login-sync/bin/arvados-login-sync @@ -121,8 +121,8 @@ begin end end - @homedir = pwnam[l[:username]].dir - userdotssh = File.join(@homedir, ".ssh") + homedir = pwnam[l[:username]].dir + userdotssh = File.join(homedir, ".ssh") Dir.mkdir(userdotssh) if !File.exist?(userdotssh) newkeys = "###\n###\n" + keys[l[:username]].join("\n") + "\n###\n###\n" @@ -150,10 +150,38 @@ begin f.write(newkeys) f.close() end + + userdotconfig = File.join(homedir, ".config") + if !File.exist?(userdotconfig) + Dir.mkdir(userdotconfig) + FileUtils.chown_R(l[:username], nil, userdotconfig) + File.chmod(0700, userdotconfig) + end + + configarvados = File.join(userdotconfig, "arvados") + Dir.mkdir(configarvados) if !File.exist?(configarvados) + + tokenfile = File.join(configarvados, "settings.conf") + + begin + if !File.exist?(tokenfile) + user_token = arv.api_client_authorization.create(api_client_authorization: {owner_uuid: l[:user_uuid], api_client_id: 0}) + f = File.new(tokenfile, 'w') + f.write("ARVADOS_API_HOST=#{ENV['ARVADOS_API_HOST']}\n") + f.write("ARVADOS_API_TOKEN=v2/#{user_token[:uuid]}/#{user_token[:api_token]}\n") + f.close() + File.chmod(0600, tokenfile) + end + rescue => e + STDERR.puts "Error setting token for #{l[:username]}: #{e}" + end + FileUtils.chown_R(l[:username], nil, userdotssh) + FileUtils.chown_R(l[:username], nil, configarvados) File.chmod(0700, userdotssh) - File.chmod(0750, @homedir) + File.chmod(0750, homedir) File.chmod(0600, keysfile) + File.chmod(0700, configarvados) end devnull.close -- 2.30.2