Skip to content

prevent non admin agents from inviting agents

Vincent Agnano requested to merge fix/fix-permissions-for-invite-agents into master

Created by: adipasquale

https://trello.com/c/pEEDtUAn/1172-empecher-agents-non-admins-dinviter-dautres-agents

en préliminaire, j'ai enlevé la right bar de l'invitation d'agent. ça m'a obligé à redéfinir l'agent choisi dans le contexte du left_menu pour ignorer @AGENT quand c'est un new record (sur la page invitations#new)

la reparation de la permission de cette page a été nettement plus compliqué que prévu :

  • en fait la complexité venait principalement du fait que c'est un controlleur devise complètement isolé de l'application controller
  • il a donc fallu redéfinir pas mal de méthodes comme pundit_user, policy_scope etc pour pouvoir utiliser les policies pundit
  • j'ai rajouté les authorize où ce n'était pas fait : le new et le create
  • pour appeler les pundit policies, dans ce cas, il faut le contexte d'une organisation. Or jusqu'ici ces routes d'invitations etaient non scopées. je les ai déplacées (en partie : le new et le create). Elles sont maintenant scopées dans la resource organisation (même si le chemin est bizarre, je n'ai pas envie de creuser ce détail).
  • j'ai aussi légèrement revu la manière dont l'orga est ajouté au nouvel agent ou à l'agent existant pour que ça soit fait avant le authorize
  • détail : je n'ai pas empêché l'accès à la page index aux agents non admin, juste limité ce qu'ils voient en enlevant les invitations. il n'y a pas de lien vers cette page pour l'instant mais je pense que ça pourrait être utile aux agents de voir leurs collègues

😅

Merge request reports