Project

General

Profile

Development #34774

renommer le rôle "administrateur du rôle xxx" quand le rôle xxx change de nom

Added by Frédéric Péters 5 months ago. Updated 4 months ago.

Status:
Solution déployée
Priority:
Normal
Category:
-
Target version:
-
Start date:
11 Jul 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Aujourd'hui on dirait que ce n'est pas le cas et ça peut prêter à confusion.

0001-a2_rbac-rename-role-s-admin-role-on-role-s-rename-34.patch View (9.11 KB) Benjamin Dauvergne, 12 Jul 2019 10:03 AM

0001-a2_rbac-remove-unused-symbol-34774.patch View (936 Bytes) Benjamin Dauvergne, 12 Jul 2019 02:47 PM

0002-a2_rbac-do-not-use-lazy-string-in-model-name-34774.patch View (1.45 KB) Benjamin Dauvergne, 12 Jul 2019 02:47 PM

0003-a2_rbac-rename-role-s-admin-role-on-role-s-rename-34.patch View (9.12 KB) Benjamin Dauvergne, 12 Jul 2019 02:47 PM

Associated revisions

Revision 14d0a343 (diff)
Added by Benjamin Dauvergne 5 months ago

tests: add tests to check for role's admin role cleanup (#34774)

Revision 4a28edd5 (diff)
Added by Benjamin Dauvergne 4 months ago

a2_rbac: remove unused symbol (#34774)

Revision d6fbfaa0 (diff)
Added by Benjamin Dauvergne 4 months ago

a2_rbac: do not use lazy string in model name (#34774)

Revision 5732f219 (diff)
Added by Benjamin Dauvergne 4 months ago

a2_rbac: rename role's admin role on role's rename (#34774)

History

#1 Updated by Thomas Noël 5 months ago

On dirait aussi que ces rôles ne disparaissent pas quand un rôle est supprimé (j'en ai pas l'assurance totale, je dis ça ici pour plus tard, je ne peux confirmer maintenant)

#2 Updated by Benjamin Dauvergne 5 months ago

Normalement ils devraient être nettoyé par cette méthode :

138     def cleanup(self):
139         count = 0
140         for r in self.filter(
141                 Q(admin_scope_ct_id__isnull=False) | Q(admin_scope_id__isnull=False)):
142             if not r.admin_scope:
143                 r.delete()
144                 count += 1
145         return count

dans django_rbac/managers.py mais visiblement elle ne fait pas son job.

#3 Updated by Benjamin Dauvergne 5 months ago

En fait non ce n'est plus nécessaire, il y a des GenericRelation qui font que ces rôles seront supprimés.

En fait on a :

role <--target-- admin_permission <--admin_scope-- admin_role

target et admin_scope sont des relations génériques mais comme elles sont déclarées aussi sur Role et Permission avec GenericRelation sur chaque suppression d'un rôle ou d'une permission ça remonte jusqu'à AdminRole en cascade.

Si il restait de tels rôle c'est qu'il doit y avoir eu une erreur, ou que ça date d'avant l'ajout de ces relations.

#4 Updated by Benjamin Dauvergne 5 months ago

  • Assignee set to Benjamin Dauvergne

#5 Updated by Benjamin Dauvergne 5 months ago

Voilà.

#6 Updated by Frédéric Péters 5 months ago

  • Status changed from Solution proposée to En cours

(jenkins en échec)

#7 Updated by Benjamin Dauvergne 5 months ago

Vieux bug partiellement corrigé plus haut dans le code, là ça passe.

#8 Updated by Frédéric Péters 4 months ago

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

#9 Updated by Benjamin Dauvergne 4 months ago

  • Status changed from Solution validée to Résolu (à déployer)
commit 5732f219c5f5f6c18e3ec7f11bc3de41435e239b
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Jul 12 10:03:06 2019 +0200

    a2_rbac: rename role's admin role on role's rename (#34774)

commit d6fbfaa0c83811047f59d10a4ae7299f4b5af87d
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Jul 12 14:33:37 2019 +0200

    a2_rbac: do not use lazy string in model name (#34774)

commit 4a28edd5ae44bbd1a382b90a9565c174bbfb9b05
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Jul 12 14:33:24 2019 +0200

    a2_rbac: remove unused symbol (#34774)

#10 Updated by Frédéric Péters 4 months ago

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

Also available in: Atom PDF