Skip to content

Commit

Permalink
Les admin de structure ne peuvent pas assigner le role CMR
Browse files Browse the repository at this point in the history
  • Loading branch information
etienneCharignon authored and cprodhomme committed Feb 1, 2023
1 parent d2aa231 commit ecddd56
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 13 deletions.
9 changes: 2 additions & 7 deletions app/admin/comptes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -142,13 +142,8 @@ def peut_modifier_mot_de_passe?
end

def collection_roles
roles = Compte.roles.to_h
roles.delete('superadmin') unless current_compte.superadmin?
roles.delete('compte_generique') unless current_compte.superadmin?
roles.to_h do |_k, v|
traduction = Compte.human_enum_name(:role, v)
[traduction, v]
end
roles = current_compte.superadmin? ? Compte::ROLES : Compte::ROLES_STRUCTURE
roles.map { |role| [Compte.human_enum_name(:role, role), role] }
end
end

Expand Down
3 changes: 2 additions & 1 deletion app/models/compte.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ class Compte < ApplicationRecord
devise :database_authenticatable, :trackable,
:recoverable, :rememberable, :validatable, :registerable, :confirmable
ROLES = %w[superadmin charge_mission_regionale admin conseiller compte_generique].freeze
ROLES_STRUCTURE = %w[admin conseiller].freeze
ADMIN_ROLES = %w[superadmin admin compte_generique].freeze
ANLCI_ROLES = %w[superadmin charge_mission_regionale].freeze
include Comptes::EnvoieEmails
Expand All @@ -15,7 +16,7 @@ class Compte < ApplicationRecord
validates :statut_validation, presence: true
validates :nom, :prenom, presence: { on: :create }
validate :verifie_dns_email, :structure_a_un_admin
validates :role, inclusion: { in: %w[conseiller compte_generique] },
validates :role, inclusion: { in: %w[conseiller compte_generique], message: :comptes_refuses },
if: :compte_refuse?
validates :email, uniqueness: {
case_sensitive: false,
Expand Down
5 changes: 3 additions & 2 deletions config/locales/models/compte.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@ fr:
attributes:
role:
structure_doit_avoir_un_admin: 'La structure doit avoir au moins un administrateur'
inclusion: |
Ce compte ne peut pas avoir le rôle %<value>s en étant refusé. Uniquement conseiller ou compte générique
inclusion: n'est pas inclus dans la liste
comptes_refuses: |
ce compte ne peut pas avoir le rôle %<value>s en étant refusé. Uniquement conseiller ou compte générique
formtastic:
actions:
compte:
Expand Down
6 changes: 3 additions & 3 deletions spec/features/admin/compte_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
end

it 'ne permet pas de refuser un admin' do
expect(page).to have_content('Ce compte ne peut pas avoir le rôle admin en étant ' \
expect(page).to have_content('ce compte ne peut pas avoir le rôle admin en étant ' \
'refusé. Uniquement conseiller ou compte générique')
end
end
Expand Down Expand Up @@ -129,7 +129,7 @@
it do
visit edit_admin_compte_path(collegue)
select 'Admin'
options = ['', 'Chargé de Mission Régionale', 'Admin', 'Conseiller']
options = ['', 'Admin', 'Conseiller']
expect(page).to have_select(:compte_role, options: options)
expect(page).to have_content 'Accès'

Expand Down Expand Up @@ -178,7 +178,7 @@
end

it 'ne permet pas de refuser un admin' do
expect(page).to have_content('Ce compte ne peut pas avoir le rôle admin en étant ' \
expect(page).to have_content('ce compte ne peut pas avoir le rôle admin en étant ' \
'refusé. Uniquement conseiller ou compte générique')
end
end
Expand Down

0 comments on commit ecddd56

Please sign in to comment.