X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/daed47277f97a1e972904b1fdcd16f8ce38a4e6a..98036435a54261258faadedeef0675eecfe4ff39:/services/api/test/functional/arvados/v1/virtual_machines_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/virtual_machines_controller_test.rb b/services/api/test/functional/arvados/v1/virtual_machines_controller_test.rb index d52a581adb..329bc1589a 100644 --- a/services/api/test/functional/arvados/v1/virtual_machines_controller_test.rb +++ b/services/api/test/functional/arvados/v1/virtual_machines_controller_test.rb @@ -23,6 +23,20 @@ class Arvados::V1::VirtualMachinesControllerTest < ActionController::TestCase assert_equal(perm.properties["username"], admin_login["username"]) end + test "groups propagated from permission" do + get_logins_for(:testvm2) + admin_login = find_login(:admin) + perm = links(:admin_can_login_to_testvm2) + assert_equal(perm.properties["groups"], admin_login["groups"]) + end + + test "groups is an empty list by default" do + get_logins_for(:testvm2) + active_login = find_login(:active) + perm = links(:active_can_login_to_testvm2) + assert_equal([], active_login["groups"]) + end + test "logins without usernames not listed" do get_logins_for(:testvm2) assert_response :success @@ -30,4 +44,32 @@ class Arvados::V1::VirtualMachinesControllerTest < ActionController::TestCase assert_empty(json_response. select { |login| login["user_uuid"] == spectator_uuid }) end + + test "logins without ssh keys are listed" do + u, vm = nil + act_as_system_user do + u = create :active_user, first_name: 'Bob', last_name: 'Blogin' + vm = VirtualMachine.create! hostname: 'foo.shell' + Link.create!(tail_uuid: u.uuid, + head_uuid: vm.uuid, + link_class: 'permission', + name: 'can_login', + properties: {'username' => 'bobblogin'}) + end + authorize_with :admin + get :logins, id: vm.uuid + assert_response :success + assert_equal 1, json_response['items'].length + assert_equal nil, json_response['items'][0]['public_key'] + assert_equal nil, json_response['items'][0]['authorized_key_uuid'] + assert_equal u.uuid, json_response['items'][0]['user_uuid'] + assert_equal 'bobblogin', json_response['items'][0]['username'] + end + + test 'get all logins' do + authorize_with :admin + get :get_all_logins + find_login :admin + find_login :active + end end