-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsetup_hyrax.rake
64 lines (54 loc) · 1.97 KB
/
setup_hyrax.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
namespace :ngdr do
desc 'Setup Hyrax, will read from specified file usage: ngdr:setup_hyrax["setup.json"]'
task :"setup_hyrax", [:seedfile] => :environment do |task, args|
seedfile = args.seedfile
unless args.seedfile.present?
seedfile = Rails.root.join("seed","setup.json")
end
if (File.exists?(seedfile))
puts("Running hyrax setup from seedfile: #{seedfile}")
else
abort("ERROR: missing seedfile for hyrax setup: #{seedfile}")
end
seed = JSON.parse(File.read(seedfile))
##############################################
# make the requested users
######
depositor = false
admin = Role.where(name: "admin").first_or_create!
seed["users"].each do |user|
newuser = User.find_by(username: user["username"])
unless newuser
newuser = User.new(
username: user["username"],
display_name: user["name"],
email: user["email"],
user_identifier: user['user_identifier'],
employee_type_code: user['employee_type_code']
)
newuser.password = user["password"] if ENV['MDR_DEVISE_AUTH_MODULE'] == 'database_authenticatable'
newuser.save!
end
if user["role"] == "admin"
unless admin.users.include?(newuser)
admin.users << newuser
admin.save!
end
end
if user.has_key?("depositor")
depositor = newuser
end
end
# finished creating users
##############################################
##############################################
# Create default administrative set and load customized NIMS workflow
######
Rake::Task['hyrax:default_collection_types:create'].invoke
Rake::Task['ngdr:setup_workflow'].invoke
##############################################
# Create languages controlled vocabulary
######
Rake::Task['hyrax:controlled_vocabularies:language'].invoke if Qa::Authorities::Local.subauthority_for('languages').all.size == 0
end
end