Comment activer et désolidariser les comptes pour les utilisateurs importés

Bonjour,

J’ai importé des messages depuis une liste de diffusion et les utilisateurs ont été créés avec succès.
Mais ils se trouvent maintenant dans la liste « en attente de validation ».

Je peux donc les activer un par un, mais comment les activer en mode par lots ?
Et comment les retirer de cette liste d’attente ? Je ne vois aucun bouton pour retirer un utilisateur de cette liste.

Ensuite, les utilisateurs se trouvent dans ma liste d’attente et, même dans ce cas, existe-t-il un moyen de les approuver en mode par lots ?

Merci.

La méthode la plus simple consiste à utiliser l’explorateur de données

Le plugin explorateur de données ne vous permet pas de modifier les données.

Administrative Bulk Operations devrait contenir quelques indices.

Quelque chose comme

User.all.update_all(active: true)

pourrait fonctionner.

Cela pourrait suffire, mais si les adresses e-mail n’ont pas été validées avant, pendant ou après l’importation, des problèmes surviendront. Cela fonctionnera probablement avec une liste de diffusion, mais ce n’est pas une bonne pratique en général.

L’approche recommandée consiste à encourager vos utilisateurs à se rendre sur le site et à créer un compte avec l’adresse e-mail qu’ils utilisaient sur la liste de diffusion. Si l’adresse e-mail correspond à celle d’un utilisateur en attente, l’utilisateur prendra le contrôle du compte en attente. Sinon, un nouveau compte sera créé.

Juste pour la forme, @Julien_J, j’ai répondu à ta question, mais celle de Justin est meilleure !

Bonjour,

J’ai essayé d’inviter tous les utilisateurs. Ils ont bien reçu l’e-mail d’invitation, mais lorsqu’ils tentent de créer un compte avec un nom et un mot de passe, rien ne se passe lorsqu’ils cliquent sur « Accepter l’invitation ».

J’ai donc essayé d’inviter quelqu’un qui n’est pas déjà un utilisateur en attente, et cela fonctionne parfaitement dans ce cas.

Si j’examine la console Chrome, je vois une erreur comme celle-ci :

_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:10113 PUT https://www.domain.tld/invites/show/f38d1e480cd9fb2d218c0d7aeddafded.json 500
send @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:10113
ajax @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:9696
i @ _application-fe142cfba5f192f0e63470885009a5a5bfbf952412fc41b59ea670a3ae4c7e27.js:9027
(anonymous) @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:72238
n @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:72760
r @ _application-fe142cfba5f192f0e63470885009a5a5bfbf952412fc41b59ea670a3ae4c7e27.js:9041
submit @ _application-fe142cfba5f192f0e63470885009a5a5bfbf952412fc41b59ea670a3ae4c7e27.js:34690
t._join @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:67257
t.join @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:66968
f @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:53760
(anonymous) @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:20968
r @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:50091
(anonymous) @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:20967
click @ _application-fe142cfba5f192f0e63470885009a5a5bfbf952412fc41b59ea670a3ae4c7e27.js:49429
trigger @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:46074
e @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:43433
t._run @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:67275
t._join @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:67251
t.join @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:66968
f @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:53760
(anonymous) @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:46175
r @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:50091
handleEvent @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:46171
handleEvent @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:45108
(anonymous) @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:45498
dispatch @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:5443
v.handle @ _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:5247
_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:38545 Uncaught Error: [object Object]
    at _application-fe142cfba5f192f0e63470885009a5a5bfbf952412fc41b59ea670a3ae4c7e27.js:34720
    at E (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:72211)
    at w (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:72194)
    at g (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:72130)
    at t.invoke (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:66552)
    at e.t.flush (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:66442)
    at e.t.flush (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:66646)
    at e.t._end (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:67222)
    at e.t.end (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:66908)
    at e.t._run (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:67277) 

Je suis sur la dernière version +486.

Et j’ai consulté les journaux où j’ai trouvé :
Message (5 copies signalées)

Reviewable::InvalidAction (Impossible d'exécuter `approve_user` sur ReviewableUser)
app/models/reviewable.rb:346:in `perform`
app/models/invite_redeemer.rb:149:in `approve_account_if_needed`
app/models/invite_redeemer.rb:81:in `process_invitation`
app/models/invite_redeemer.rb:8:in `block in redeem`
app/models/invite_redeemer.rb:6:in `redeem`
app/models/invite.rb:85:in `redeem`
app/controllers/invites_controller.rb:52:in `perform_accept_invitation`
app/controllers/application_controller.rb:350:in `block in with_resolved_locale`
app/controllers/application_controller.rb:350:in `with_resolved_locale`
lib/middleware/omniauth_bypass_middleware.rb:68:in `call`
lib/content_security_policy/middleware.rb:12:in `call`
lib/middleware/anonymous_cache.rb:328:in `call`
config/initializers/100-quiet_logger.rb:19:in `call`
config/initializers/100-silence_logger.rb:31:in `call`
lib/middleware/enforce_hostname.rb:22:in `call`
lib/middleware/request_tracker.rb:176:in `call`

Backtrace

app/models/reviewable.rb:346:in `perform`
app/models/invite_redeemer.rb:149:in `approve_account_if_needed`
app/models/invite_redeemer.rb:81:in `process_invitation`
app/models/invite_redeemer.rb:8:in `block in redeem`
activerecord (6.0.3.2) lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction`
activerecord (6.0.3.2) lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction`
activesupport (6.0.3.2) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize`
activesupport (6.0.3.2) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt`
activesupport (6.0.3.2) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize`
activesupport (6.0.3.2) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt`

Env

HÔTES HTTP : www.domain.tld

Sinon, si l’utilisateur mis en scène tente d’utiliser la fonction de mot de passe oublié pour définir un nouveau mot de passe, il reçoit un message indiquant que l’utilisateur n’a pas été trouvé…

Avez-vous une idée de la façon de résoudre cela ?

@Julien_J Envoyez-moi votre adresse de site en message privé et voyons si je peux vous aider.

Bonjour,
J’ai le même problème. L’avez-vous résolu d’une manière ou d’une autre ? Merci ! :slight_smile:

Il ne m’a toujours pas envoyé de message privé. Donc soit il est venu directement, soit c’est toujours en attente.

Bonjour, je suis désolé pour mon absence de réponse.
En fait, mon forum est uniquement en mode privé, il est donc difficile de faire quelque chose avec l’URL.

Comme vous pouvez le voir dans mes messages précédents, l’invitation a bien été reçue, mais les utilisateurs n’ont pas pu faire grand-chose avec. Pour résoudre ce problème, et parce que je suis sur une petite liste avec moins de 10 utilisateurs, j’ai modifié l’email de chaque utilisateur en utilisant l’un des miens (avec un alias dynamique sur Gmail comme monemail+user1@gmail.com), puis j’ai utilisé la fonction « mot de passe oublié » pour définir un mot de passe, avant de changer l’email pour mettre la bonne adresse email de l’utilisateur.

Ce n’est pas une bonne méthode, mais cela fonctionne.

Résolu dans