49 lines
1.3 KiB
Ruby
49 lines
1.3 KiB
Ruby
class Netig
|
|
hash_branch "account" do |r|
|
|
rodauth.require_account
|
|
|
|
member = DB[:members]
|
|
.where(account_id: rodauth.session_value)
|
|
.first
|
|
|
|
r.halt [404, {}, ["Fiche membre introuvable."]] unless member
|
|
|
|
@page_title = "Mon espace — NETig"
|
|
@page_description = "Consultez vos informations personnelles et suivez votre adhésion à l'association NETig."
|
|
@canonical_url = "https://netig.net/account"
|
|
|
|
r.is do
|
|
r.get do
|
|
@membership = DB[:memberships]
|
|
.where(member_id: member[:id])
|
|
.order(Sequel.desc(:requested_at), Sequel.desc(:id))
|
|
.first
|
|
|
|
view "account"
|
|
end
|
|
end
|
|
|
|
r.post "membership" do
|
|
active_membership = DB[:memberships]
|
|
.where(
|
|
member_id: member[:id],
|
|
status: %w[pending accepted]
|
|
)
|
|
.first
|
|
|
|
if active_membership
|
|
flash["error"] = "Une demande d'adhésion est déjà en cours ou acceptée."
|
|
else
|
|
begin
|
|
DB[:memberships].insert(member_id: member[:id])
|
|
flash["notice"] = "Votre demande d'adhésion a été transmise au Noyau."
|
|
rescue Sequel::UniqueConstraintViolation
|
|
flash["error"] = "Une demande d'adhésion est déjà en cours."
|
|
end
|
|
end
|
|
|
|
r.redirect "/account"
|
|
end
|
|
end
|
|
end
|