Add registration

This commit is contained in:
julien committed 2026-11-03 12:08:57 +01:00
1 parent 137e53618b
commit e5ec0ff1a1
5 files changed
+291 -125

No files matched your search

-89
View File
@@ -1,89 +0,0 @@
#!/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éé."