Bonjour à toutes et tous,
Tout d'abord, étant totalement débutante dans l'univers Django, je
m'excuse par avance des énormités que je vais forcément proférer.
Je dois construire un site gérant deux niveaux d'utilisateurs : des
"lecteurs", qui peuvent uniquement lire les données d'une base de données
XML (peu importe pourquoi XML plutôt que d'utiliser le serveur SQL de
Django) et des "rédacteurs", qui pourront modifier le contenu de cette
base.
Le site est "privé", en ce sens qu'il est nécessaire de se logger pour y
accéder, et n'est de fait pas accessible aux utilisateurs anonymes.
J'aimerais que la page principale du site soit différente en fonction du
type d'utilisateur : tout simplement, s'il s'agit d'un "rédacteur", que
deux liens "créer" et "éditer" soient ajoutés.
Pour ce faire, j'ai créé via le shell mes deux groupes "lecteur" et
"redacteur", ma permission "creation_modification", ai ajouté cette
dernière au groupe "redacteur et ai créé deux utilisateurs tests (un
lecteur et un redacteur). Dans ma template principale, j'ai ajouté la
condition suivante :
(...)
{% if perms.BaseXML.creation_modification %}
<li class="puceIntermediaire"><a href="#">Editer</a></li>
<li class="puceIntermediaire"><a href="#">Créer</a></li>
{% endif %}
(...)
Cela marche effectivement : quand je me connecte en tant que lecteur, ces
deux options ne figurent pas dans ma liste, et quand je me connecte en tant
que rédacteur, elles sont bien présentes. Je précise que toutes les
fonctions de mes views sont précédées du décorateur @login_required.
Forte de ce "succès", j'ai voulu étoffer un peu ma template en ajoutant
un lien permanent vers la page d'accueil. J'ai donc rajouté la ligne
suivante :
<li class="puceIntermediaire"><a
href="/MonSite/Principale">Créer</a></li>
Or, quand je me connecte en tant que rédacteur et que je clique sur ce
lien, la page d'accueil est rechargée, mais sans les options liées à la
permission "creation_modification"... En faisant quelques test, j'ai cru
comprendre que j'étais automatiquement passé d'une session rédacteur à
une session anonymous user... Pourquoi ?
J'avoue être un peu perdue, si quelqu'un pouvait m'expliquer ?
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django