Merge pull request #7672 from betagouv/feat/7668
Manager : permet au super admin de se retirer d'une démarche
This commit is contained in:
commit
4bddb4dde9
4 changed files with 23 additions and 1 deletions
|
@ -67,6 +67,14 @@ module Manager
|
||||||
redirect_to manager_procedure_path(procedure)
|
redirect_to manager_procedure_path(procedure)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def delete_administrateur
|
||||||
|
administrateur = procedure.administrateurs.find { |admin| admin.email == current_super_admin.email }
|
||||||
|
if administrateur.present?
|
||||||
|
procedure.administrateurs.delete(administrateur)
|
||||||
|
end
|
||||||
|
redirect_to manager_procedure_path(procedure)
|
||||||
|
end
|
||||||
|
|
||||||
def change_piece_justificative_template
|
def change_piece_justificative_template
|
||||||
if type_de_champ.update(type_de_champ_params)
|
if type_de_champ.update(type_de_champ_params)
|
||||||
flash[:notice] = "Le modèle est mis à jour."
|
flash[:notice] = "Le modèle est mis à jour."
|
||||||
|
|
|
@ -70,6 +70,8 @@ as well as a link to its edit page.
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if procedure.administrateurs.find { |admin| admin.email == current_super_admin.email } %>
|
<% if procedure.administrateurs.find { |admin| admin.email == current_super_admin.email } %>
|
||||||
<p style="margin-top: 20px;">Vous êtes déjà administrateur sur cette démarche</p>
|
<p style="margin-top: 20px;">Vous êtes déjà administrateur sur cette démarche</p>
|
||||||
|
<%= link_to 'Me retirer de cette démarche', delete_administrateur_manager_procedure_path(procedure), method: :put, class: 'button' %>
|
||||||
|
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= form_tag(add_administrateur_manager_procedure_path(procedure), style: 'margin-top: 1rem;') do %>
|
<%= form_tag(add_administrateur_manager_procedure_path(procedure), style: 'margin-top: 1rem;') do %>
|
||||||
<button>Devenir administrateur (pour la journée)</button>
|
<button>Devenir administrateur (pour la journée)</button>
|
||||||
|
|
|
@ -16,6 +16,7 @@ Rails.application.routes.draw do
|
||||||
post 'discard', on: :member
|
post 'discard', on: :member
|
||||||
post 'restore', on: :member
|
post 'restore', on: :member
|
||||||
post 'add_administrateur', on: :member
|
post 'add_administrateur', on: :member
|
||||||
|
put 'delete_administrateur', on: :member
|
||||||
post 'change_piece_justificative_template', on: :member
|
post 'change_piece_justificative_template', on: :member
|
||||||
get 'export_mail_brouillons', on: :member
|
get 'export_mail_brouillons', on: :member
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
describe Manager::ProceduresController, type: :controller do
|
describe Manager::ProceduresController, type: :controller do
|
||||||
let(:super_admin) { create :super_admin }
|
let(:super_admin) { create :super_admin }
|
||||||
|
let(:administrateur) { create(:administrateur, email: super_admin.email) }
|
||||||
|
let(:autre_administrateur) { create(:administrateur) }
|
||||||
before { sign_in super_admin }
|
before { sign_in super_admin }
|
||||||
|
|
||||||
describe '#whitelist' do
|
describe '#whitelist' do
|
||||||
|
@ -68,4 +69,14 @@ describe Manager::ProceduresController, type: :controller do
|
||||||
it { expect(response.body).to include('1 dossier') }
|
it { expect(response.body).to include('1 dossier') }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#delete_administrateur' do
|
||||||
|
let(:procedure) { create(:procedure, :with_service, administrateurs: [administrateur, autre_administrateur]) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
put :delete_administrateur, params: { id: procedure.id }
|
||||||
|
end
|
||||||
|
|
||||||
|
it { expect(procedure.administrateurs).to eq([autre_administrateur]) }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue