Project

General

Profile

Development #71506

api/rbac : faire que l’endpoint de synchronisation s’adapte aux permissions par OU de l’appelant

Added by Paul Marillonnet 2 months ago. Updated about 1 month ago.

Status:
Solution déployée
Priority:
Normal
Category:
-
Target version:
-
Start date:
21 November 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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

Related to Authentic 2 - 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’appelantNouveau18 November 2022

Actions
Related to Authentic 2 - 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’APIRejeté29 November 2022

Actions

Associated revisions

Revision d542d33a (diff)
Added by Paul Marillonnet about 2 months ago

api: make sync endpoint adapt to permissions by OU (#71506)

History

#1

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
#2

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.

#3

Updated by Paul Marillonnet 2 months ago

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

#4

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.

#5

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
#6

Updated by Benjamin Dauvergne about 2 months ago

C'est rouge, à rebaser.

#7

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.

#8

Updated by Benjamin Dauvergne about 2 months ago

  • Status changed from Solution proposée to Solution validée
#9

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)
#10

Updated by Transition automatique about 1 month ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF