diff options
author | Rémy Coutable <remy@rymai.me> | 2018-12-03 19:37:15 +0100 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-12-06 10:06:15 +0100 |
commit | db7f6a1d8bedc5e2b18a06421abba6174dc241aa (patch) | |
tree | 22caa179b7fe219c3370bca357e7bbf5b957cdd6 /db/fixtures/production/002_admin.rb | |
parent | 73dce6c87024116d70fe37edd0ed78422b20041e (diff) | |
download | gitlab-ce-db7f6a1d8bedc5e2b18a06421abba6174dc241aa.tar.gz |
Ensure the default ApplicationSetting record is created first
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'db/fixtures/production/002_admin.rb')
-rw-r--r-- | db/fixtures/production/002_admin.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/db/fixtures/production/002_admin.rb b/db/fixtures/production/002_admin.rb new file mode 100644 index 00000000000..1c7c89f7bbd --- /dev/null +++ b/db/fixtures/production/002_admin.rb @@ -0,0 +1,40 @@ +user_args = { + email: ENV['GITLAB_ROOT_EMAIL'].presence || 'admin@example.com', + name: 'Administrator', + username: 'root', + admin: true +} + +if ENV['GITLAB_ROOT_PASSWORD'].blank? + user_args[:password_automatically_set] = true + user_args[:force_random_password] = true +else + user_args[:password] = ENV['GITLAB_ROOT_PASSWORD'] +end + +# Only admins can create other admin users in Users::CreateService so to solve +# the chicken-and-egg problem, we pass a non-persisted admin user to the service. +transient_admin = User.new(admin: true) +user = Users::CreateService.new(transient_admin, user_args.merge!(skip_confirmation: true)).execute + +if user.persisted? + puts "Administrator account created:".color(:green) + puts + puts "login: root".color(:green) + + if user_args.key?(:password) + puts "password: #{user_args[:password]}".color(:green) + else + puts "password: You'll be prompted to create one on your first visit.".color(:green) + end + puts +else + puts "Could not create the default administrator account:".color(:red) + puts + user.errors.full_messages.map do |message| + puts "--> #{message}".color(:red) + end + puts + + exit 1 +end |