feat: remove_gestionnaire
This commit is contained in:
parent
b100c8380e
commit
d5637ac7aa
55 changed files with 400 additions and 537 deletions
|
@ -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
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
module Manager
|
||||
class AdminsGroupManagersController < Manager::ApplicationController
|
||||
end
|
||||
end
|
|
@ -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
|
|
@ -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} » n’est 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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue