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.
Files
Related issues
Associated revisions
History
Updated by Paul Marillonnet 2 months ago
- Related to 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 added
Updated by Paul Marillonnet 2 months ago
- Status changed from Nouveau to En cours
- Assignee set to 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.
Updated by Paul Marillonnet 2 months ago
- File 0001-api-make-sync-endpoint-adapt-to-permissions-by-OU-71.patch 0001-api-make-sync-endpoint-adapt-to-permissions-by-OU-71.patch added
- Status changed from En cours to Solution proposée
- Patch proposed changed from No to Yes
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
Updated by Paul Marillonnet 2 months ago
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.
Updated by Paul Marillonnet 2 months ago
- Related to 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 added
Updated by Paul Marillonnet about 2 months ago
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.
Updated by Benjamin Dauvergne about 2 months ago
- Status changed from Solution proposée to Solution validée
Updated by Paul Marillonnet about 2 months ago
- Status changed from Solution validée to 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)
Updated by Transition automatique about 1 month ago
- Status changed from Résolu (à déployer) to Solution déployée
api: make sync endpoint adapt to permissions by OU (#71506)