demarches-normaliennes/app/controllers/manager/administrateurs_controller.rb
2019-08-20 12:01:36 +02:00

57 lines
1.6 KiB
Ruby

module Manager
class AdministrateursController < Manager::ApplicationController
def create
administrateur = current_administration.invite_admin(create_administrateur_params[:email])
if administrateur.errors.empty?
flash.notice = "Administrateur créé"
redirect_to manager_administrateurs_path
else
render :new, locals: {
page: Administrate::Page::Form.new(dashboard, administrateur)
}
end
end
def reinvite
Administrateur.find_inactive_by_id(params[:id]).invite!(current_administration.id)
flash.notice = "Invitation renvoyée"
redirect_to manager_administrateur_path(params[:id])
end
def enable_feature
administrateur = Administrateur.find(params[:id])
params[:features].each do |key, enable|
if enable
administrateur.enable_feature(key.to_sym)
else
administrateur.disable_feature(key.to_sym)
end
end
head :ok
end
def delete
administrateur = Administrateur.find(params[:id])
if !administrateur.can_be_deleted?
fail "Impossible de supprimer cet administrateur car il a des dossiers ou des procédures"
end
administrateur.dossiers.each(&:delete_and_keep_track)
administrateur.destroy
logger.info("L'administrateur #{administrateur.id} est supprimé par #{current_administration.id}")
flash[:notice] = "L'administrateur #{administrateur.id} est supprimé"
redirect_to manager_administrateurs_path
end
private
def create_administrateur_params
params.require(:administrateur).permit(:email)
end
end
end