X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/754d85439d5e9a835562689dee597b782932914f..6e8c3cc1fe4328b708d5979e27632835f74261fb:/services/api/test/factories/user.rb diff --git a/services/api/test/factories/user.rb b/services/api/test/factories/user.rb index 7c48fc0ccc..344e571ef7 100644 --- a/services/api/test/factories/user.rb +++ b/services/api/test/factories/user.rb @@ -1,13 +1,29 @@ -include CurrentApiClient +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + +class CurrentApiClientHelper + extend CurrentApiClient +end FactoryGirl.define do factory :user do - before :create do - Thread.current[:user_was] = Thread.current[:user] - Thread.current[:user] = system_user + transient do + join_groups [] end - after :create do - Thread.current[:user] = Thread.current[:user_was] + after :create do |user, evaluator| + CurrentApiClientHelper.act_as_system_user do + evaluator.join_groups.each do |g| + Link.create!(tail_uuid: user.uuid, + head_uuid: g.uuid, + link_class: 'permission', + name: 'can_read') + Link.create!(tail_uuid: g.uuid, + head_uuid: user.uuid, + link_class: 'permission', + name: 'can_read') + end + end end first_name "Factory" last_name "Factory" @@ -17,7 +33,7 @@ FactoryGirl.define do factory :active_user do is_active true after :create do |user| - act_as_system_user do + CurrentApiClientHelper.act_as_system_user do Link.create!(tail_uuid: user.uuid, head_uuid: Group.where('uuid ~ ?', '-f+$').first.uuid, link_class: 'permission', @@ -25,5 +41,10 @@ FactoryGirl.define do end end end + to_create do |instance| + CurrentApiClientHelper.act_as_system_user do + instance.save! + end + end end end