2019-04-12 10:43:51 +02:00
module NewAdministrateur
class ProcedureAdministrateursController < AdministrateurController
2019-09-24 16:38:58 +02:00
before_action :retrieve_procedure , except : [ :new ]
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?
2020-09-24 09:57:43 +02:00
flash . alert = " L’ administrateur « #{ email } » n’ existe pas. Invitez-le à demander un compte administrateur à l’ addresse <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
2019-05-03 09:18:16 +02:00
flash . error = " Vous ne pouvez pas vous retirer vous-même d’ une démarche. "
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