forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb_create_data.rake
More file actions
85 lines (73 loc) · 1.97 KB
/
Copy pathdb_create_data.rake
File metadata and controls
85 lines (73 loc) · 1.97 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
namespace :db do
desc "Create a new user"
task :create_user => :environment do
require 'highline/import'
create_user_task
end
end
def create_user_task
shard = nil
account = nil
choose do |menu|
default = nil
Shard.all.each do |e|
default ||= e.name
menu.choice(e.name) do
shard = Shard.find(e.id)
shard.activate!
end
end
menu.default = default
menu.prompt = "Select a Shard: |#{default}| "
end
choose do |menu|
default = nil
Account.all.each do |a|
default = a.name if a.id == 1
menu.choice(a.name) do
account = Account.find(a.id)
end
end
menu.default = default
menu.prompt = "Select an Account: |#{default}| "
end
user_first_name = ask ( "User's first name: ")
user_last_name = ask ("User's last name: ")
user_login = ask ("User's login: ")
user_password = ask ("User's password: ") { |q| q.default = 'useruser' }
puts %Q{
Shard: #{shard.name}[#{shard.id}]
Account: #{account.name}[#{account.id}]
Admin User: #{user_first_name} #{user_last_name}
Username: #{user_login}
Password: #{user_password}
}
create_user_task unless agree("Does this look correct?") { |q| q.default = 'yes' }
ActiveRecord::Base.transaction do
begin
user = User.create!(
name: user_first_name + " " + user_last_name,
short_name: user_first_name,
sortable_name: user_last_name + " " + user_first_name
)
pseudonym = Pseudonym.create!(
:account => account,
:unique_id => user_login,
:user => user
)
user.register
pseudonym.password = pseudonym.password_confirmation = user_password
pseudonym.save!
puts "User Created!"
rescue => e
puts e
raise ActiveRecord::Rollback
end
puts "Failed to create User!" unless user.persisted?
end
if agree("Would you like to create another user?") { |q| q.default = 'yes' }
create_user_task
else
exit
end
end