#-- encoding: UTF-8 #-- copyright # OpenProject is a project management system. # Copyright (C) 2012-2015 the OpenProject Foundation (OPF) # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 3. # # OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: # Copyright (C) 2006-2013 Jean-Philippe Lang # Copyright (C) 2010-2013 the ChiliProject Team # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # See doc/COPYRIGHT.rdoc for more details. #++ class AdminUserSeeder < Seeder def seed_data! user = new_admin unless user.save! validate: false puts 'Seeding admin failed:' user.errors.full_messages.each do |msg| puts " #{msg}" end end end def applicable? User.admin.empty? end def not_applicable_message 'No need to seed an admin as there already is one.' end def new_admin User.new.tap do |user| user.admin = true user.login = 'admin' user.password = 'admin' user.firstname = 'OpenProject' user.lastname = 'Admin' user.mail = ENV.fetch('ADMIN_EMAIL') { 'admin@example.net' } user.mail_notification = User::USER_MAIL_OPTION_ONLY_MY_EVENTS.first user.language = I18n.locale.to_s user.status = User::STATUSES[:active] user.force_password_change = Rails.env != 'development' end end end