Je travaillais pour un client dont l’infrastructure m’avait pris quelques jours à prendre en main. Avec l’aide de toute l’équipe et de la patience, victoire, j’avais l’env de prod sur ma machine, et je pouvais faire tourner le produit…
Previouly, on Sam and Max
Je me rends sur la page d’accueil, qui me redirige instantanément sur l’admin du site Django.
Ceci n’avait aucun sens. Je regarde les requêtes HTTP, j’ai une 302 qui sort de nulle part. Je suis authentifié, ma conf nginx est pas déconnante, et dans le routing défini du urls.py, le pattern pour l’admin est le classique http://domain.tld/admin
.
Rien de fou.
Alors après m’être arraché les cheveux, je vais voir un techos et lui demande si à tout hasard il a une idée.
– Il me dit “tu as appelé ton user comment ?”
– Oh, j’ai fait un
./manage.py createsuperuser
vite fait pour tester en local avec username:admin, password:admin.– Ben c’est ça, on peut pas créer un user qui s’appelle “admin”.
– Ah ?
– Oui on a un url pattern pour la page du profile utilisateur qui fait:
http://domain.tld/<username>
Quand tu arrives sur /, on redirige dessus automatiquement.
Du coup si tu l’appelles admin, tu as plus accès à ton profile…
And now…
Aujourd’hui, en explorant la base de code, je tombe sur ça:
class RegistrationForm(forms.Form): _reserved_usernames = [ 'accounts', 'about', 'admin', 'clients', 'data', 'forms', 'maps', ... + 50 ] |
J’ai de quoi écrire un bouquin avec le contenu des fichiers que je vois, je sens que ça va me faire quelques articles :)
C’est plutôt une gestion d’alertes sur les mots réservés qui est à créer au sein même de Django dans ce cas!? A trop faire confiance au système on peut aussi faire pas mal de merde… Je sais que la logique de python est de faire confiance au codeur mais là le mec qui administre les compte c’est pas forcément celui qui code…
la redirection vers le compte du user sur
http://domain.tld/(user|profile|whatever)/<user>
aurait eu plus de sens@foxmask Ca dépend du type de site. Regarde comment sont foutus les répos sur github. /. C’est surtout une amélioration de l’analyse de problème du-dis client qui aurait plus de sens.
Marrant, ça ressemble au problème de Twitter avec les favoris devenus likes récemment … Sauf que https://twitter.com/likes est un compte déjà existant, et ils sont baisés !
L’ancienne adresse https://twitter.com/favorites renvoie maintenant vers https://twitter.com/i/likes pour cette raison.
@floweb : cqfd :)
Ça ferait rigoler https://twitter.com/@faq.