at master 1.2 kB view raw
1diff --git a/lib/tasks/admin.rake b/lib/tasks/admin.rake 2index 37ef651f2b..b775129498 100644 3--- a/lib/tasks/admin.rake 4+++ b/lib/tasks/admin.rake 5@@ -107,3 +107,43 @@ task "admin:create" => :environment do 6 end 7 8 end 9+ 10+desc "Creates a forum administrator noninteractively" 11+task "admin:create_noninteractively" => :environment do 12+ email = ENV["ADMIN_EMAIL"] 13+ existing_user = User.find_by_email(email) 14+ 15+ # check if user account already exixts 16+ if existing_user 17+ admin = existing_user 18+ else 19+ # create new user 20+ admin = User.new 21+ end 22+ 23+ admin.email = email 24+ admin.name = ENV["ADMIN_NAME"] 25+ admin.username = ENV["ADMIN_USERNAME"] 26+ 27+ password = ENV["ADMIN_PASSWORD"] 28+ unless admin.confirm_password?(password) 29+ admin.password = password 30+ puts "Admin password set!" 31+ end 32+ 33+ admin.active = true 34+ 35+ # save/update user account 36+ saved = admin.save 37+ raise admin.errors.full_messages.join("\n") unless saved 38+ 39+ puts "Account created successfully with username #{admin.username}" unless existing_user 40+ 41+ # grant admin privileges 42+ admin.grant_admin! 43+ if admin.trust_level < 1 44+ admin.change_trust_level!(1) 45+ end 46+ admin.email_tokens.update_all confirmed: true 47+ admin.activate 48+end