Merge branch '8784-dir-listings'
[arvados.git] / services / api / script / create_superuser_token.rb
index d119f8a887a1244f64e58013da4352fd591b635e..3d5de35fd7f5c10f1c05460305e155b6a50f9f55 100755 (executable)
@@ -1,4 +1,7 @@
 #!/usr/bin/env ruby
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
 
 # Install the supplied string (or a randomly generated token, if none
 # is given) as an API token that authenticates to the system user
@@ -6,30 +9,10 @@
 #
 # Print the token on stdout.
 
-supplied_token = ARGV[0]
-
-require File.dirname(__FILE__) + '/../config/boot'
-require File.dirname(__FILE__) + '/../config/environment'
+require './lib/create_superuser_token'
+include CreateSuperUserToken
 
-include ApplicationHelper
-act_as_system_user
-
-if supplied_token
-  api_client_auth = ApiClientAuthorization.
-    where(api_token: supplied_token).
-    first
-  if api_client_auth && !api_client_auth.user.uuid.match(/-000000000000000$/)
-    raise ActiveRecord::RecordNotUnique("Token already exists but is not a superuser token.")
-  end
-end
-
-if !api_client_auth
-  api_client_auth = ApiClientAuthorization.
-    new(user: system_user,
-        api_client_id: 0,
-        created_by_ip_address: '::1',
-        api_token: supplied_token)
-  api_client_auth.save!
-end
+supplied_token = ARGV[0]
 
-puts api_client_auth.api_token
+token = CreateSuperUserToken.create_superuser_token supplied_token
+puts token