add tutorials and references to home page
[arvados.git] / services / api / lib / current_api_client.rb
index 24d8b3ada996e77820b00a7241930c39e918e085..ab6d624ea5ea3899ca4a4f8acaabb7e39badd819 100644 (file)
@@ -30,4 +30,33 @@ module CurrentApiClient
   def current_api_client_trusted
     Thread.current[:api_client_trusted]
   end
+
+  def system_user_uuid
+    [Server::Application.config.uuid_prefix,
+     User.uuid_prefix,
+     '000000000000000'].join('-')
+  end
+
+  def system_user
+    if not $system_user
+      real_current_user = Thread.current[:user]
+      Thread.current[:user] = User.new(is_admin: true)
+      $system_user = User.where('uuid=?', system_user_uuid).first
+      if !$system_user
+        $system_user = User.new(uuid: system_user_uuid,
+                                is_admin: true,
+                                email: 'root',
+                                first_name: 'root',
+                                last_name: '')
+        $system_user.save!
+        $system_user.reload
+      end
+      Thread.current[:user] = real_current_user
+    end
+    $system_user
+  end
+
+  def act_as_system_user
+    Thread.current[:user] = system_user
+  end
 end