Development #70152
Lors de la génération des permissions d'un utilisateur, prendre en compte l'héritage entre modèles
0%
Description
Dans django_rbac.backends.DjangoRBACBackend.get_permission_cache() si on trouver '<app1>.<perm>_<model1>' mais que <app2>.<model2> hérite de '<app1>.<model1>', ajouter '<app2>.<perm>_<model2>'.
Exemple réel: la permission authentic2.admin_service
donnera automatiquement les permissions authentic2_idp_oidc.admin_oidcclient
, saml.admin_libertyprovider
et authentic2_idp_cas.admin_service
.
Fichiers
Demandes liées
Révisions associées
rbac: handle inheritance between model in get_all_permissions (#70152)
For global and ou scoped permissions, equivalent permissions on the child
classes are added, i.e. if you have authentic2.admin_service
permission then you also have authentic2_idp_oidc.admin_oidcclient
permission (globally or scoped by an organizational unit).
For instance scoped permissions, equivalent permissions on the parent
classes are added, i.e. if you have permission
authentic2_idp_oidc.admin_oidcclient on OIDCClient(pk=1), you also have
authentic2.admin_service on the same object.
Historique
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Fichier 0001-wip.patch 0001-wip.patch ajouté
- Patch proposed changé de Non à Oui
Début du truc, mais je vais relire les tickets de Valentin sur django_rbac d'abord pour ne pas perdre de temps pour rien.
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Lié à Development #69902: django_rbac, rapatrier le modèle Operation ajouté
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Lié à Development #70135: django_rbac, rapatrier PermissionMixin ajouté
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Fichier 0001-a2_rbac-add-helper-method-to-build-permissions-70152.patch 0001-a2_rbac-add-helper-method-to-build-permissions-70152.patch ajouté
- Fichier 0002-rbac-handle-inheritance-between-model-in-get_all_per.patch 0002-rbac-handle-inheritance-between-model-in-get_all_per.patch ajouté
- Statut changé de En cours à Solution proposée
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Fichier 0001-a2_rbac-add-helper-method-to-build-permissions-70152.patch 0001-a2_rbac-add-helper-method-to-build-permissions-70152.patch ajouté
- Fichier 0002-rbac-handle-inheritance-between-model-in-get_all_per.patch 0002-rbac-handle-inheritance-between-model-in-get_all_per.patch ajouté
- ajout d'un check pour ignorer les classes de base qui sont des modèles abstraits
- correction de 2 warning pylint.
Mis à jour par Serghei Mihai il y a plus d'un an
- Statut changé de Solution proposée à Solution validée
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Statut changé de Solution validée à Résolu (à déployer)
commit 772a3f6f6d09a9d3a10f1fe2cc2c56d75a79d860 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Wed Oct 12 10:52:43 2022 +0200 rbac: handle inheritance between model in get_all_permissions (#70152) For global and ou scoped permissions, equivalent permissions on the child classes are added, i.e. if you have authentic2.admin_service permission then you also have authentic2_idp_oidc.admin_oidcclient permission (globally or scoped by an organizational unit). For instance scoped permissions, equivalent permissions on the parent classes are added, i.e. if you have permission authentic2_idp_oidc.admin_oidcclient on OIDCClient(pk=1), you also have authentic2.admin_service on the same object. commit 626ab8aab713e04b6d8c413e9c3bda7ad4cc1700 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Thu Oct 13 19:21:59 2022 +0200 a2_rbac: add helper method to build permissions (#70152)
Mis à jour par Transition automatique il y a plus d'un an
- Statut changé de Résolu (à déployer) à Solution déployée
a2_rbac: add helper method to build permissions (#70152)