2021-11-25 16:26:55 +01:00
module Administrateurs
2019-04-12 10:43:51 +02:00
class ProcedureAdministrateursController < AdministrateurController
2019-09-24 16:38:58 +02:00
before_action :retrieve_procedure , except : [ :new ]
2022-07-21 16:52:31 +02:00
before_action :ensure_not_super_admin! , only : [ :create ]
2022-07-21 18:56:01 +02:00
2019-04-12 10:43:51 +02:00
def index
end
def create
email = params . require ( :administrateur ) [ :email ] & . strip & . downcase
# Find the admin
2020-01-30 17:08:09 +01:00
administrateur = Administrateur . by_email ( email )
2019-04-12 10:43:51 +02:00
if administrateur . nil?
2021-10-27 18:59:18 +02:00
flash . alert = " L’ administrateur « #{ email } » n’ existe pas. Invitez-le à demander un compte administrateur à l’ adresse <a href= #{ DEMANDE_INSCRIPTION_ADMIN_PAGE_URL } > #{ DEMANDE_INSCRIPTION_ADMIN_PAGE_URL } </a>. "
2019-04-12 10:43:51 +02:00
return
end
# Prevent duplicates (also enforced in the database in administrateurs_procedures)
if @procedure . administrateurs . include? ( administrateur )
flash . alert = " L’ administrateur « #{ administrateur . email } » est déjà administrateur de « #{ @procedure . libelle } ». "
return
end
# Actually add the admin
@procedure . administrateurs << administrateur
@administrateur = administrateur
flash . notice = " L’ administrateur « #{ administrateur . email } » a été ajouté à la démarche « #{ @procedure . libelle } ». "
end
def destroy
administrateur = @procedure . administrateurs . find ( params [ :id ] )
# Prevent self-removal (Also enforced in the UI)
if administrateur == current_administrateur
2022-01-05 16:21:59 +01:00
flash . alert = " Vous ne pouvez pas vous retirer vous-même d’ une démarche. "
return
2019-04-12 10:43:51 +02:00
end
# Actually remove the admin
@procedure . administrateurs . delete ( administrateur )
@administrateur = administrateur
flash . notice = " L’ administrateur \ « #{ administrateur . email } » a été retiré de la démarche « #{ @procedure . libelle } ». "
rescue ActiveRecord :: ActiveRecordError = > e
flash . alert = e . message
end
end
end