Validation de compte

Bonsoir,
Nous venons d’installer Fab Manager sur notre VPS et lorsque les utilisateurs administrateurs créés depuis la plateforme souhaitent valider leur compte un message d’erreur les empêche d’aller plus loin:

status: 5 × Close
status: 0 × Close
status: 0 × Close
error: I × Close
error: n × Close
error: t × Close
error: e × Close
error: r × Close
error: n × Close
error: a × Close
error: l × Close
error: × Close
error: S × Close
error: e × Close
error: r × Close
error: v × Close
error: e × Close
error: r × Close
error: × Close
error: E × Close
error: r × Close
error: r × Close
error: o × Close

merci d’avance pour votre aide
Frédéric

Bonjour Frédéric,

Peux tu poster ici le résultat de la commande tail -f /apps/fabmanager/log/app-stdout.log, sur le serveur, au moment où ce message se produit ? Merci

Bonjour Sylvain,

Merci pour ta réponse rapide et désolé pour ma propre réponse tardive, voici le message d’erreur reçu :

SQL (0.2ms) INSERT INTO « notifications » (« notification_type_id », « attached_object_id », « attached_object_type », « receiver_id », « receiver_type », « created_at », « updated_at ») VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING « id » [[« notification_type_id », 27], [« attached_object_id », 17], [« attached_object_type », « User »], [« receiver_id », 17], [« receiver_type », « User »], [« created_at », « 2019-11-30 02:02:50.201056 »], [« updated_at », « 2019-11-30 02:02:50.201056 »]]
[ActiveJob] Enqueued ActionMailer::DeliveryJob (Job ID: 29d99cd0-a1e9-432c-896f-a01024431688) to Sidekiq(mailers) with arguments: « NotificationsMailer », « send_mail_by », « deliver_now », gid://fablab/Notification/77
SQL (2.1ms) UPDATE « statistic_profiles » SET « group_id » = $1, « updated_at » = $2 WHERE « statistic_profiles ».« id » = $3 [[« group_id », 0], [« updated_at », « 2019-11-30 02:02:50.205677 »], [« id », 11]]
(0.2ms) ROLLBACK
Completed 500 Internal Server Error in 96ms (ActiveRecord: 14.0ms | Elasticsearch: 0.0ms)

ActiveRecord::InvalidForeignKey (PG::ForeignKeyViolation: ERROR: insert or update on table « statistic_profiles » violates foreign key constraint « fk_rails_7cf6dfadf2 »
DETAIL: Key (group_id)=(0) is not present in table « groups ».
: UPDATE « statistic_profiles » SET « group_id » = $1, « updated_at » = $2 WHERE « statistic_profiles ».« id » = $3):
app/models/user.rb:395:in update_statistic_profile' app/services/members/members_service.rb:21:in update’
app/controllers/api/members_controller.rb:57:in `update’

Started GET « /api/notifications/polling?last_poll=2019-11-30T02:02:26.719Z » for 92.154.67.62 at 2019-11-30 02:02:57 +0000
Processing by API::NotificationsController#polling as JSON
Parameters: {« last_poll »=>« 2019-11-30T02:02:26.719Z »}
User Load (1.0ms) SELECT « users ».* FROM « users » WHERE « users ».« id » = $1 ORDER BY « users ».« id » ASC LIMIT 1 [[« id », 1]]
(0.7ms) SELECT COUNT() FROM « notifications » WHERE « notifications ».« receiver_id » = $1 AND « notifications ».« receiver_type » = $2 [[« receiver_id », 1], [« receiver_type », « User »]]
(0.5ms) SELECT COUNT(
) FROM « notifications » WHERE « notifications ».« receiver_id » = $1 AND « notifications ».« receiver_type » = $2 AND « notifications ».« is_read » = $3 [[« receiver_id », 1], [« receiver_type », « User »], [« is_read », « f »]]
Notification Load (0.6ms) SELECT « notifications ».* FROM « notifications » WHERE « notifications ».« receiver_id » = $1 AND « notifications ».« receiver_type » = $2 AND (is_read = false AND created_at >= ‹ 2019-11-30T02:02:26.719Z ›) ORDER BY created_at DESC [[« receiver_id », 1], [« receiver_type », « User »]]
Rendered api/notifications/index.json.jbuilder (2.4ms)
Completed 200 OK in 14ms (Views: 3.1ms | ActiveRecord: 2.8ms | Elasticsearch: 0.0ms)
Started GET « /api/notifications/polling?last_poll=2019-11-30T02:02:35.564Z » for 92.154.67.62 at 2019-11-30 02:03:05 +0000
Processing by API::NotificationsController#polling as JSON
Parameters: {« last_poll »=>« 2019-11-30T02:02:35.564Z »}

J’ai également copié les messages précédents et suivants pour le contexte
Merci
Fred

C’est très étrange car je ne reproduit pas du tout ce problème chez moi…
D’après ce que je vois, il semblerait que l’utilisateur en question (qui est un administrateur si j’ai bien compris) ait un identifiant de groupe à 0, ce qui est techniquement impossible, et donc, l’erreur remontée est que le groupe 0 n’existe pas dans la base de données (ce qui est logique). La question est donc : comment ce zéro a pu arriver là ? Et là… mystère !

Je serai néanmoins curieux de voir les paramètres de l’utilisateur en question, si tu me donner le retour de docker-compose run --rm fabmanager bundle exec rails runner "puts User.find(ID).to_json en remplaçant ID par l’identifiant de l’utilisateur qui essaye de valider son adresse email ?

Merci de ton retour Sylvain,
Je te renvoie la commande dès que j’ai accès à la machine… mais l’erreur se produit pour tout nouvel administrateur créé depuis l’interface web (avec la connexion de l’administrateur créé lors de l’installation) on peut le créer sans soucis mais dès que le user admin valide son email et rentre ses données perso pour libérer l’accès à l’application, l’erreur survient et le user est bloqué.
Si je pouvais « débloquer » ou valider les nouveaux comptes admin par mes collègues ça serait top
Bien à toi
Frédéric

Bonjour Sylvain,
Je rends compte ne pas vous avoir updaté sur cet incident que nous avons résolu de notre coté. En fait il se produit pour les comptes admin qui, à la création, reçoivent deux emails : le premier de MaJ de MDP et le second l’email standard de confirmation d’@email. Il faut que les utilisateurs valident en premier leur @email (donc traitent le second email) et ensuite le premier email pour MaJ leurs coordonnées, et là cela fonctionne.
Bien à vous
Frédéric

Salut,

Merci pour ton retour, c’est très intéressant. Il va falloir qu’on améliore un peu ce workflow car ce n’est effectivement pas très intuitif.

Bonne journée

Salut,

Je viens de publier la version 4.3.0 qui change pas mal de choses, notamment nous avons ajouté la variable USER_CONFIRMATION_NEEDED_TO_SIGN_IN qui te permet de forcer la vérification des emails. Pourrais-tu tester et me dire si tu penses que ça a amélioré les choses ?

Merci :slight_smile:

Merci Sylvain,
Je teste dès que je peux mettre à jour mon instance, cette variable agit sur tous les inscrits administrateurs et utilisateur standard ? ou peut-on l’appliquer sur des groupes ou des méthodes d’inscription ? par exemple conserver la vérification de l’email pour les inscrits en ligne mais pas pour ceux inscrits par un administrateur.
Merci pour le support
Fred

Salut,

Non, cette variable agit pour l’ensemble des comptes de la plateforme. Dans tous les cas, l’utilisateur aura un lien dans la boite de dialogue de connexion pour recevoir de nouveau le lien de vérification. Quant aux administrateurs, il seront toujours en mesure de prendre des réservations pour l’ensemble des membres, y compris ceux qui n’ont pas validé leur adresse.

Bonne journée