New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enlève la possibilité de nommer un membre super-utilisateur depuis l'interface de promotion #4142
Conversation
Merci pour ton travail ! Malheureusement je pense refuser cette modification par mesure de sécurité. En effet, elle renforce fortement le couplage de la sécurité des données de ZdS au code de ZdS. On part du principe que ce qui fait partie de Django est sûr, sinon on n'utiliserait pas Django. On est abonnés aux bulletins de sécurité, et on déploie tous les patchs de sécurité publiés par Django. L'admin donne accès à absolument toute notre base de donnée. Le staff ne doit pas avoir accès à l'admin Django. Je crois que je préfère jouer la carte de la prudence et garder la certitude que si quelqu'un a obtenu accès à l'admin, c'est parce qu'un admin l'a fait depuis l'admin et donc cette action est dans les logs de l'admin. Le risque est plus restreint comme ceci. :) Désolé pour le temps que tu as consacré à cette PR. :( |
Après discussion avec @GCodeur la situation est différente de ce que je pensais et plus compliquée qu'attendue. Je vais en discuter avec @gustavi avant qu'on décide d'aller dans un sens ou dans l'autre. Ce formulaire étant restreint aux superuser, je penche pour enlever la possibilité de modifier l'attribut
|
J'en profite pour mettre ici mon petit résumé sur le fonctionnement de Dans le modèle
Et du coup notre formulaire actuel permet d'assigner |
…staff_formulaire_promotion
… un lien vers l'admin Django
Les modifications ont été apportées. Ainsi :
J'ai édité le premier message et le titre pour que ce soit plus clair. La QA peut normalement être faite. :) |
…staff_formulaire_promotion
@vhf tu confirme que pour toi, c'est bon ? Je peux faire la QA ? |
Oui @DevHugo volontiers pour la QA (avec code review comme d'hab hein ;) ) |
Je fais ça autour de 20h |
</a> | ||
{% if user.is_staff %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est quoi la règle de gestion pour l'affichage du lien "Administration de Django" ?
Si il a seulement le droit "is_staff" normalement, il peut déjà accéder à l'administration de Django. Il n'a pas besoin d'être "superuser" ET "is_staff" pour accéder à la zone d'administration. Pourquoi donc ces deux conditions sont t-elle imbriquée ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is_staff
donne l'accès à l'administration de Django, mais ne donne aucun droit sur les modèles (c'est-à-dire qu'on peut très bien avoir le droit d'accéder à l'admin Django sans pouvoir rien gérer). On vérifie donc aussi is_superuser
afin d'être sûr que l'utilisateur aura le droit d'accéder à cette page de l'admin.
En gros, is_staff
n'inclut pas is_superuser
, ce sont deux choses bien différentes. ;)
QA: Ok, j'attend un retour sur la remarque faite plus haut avant de merger. Cas testé: ceux de la QA. |
La réponse de @GCodeur me satisfait :) |
Cette pull request a été modifiée. Lire les commentaires pour plus de détails.
Nouvelle version
Actuellement, il est possible de donner les droits super-user à un utilisateur via l'interface de promotion. Cependant, cela ne donne pas de logs comme le ferait une nomination dans l'administration de Django. Ainsi, cette pull request enlève cette possibilité, mais ajoute un lien vers l'administration de Django du membre.
QA
zds.member.tests.tests_views.MemberTests.test_promote_interface
passe toujours.Ancienne version