1 # frozen_string_literal: true
3 require "active_support/testing/time_helpers"
5 def create_user(display_name:, password:, email:, admin: false)
6 user = User.find_or_create_by!(:display_name => display_name) do |record|
8 record.pass_crypt = password
9 record.pass_crypt_confirmation = password
10 record.tou_agreed = Time.now.utc
11 record.terms_seen = true
12 record.terms_agreed = Time.now.utc
13 record.email_valid = true
14 record.data_public = true
19 user.roles.find_or_create_by!(:role => "administrator") do |record|
20 record.granter_id = user.id
24 initial_line = admin ? "Created admin user" : "Created user"
28 - Display name: #{display_name}
30 - Password: #{password}
36 desc "Populate the development database with some fake data"
37 task :populate => :environment do
38 raise "This task can only be run in development mode" unless Rails.env.development?
40 include ActiveSupport::Testing::TimeHelpers
42 # Ensure that all dates (e.g. terms_agreed) are consistent
43 travel_to(Time.utc(2015, 10, 21, 12, 0, 0)) do
44 create_user(:display_name => "admin", :password => "password", :email => "admin@example.com", :admin => true)
45 create_user(:display_name => "mapper", :password => "password", :email => "mapper@example.com")
49 # Empty line to separate the output of this
50 # from that of the above
52 Oauth::Util.register_apps("admin")
53 rescue Oauth::Util::ExistingSettingsError
54 # Error here is no big deal