forked from External/greenlight
Create a rake task to create users (#708)
This commit is contained in:
parent
e0afcdec23
commit
2f52310d46
|
@ -5,30 +5,6 @@ require 'bigbluebutton_api'
|
|||
namespace :admin do
|
||||
desc "Creates an administrator account"
|
||||
task :create, [:name, :email, :password, :role] => :environment do |_task, args|
|
||||
u = {
|
||||
name: args[:name] || 'Administrator',
|
||||
password: args[:password] || Rails.configuration.admin_password_default,
|
||||
email: args[:email] || 'admin@example.com',
|
||||
}
|
||||
u[:email].prepend "superadmin-" if args[:role] == "super_admin"
|
||||
|
||||
admin = User.find_by(email: u[:email])
|
||||
|
||||
# Create administrator account if it doesn't exist
|
||||
unless admin
|
||||
admin = User.create(name: u[:name], email: u[:email], password: u[:password],
|
||||
password_confirmation: u[:password], provider: 'greenlight', email_verified: true)
|
||||
|
||||
if args[:role] == "super_admin"
|
||||
admin.remove_role(:user)
|
||||
admin.add_role(:super_admin)
|
||||
else
|
||||
admin.add_role(:admin)
|
||||
end
|
||||
end
|
||||
puts "Administrator account succesfully created."
|
||||
puts "Email: #{u[:email]}"
|
||||
puts "Password: #{u[:password]}"
|
||||
puts "PLEASE CHANGE YOUR PASSWORD IMMEDIATELY" if u[:password] == Rails.configuration.admin_password_default
|
||||
Rake::Task["user:create"].invoke(args[:name], args[:email], args[:password], "admin")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'bigbluebutton_api'
|
||||
|
||||
namespace :user do
|
||||
desc "Creates a user account"
|
||||
task :create, [:name, :email, :password, :role] => :environment do |_task, args|
|
||||
u = {
|
||||
name: args[:name],
|
||||
password: args[:password],
|
||||
email: args[:email],
|
||||
role: args[:role] || "user"
|
||||
}
|
||||
|
||||
if u[:role] == "admin"
|
||||
# Set default variables
|
||||
u[:name] = "Administrator" if u[:name].blank?
|
||||
u[:password] = Rails.configuration.admin_password_default if u[:password].blank?
|
||||
u[:email] = "admin@example.com" if u[:email].blank?
|
||||
elsif u[:name].blank? || u[:password].blank? || u[:email].blank?
|
||||
# Check that all fields exist
|
||||
puts "Missing Arguments"
|
||||
exit
|
||||
end
|
||||
u[:email].prepend "superadmin-" if args[:role] == "super_admin"
|
||||
|
||||
# Create account if it doesn't exist
|
||||
if !User.exists?(email: u[:email])
|
||||
user = User.create(name: u[:name], email: u[:email], password: u[:password],
|
||||
provider: 'greenlight', email_verified: true)
|
||||
|
||||
unless user.valid?
|
||||
puts "Invalid Arguments"
|
||||
puts user.errors.messages
|
||||
exit
|
||||
end
|
||||
|
||||
if u[:role] == "super_admin"
|
||||
user.remove_role(:user)
|
||||
user.add_role(:super_admin)
|
||||
elsif u[:role] == "admin"
|
||||
user.add_role(:admin)
|
||||
end
|
||||
|
||||
puts "Account succesfully created."
|
||||
puts "Email: #{u[:email]}"
|
||||
puts "Password: #{u[:password]}"
|
||||
puts "Role: #{u[:role]}"
|
||||
puts "PLEASE CHANGE YOUR PASSWORD IMMEDIATELY" if u[:password] == Rails.configuration.admin_password_default
|
||||
else
|
||||
puts "Account with that email already exists"
|
||||
puts "Email: #{u[:email]}"
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue