From d1a515da90e0871b11f1e66564f83ccf726ccc8d Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Thu, 18 Jan 2018 15:25:51 +0100 Subject: [PATCH] Allow first user seeding from env variables [SCI-1949] --- app/utilities/users_generator.rb | 13 ++++++------ config/initializers/extends.rb | 2 ++ db/seeds.rb | 34 ++++++++++++++++++++++---------- 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/app/utilities/users_generator.rb b/app/utilities/users_generator.rb index b4678ae61..da4ed8524 100644 --- a/app/utilities/users_generator.rb +++ b/app/utilities/users_generator.rb @@ -23,12 +23,13 @@ module UsersGenerator password, confirmed, private_team_name, - team_ids) - nu = User.new(full_name: full_name, - initials: get_user_initials(full_name), - email: email, - password: password, - password_confirmation: password) + team_ids, + options = {}) + nu = User.new({ full_name: full_name, + initials: get_user_initials(full_name), + email: email, + password: password, + password_confirmation: password }.merge(options)) nu.confirmed_at = Time.now if confirmed nu.save! diff --git a/config/initializers/extends.rb b/config/initializers/extends.rb index 27495f574..709c25017 100644 --- a/config/initializers/extends.rb +++ b/config/initializers/extends.rb @@ -50,4 +50,6 @@ class Extends API_PLUGABLE_AUTH_METHODS = [] OMNIAUTH_PROVIDERS = [] + + INITIAL_USER_OPTIONS = {} end diff --git a/db/seeds.rb b/db/seeds.rb index fea6d4199..5f9f93555 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,12 +1,26 @@ include UsersGenerator -# Create admin user -admin_password = 'inHisHouseAtRlyehDeadCthulhuWaitsDreaming' -create_user( - 'Admin', - 'admin@scinote.net', - admin_password, - true, - Constants::DEFAULT_PRIVATE_TEAM_NAME, - [] -) +if User.count.zero? + if ENV['ADMIN_NAME'].present? && + ENV['ADMIN_EMAIL'].present? && + ENV['ADMIN_PASSWORD'].present? + admin_name = ENV['ADMIN_NAME'] + admin_email = ENV['ADMIN_EMAIL'] + admin_password = ENV['ADMIN_PASSWORD'] + else + admin_name = 'Admin' + admin_email = 'admin@scinote.net' + admin_password = 'inHisHouseAtRlyehDeadCthulhuWaitsDreaming' + end + + # Create admin user + create_user( + admin_name, + admin_email, + admin_password, + true, + Constants::DEFAULT_PRIVATE_TEAM_NAME, + [], + Extends::INITIAL_USER_OPTIONS + ) +end