FEAT: init admins group

This commit is contained in:
seb-by-ouidou 2023-08-25 20:53:30 +00:00 committed by seb-by-ouidou
parent b7d6e9e30f
commit b100c8380e
35 changed files with 604 additions and 0 deletions

View file

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

View file

@ -0,0 +1,14 @@
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

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

View file

@ -0,0 +1,32 @@
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