Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restrict dataset creation endpoint to users in requested organization #435

Closed
wants to merge 1 commit into from

Conversation

florimondmanca
Copy link
Collaborator

Refs #388

Cette PR transforme l'endpoint POST /datasets/ en POST /catalogs/:siret/datasets/, en vérifiant la concordance entre le :siret cible et celui de l'utilisateur qui fait la requête.

Elle démontre l'approche qui sera ensuite utilisée pour les autres endpoints.

organization = await organization_repository.get_by_siret(
siret=command.organization_siret
)
catalog = await catalog_repository.get_by_siret(siret=command.organization_siret)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai besoin de ce changement qui corrige un bug au passage : il ne faut pas tant vérifier que l'orga existe que son catalogue existe. Si une orga existait mais qu'elle n'avait pas de catalogue, auparavant on se retrouvait avec une IntegrityError renvoyée par Postgres (= erreur 500). Désormais on a bien une 400 Bad Request.

@florimondmanca
Copy link
Collaborator Author

florimondmanca commented Sep 20, 2022

@Volubyl J'ai ouvert cette petite PR pour valider l'approche générale.

Si ça te semble OK je propose que je rajoute le reste des changements d'endpoints par commits successifs.

La restriction sur le bouton "Modifier" fera partie du commit pour l'endpoint PUT, car il faudra que le SIRET du dataset à modifier et celui de l'utilisateur concordent, sinon l'endpoint renverra une 403.

@florimondmanca florimondmanca changed the title Switch to POST /catalogs/:siret/datasets/ Restrict dataset creation endpoint to users in requested organization Sep 20, 2022
@florimondmanca
Copy link
Collaborator Author

En avançant sur la partie Update, en fait ça ne va pas, il faut que la vérification soit véritablement dans la couche métier / application. En effet, pour l'update, il faut vérifier "à l'intérieur" du handler, après avoir récupéré le dataset, et avant de le modifier. Bref, il faut le faire via de véritables "spécifications" (notion issue de Permacoop).

Je vais fermer cette PR et en rouvrir une avec cet autre style.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant