feat: remove_gestionnaire

This commit is contained in:
seb-by-ouidou 2023-08-29 17:08:27 +00:00 committed by seb-by-ouidou
parent b100c8380e
commit d5637ac7aa
55 changed files with 400 additions and 537 deletions

View file

@ -1,9 +0,0 @@
module AdminsGroupManagers
class AdminsGroupManagerController < ApplicationController
before_action :authenticate_admins_group_manager!
def nav_bar_profile
:admins_group_manager
end
end
end

View file

@ -1,14 +0,0 @@
module AdminsGroupManagers
class AdminsGroupsController < AdminsGroupManagerController
def index
@admins_groups = admins_groups
end
private
def admins_groups
admins_group_ids = current_admins_group_manager.admins_group_ids
AdminsGroup.where(id: admins_group_ids.compact.uniq)
end
end
end

View file

@ -1,4 +0,0 @@
module Manager
class AdminsGroupManagersController < Manager::ApplicationController
end
end

View file

@ -1,32 +0,0 @@
module Manager
class AdminsGroupsController < Manager::ApplicationController
def add_admins_group_manager
emails = (params['emails'].presence || '').split(',').to_json
emails = JSON.parse(emails).map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
admins_group_managers, invalid_emails = admins_group.add_admins_group_managers(emails:)
if invalid_emails.present?
flash[:alert] = t('.wrong_address',
count: invalid_emails.size,
emails: invalid_emails)
end
if admins_group_managers.present?
flash[:notice] = "Les gestionnaires ont bien été affectés au groupe d'administrateurs"
AdminsGroupMailer
.notify_added_admins_group_managers(admins_group, admins_group_managers, current_super_admin.email)
.deliver_later
end
redirect_to manager_admins_groups_path(admins_group)
end
private
def admins_group
@admins_group ||= AdminsGroup.find(params[:id])
end
end
end

View file

@ -20,7 +20,25 @@ module Manager
.deliver_later
end
redirect_to manager_groupe_gestionnaires_path(groupe_gestionnaire)
redirect_to manager_groupe_gestionnaire_path(groupe_gestionnaire)
end
def remove_gestionnaire
if !groupe_gestionnaire.root_groupe_gestionnaire? || groupe_gestionnaire.gestionnaires.one?
flash[:alert] = "Suppression impossible : il doit y avoir au moins un gestionnaire dans le groupe racine"
else
gestionnaire = Gestionnaire.find(gestionnaire_id)
if groupe_gestionnaire.remove(gestionnaire)
flash[:notice] = "Le gestionnaire « #{gestionnaire.email} » a été retiré du groupe."
GroupeGestionnaireMailer
.notify_removed_gestionnaire(groupe_gestionnaire, gestionnaire, current_super_admin.email)
.deliver_later
else
flash[:alert] = "Le gestionnaire « #{gestionnaire.email} » nest pas dans le groupe."
end
end
redirect_to manager_groupe_gestionnaire_path(groupe_gestionnaire)
end
private
@ -28,5 +46,9 @@ module Manager
def groupe_gestionnaire
@groupe_gestionnaire ||= GroupeGestionnaire.find(params[:id])
end
def gestionnaire_id
params[:gestionnaire][:id]
end
end
end