1 module CurrentApiClient
7 Thread.current[:api_client]
10 def current_api_client_authorization
11 Thread.current[:api_client_authorization]
15 Thread.current[:api_url_base]
18 def current_default_owner
19 # owner_uuid for newly created objects
20 ((current_api_client_authorization &&
21 current_api_client_authorization.default_owner_uuid) ||
22 (current_user && current_user.default_owner_uuid) ||
23 (current_user && current_user.uuid) ||
27 # Where is the client connecting from?
28 def current_api_client_ip_address
29 Thread.current[:api_client_ip_address]
32 # Is the current API client authorization scoped for the request?
33 def current_api_client_auth_has_scope(req_s)
34 (current_api_client_authorization.andand.scopes || []).select { |scope|
37 elsif scope.end_with? '/'
38 req_s.start_with? scope
46 [Server::Application.config.uuid_prefix,
48 '000000000000000'].join('-')
52 [Server::Application.config.uuid_prefix,
54 '000000000000000'].join('-')
59 real_current_user = Thread.current[:user]
60 Thread.current[:user] = User.new(is_admin: true, is_active: true)
61 $system_user = User.where('uuid=?', system_user_uuid).first
63 $system_user = User.new(uuid: system_user_uuid,
72 Thread.current[:user] = real_current_user
80 ActiveRecord::Base.transaction do
81 $system_group = Group.
82 where(uuid: system_group_uuid).first_or_create do |g|
83 g.update_attributes(name: "System group",
84 description: "System group")
85 User.all.collect(&:uuid).each do |user_uuid|
86 Link.create(link_class: 'permission',
88 tail_kind: 'arvados#group',
89 tail_uuid: system_group_uuid,
90 head_kind: 'arvados#user',
100 def act_as_system_user
102 user_was = Thread.current[:user]
103 Thread.current[:user] = system_user
107 Thread.current[:user] = user_was
110 Thread.current[:user] = system_user