Remove admin account
This commit is contained in:
1 parent
4f28a59c7e
commit
db316b2914
13 files changed
+372
-144
No files matched your search
@@ -0,0 +1,89 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
environment = ENV.fetch("RACK_ENV", "development")
|
||||
require "dotenv/load" if environment == "development"
|
||||
|
||||
abort "Ce script est réservé au développement." unless
|
||||
ENV.fetch("RACK_ENV", "development") == "development"
|
||||
|
||||
require "io/console"
|
||||
require "rodauth"
|
||||
|
||||
require_relative "../lib/database"
|
||||
|
||||
console = IO.console or abort "Terminal interactif requis."
|
||||
|
||||
console.print "Adresse électronique : "
|
||||
email = console.gets&.strip&.downcase
|
||||
|
||||
abort "Adresse électronique obligatoire." if email.to_s.empty?
|
||||
|
||||
existing_account = DB[:accounts]
|
||||
.where(Sequel.function(:lower, :email) => email)
|
||||
.count
|
||||
.positive?
|
||||
|
||||
abort "Ce compte existe déjà." if existing_account
|
||||
|
||||
console.print "Prénom : "
|
||||
first_name = console.gets&.strip
|
||||
|
||||
console.print "Nom : "
|
||||
last_name = console.gets&.strip
|
||||
|
||||
abort "Prénom et nom obligatoires." if
|
||||
first_name.to_s.empty? || last_name.to_s.empty?
|
||||
|
||||
password = console.getpass("Mot de passe : ")
|
||||
confirmation = console.getpass("Confirmer le mot de passe : ")
|
||||
|
||||
abort "Mot de passe obligatoire." if password.to_s.empty?
|
||||
abort "Les mots de passe ne correspondent pas." unless
|
||||
password == confirmation
|
||||
|
||||
verified_status_id = DB[:account_statuses]
|
||||
.where(name: "Verified")
|
||||
.get(:id)
|
||||
|
||||
abort "Statut Verified introuvable." unless verified_status_id
|
||||
|
||||
console.puts
|
||||
console.puts "Compte : #{first_name} #{last_name} (#{email})"
|
||||
console.puts
|
||||
console.print "Confirmer la création ? [o/N] "
|
||||
|
||||
abort "Opération annulée." unless %w[o oui].include?(
|
||||
console.gets&.strip&.downcase
|
||||
)
|
||||
|
||||
auth = Rodauth.lib do
|
||||
db DB
|
||||
enable :create_account
|
||||
|
||||
already_logged_in { super() }
|
||||
end
|
||||
|
||||
DB.transaction do
|
||||
auth.create_account(
|
||||
login: email,
|
||||
password: password
|
||||
)
|
||||
|
||||
account_id = auth.account_id_for_login(login: email)
|
||||
|
||||
DB[:accounts]
|
||||
.where(id: account_id)
|
||||
.update(status_id: verified_status_id)
|
||||
|
||||
DB[:members].insert(
|
||||
account_id: account_id,
|
||||
kind: "individual",
|
||||
first_name: first_name,
|
||||
last_name: last_name,
|
||||
organization_name: nil,
|
||||
core_member: false
|
||||
)
|
||||
end
|
||||
|
||||
puts "Compte de développement créé."
|
||||
|
||||
Reference in new issue
Block a user