[UH 2.2.2] Erreur lors de la création automatique de compte depuis Geonature
Bonjour à tous,
Je rencontre une erreur sur Userhub lors de la création de compte depuis géonature. Normalement, l'inscription est automatique. Tout fonctionnait bien après les dernières mises à jour. Mais depuis peu, les inscriptions se retrouvent en attente dans UH (onglet Demandes de compte) et lors de la validation manuelle, j'obtiens une erreur 500 sur la route xxx/api/users/after_confirmation
Après cela, l'utilisateur est bien créé mais sans jeu de donnée personnel (donc impossible de saisir).
Une idée ?
Bonjour,
Que disent les logs de l'erreur 500 ?
Alors, étrangement, je n'ai pas d'erreur dans le debugger du navigateur, mais une Popup qui apparait lorsque je valide manuellement le compte : Erreur durant l'appel des actions de l'application. (je suppose que l'erreur 500 ne vient pas directement de UH et que c'est pour cela qu'elle n'apparait pas dans le navigateur)
Par contre, j'ai l'erreur 500 qui apparait dans le fichier /var/log/usershub.log : Error HTTP 500 for https://xxx/api/users/after_confirmation
Oui c'est bien les erreur des fichiers de log qu'il faut regarder. Sur UH et GeoNature. Il n'y a pas plus d'information ?
Arf oui, voici les logs de Géonature :
[2022-05-02 15:07:48 +0000] [1372] [ERROR] Exception on /users/after_confirmation [POST]
Traceback (most recent call last):
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.7/site-packages/flask_cors/extension.py", line 165, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1821, in handle_user_exception
return handler(e)
File "/home/geonatureadmin/geonature/backend/geonature/core/errors.py", line 82, in handle_exception
raise e
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/home/geonatureadmin/geonature/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/geonatureadmin/geonature/backend/geonature/core/users/routes.py", line 290, in after_confirmation
after_confirmation_fn = function_dict.get(type_action, None)
NameError: name 'function_dict' is not defined
Effectivement la variable function_dict n'est pas définit. C'est lié à ce commit.
https://github.com/PnX-SI/GeoNature/commit/788cee23695dd6f2f370019d8905f41dde1d1b36
Tu peux remplacer function_dict par REGISTER_POST_ACTION_FCT à la ligne 290.
Effectivement la variable
function_dictn'est pas définit. C'est lié à ce commit. PnX-SI/GeoNature@788cee2 Tu peux remplacerfunction_dictparREGISTER_POST_ACTION_FCTà la ligne 290.
Merci @TheoLechemia
Si je comprends bien, je remplace :
after_confirmation_fn = function_dict.get(type_action, None)
Par :
after_confirmation_fn = REGISTER_POST_ACTION_FCT.get(type_action, None)
La définition de 'function_dict' à la fin du fichier register_post_actions.py n'est donc plus utilisé ? Ce qui m'intrigue le plus, c'est que j'ai l'impression que cela n'a plus marché du jour au lendemain sans mise à jour ou autre (mais je me trompe peut etre) Merci en tout cas !
c'est ça
C'est bon, tout refonctionne normalement. Merci pour la réactivité. Je te laisse fermer le ticket ou l'associer à une prochaine release. Bonne journée
Correction intégrée dans la 2.10.3