Development #71506
api/rbac : faire que l’endpoint de synchronisation s’adapte aux permissions par OU de l’appelant
0%
Description
C’est #71463 qu’on va faire étape par étape, endpoint par endpoint en jugeant de la nécessité pour chacun des endpoints qui obéissent encore à des permission globales et non pas par OU.
Ici ça me paraît nécessaire, l’endpoint doit pouvoir être appelable avec une permission 'custom_user.search_user'
locale à une OU, sans pour autant faire de l’endpoint un oracle donnant des infos de validité des comptes d’autres OU pour lesquelles l’appelant n’a pas les permissions adéquates.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Paul Marillonnet il y a plus d'un an
- Lié à Development #71463: api/rbac : au lieu d’une vérification booléenne sur une permission globale, filtrer automatiquement les querysets en fonction des permissions équivalentes par OU détenues par l’appelant ajouté
Mis à jour par Paul Marillonnet il y a plus d'un an
- Statut changé de Nouveau à En cours
- Assigné à mis à Paul Marillonnet
J’ai un patche sous le coude, mais des ajouts récents à l’endpoint de synchro dans #67901 (WS keepalive) requièrent sans doute que des changements soient apportés ici, je regarde.
Mis à jour par Paul Marillonnet il y a plus d'un an
- Fichier 0001-api-make-sync-endpoint-adapt-to-permissions-by-OU-71.patch 0001-api-make-sync-endpoint-adapt-to-permissions-by-OU-71.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Je n’aborde pas la partie client OIDC qui doit faire l’objet d’un ticket à part (qui d’ailleurs doit déjà exister dans la série de tickets sur le travail synchro initiée par #62710), car pour l’instant :
class OIDCUser:
# […]
def has_perm(self, *args, **kwargs):
return True
def has_perm_any(self, *args, **kwargs):
return True
def has_ou_perm(self, *args, **kwargs):
return True
def filter_by_perm(self, perms, queryset):
return queryset
Mis à jour par Paul Marillonnet il y a plus d'un an
Paul Marillonnet a écrit :
Je n’aborde pas la partie client OIDC qui doit faire l’objet d’un ticket à part (qui d’ailleurs doit déjà exister dans la série de tickets sur le travail synchro initiée par #62710), car pour l’instant :
[...]
Finalement pour la partie OIDC ce sera plutôt quelque chose de l’ordre du plan évoqué #71823-4, i.e. ne pas dupliquer la gestion des accès à l’API dans deux endroits différents du manage.
Ce patch ci reste cependant bon pour relecture.
Mis à jour par Paul Marillonnet il y a plus d'un an
- Lié à Development #71823: idp_oidc : faire que l’accès des clients OIDC à l’API se configure dans le BO via les écrans de configuration des clients d’API ajouté
Mis à jour par Paul Marillonnet il y a plus d'un an
Benjamin Dauvergne a écrit :
C'est rouge, à rebaser.
Au temps pour moi, c’est en faisant un premier rebasage de ce commit que j’ai vu #72162, j’ai oublié de rebaser à nouveau une fois le bugfix passé. C’est chose faite, mes excuses.
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Statut changé de Solution proposée à Solution validée
Mis à jour par Paul Marillonnet il y a plus d'un an
- Statut changé de Solution validée à Résolu (à déployer)
commit d542d33af8c17c7077038ac3a9894e2ef153fd3a Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Fri Nov 18 11:26:49 2022 +0100 api: make sync endpoint adapt to permissions by OU (#71506)
Mis à jour par Transition automatique il y a plus d'un an
- Statut changé de Résolu (à déployer) à Solution déployée
api: make sync endpoint adapt to permissions by OU (#71506)