Blount / Cheky

Alerte mail et RSS pour Leboncoin.fr
GNU General Public License v3.0
154 stars 46 forks source link

Undefined property: stdClass::$rss_key in User.php #66

Open tomlaredo opened 7 years ago

tomlaredo commented 7 years ago

Bonjour,

Bravo pour cet outil bien pratique :)

Après upgrade (git pull) j'ai l'erreur suivante qui s'affiche lors de l'accès au module de mise à jour :

"Un problème est survenu lors de l'exécution du programme."

Et mon log php me dit ceci : stderr: PHP message: PHP Notice: Undefined property: stdClass::$rss_key in /var/www/......./app/models/Storage/Db/User.php on line 49, referer: http://xxxxxxxxx/?mod=admin&a=upgrade

Il semblerait que le commit b52e00f46a797a67f882da7c5a52ef37f4569586 casse quelque chose.

Mon environnement :

EDIT : après revert de ce commit, je l'ai plus le log d'erreur PHP, la page me renvoit un code 200 mais le message "Un problème est survenu..." persiste.

EDIT 2 : Après avoir supprimé le dépôt et refait un git clone (sans toucher à la BDD existante) config.ini montre bien qu'on est en 3.4 mais j'ai toujours le même message quand je vais sur les onglets "Flux RSS" et "Paramètres" (et toujours rien dans les logs apache et PHP).

Blount commented 7 years ago

Peux-tu regarder dans la base de données si tu as bien un champ "rss_key" dans la table LBC_User ?

tomlaredo commented 7 years ago

Merci pour ta réponse hyper rapide !

En effet, pas de champ rss_key. Mon user MySQL n'avait pas le droit ALTER quand j'ai lancé la mise à jour la première fois. Je l'ai rajouté ensuite mais il semblerait que cela m'ait fait tomber dans un cas où la mise à jour est à moitié faite et où le code n'essaie pas de faire le reste de la mise à jour qui a échoué.

Peut-être faudrait-il rajouter un test des possibilités d'altérer les tables avant l'upgrade, voire un message qui indique les droits dont il a besoin (sur le système de fichiers et sur la BDD ?

J'ai lancé la commande SQL suivante : ALTER TABLE LBC_User ADD COLUMN rss_key CHAR(40) DEFAULT NULL UNIQUE AFTER api_key;

Ce qui a résolu le problème. Je te laisse clore le ticket si tu estimes que ce n'est pas la peine de modifier la procédure d'upgrade pour gérer le cas où la BDD ne permet pas l'ALTER (ou de rajouter un message plus parlant).

Merci pour ton aide en tout cas

Blount commented 7 years ago

Tu as fait la mise à jour depuis quelle version ? Pour finaliser proprement la mise à jour, supprime le champ rss_key et remet la version d'origine dans le fichier config.ini (exemple : version = 3.3 si tu étais en 3.3). Ensuite, en retournant dans le logiciel, il te demandera de finaliser la mise à jour.

Pour le test sur ALTER, c'est, je pense, un cas rare. Personnellement je ne sais même pas comment faire ce test ^^

tomlaredo commented 7 years ago

Effectivement, c'était une 3.3.

Pour ce qui est du test, en sécurité c'est une bonne pratique que de ne donner à l'application que les droits dont elle a besoin. Si une application n'a pas à faire d'ALTER en temps normal, il est donc conseillé de ne pas lui donner ce droit. D'où ma config de base :)

Pour le "comment faire", si ça t'intéresse, tu peux voir du côté du "show grants for" : https://stackoverflow.com/questions/609855/check-user-rights-before-attempting-to-create-database

Hésite pas si tu as des questions.

cpecquerie commented 7 years ago

Je confirme que j'ai eu le même soucis suite à une migration de la 3.3 vers la 3.4. La commande de @tomlaredo a corrigé le problème.