Cómo activar y anular la puesta en escena de cuentas para usuarios importados

Hola,

He importado publicaciones de una lista de correo y los usuarios se han creado correctamente. Pero ahora están en la lista de “en espera”.

Así que puedo activarlos uno por uno, pero ¿cómo los activo en modo masivo? ¿Y cómo los saco de esa lista? No veo ningún botón para sacar a un usuario de la lista de espera.

Luego, los usuarios están en mi lista de pendientes e incluso entonces, ¿hay alguna forma de aprobarlos en masa?

Gracias.

la forma fácil es usar el explorador de datos

El plugin de explorador de datos no te permite modificar datos.

Administrative Bulk Operations debería tener algunas pistas.

Algo como

User.all.update_all(active: true)

podría funcionar.

Eso podría funcionar, pero si los correos electrónicos no se han validado antes, durante o después de la importación, habrá problemas. Probablemente funcione con una lista de distribución, pero en general no es una buena práctica hacerlo así.

El enfoque recomendado es animar a tus usuarios a visitar el sitio y crear una cuenta con el correo electrónico que usaron en la lista de distribución. Si el correo coincide con el de un usuario en espera, el usuario asumirá el control de esa cuenta. Si no, se creará una nueva cuenta.

Solo para constancia, @Julien_J, respondí a tu pregunta, ¡pero la de Justin es mejor!

Hola,

Intenté invitar a todos los usuarios. Ellos recibieron correctamente el correo de invitación, pero cuando intentan crear una cuenta con nombre y contraseña, al hacer clic en “Aceptar invitación”, no sucede nada.

Así que probé a invitar a alguien que aún no es un usuario en espera y en ese caso funciona correctamente.

Si reviso la consola de Chrome, veo un error como este:

_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)

Estoy usando la última versión release +486.

Y fui a ver los registros donde tengo:
Mensaje (5 copias reportadas)

Reviewable::InvalidAction (No se puede realizar `approve_user` en 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'

Rastreo

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'

Entorno

HOSTS HTTP: www.domain.tld

De lo contrario, si el usuario en fase de pruebas intenta utilizar la función de contraseña olvidada para establecer una nueva contraseña, recibe un mensaje de que el usuario no existe…

¿Tienes alguna idea sobre cómo resolver eso?

@Julien_J Envíame por mensaje privado la dirección de tu sitio y déjame ver si puedo ayudarte.

Hola,
tengo el mismo problema. ¿Lo resolviste de alguna manera? ¡Gracias! :slight_smile:

Aún no me ha enviado un mensaje directo. Así que o bien lo hizo correctamente o sigue pendiente.

Hola, lo siento por no haber respondido antes.
De hecho, mi foro está solo en modo privado, por lo que es difícil hacer algo con la URL.

Como puedes ver en mis mensajes anteriores, la invitación se recibió correctamente, pero los usuarios no pudieron hacer nada con ella. Para resolverlo, y dado que estoy en una lista pequeña con menos de 10 usuarios, modifiqué el correo electrónico de cada usuario por uno mío (con alias dinámico en Gmail, como miemail+usuario1@gmail.com), usé la opción “olvidé mi contraseña” para establecer una contraseña y luego cambié el correo electrónico para poner la dirección correcta del usuario.

No es la mejor manera, pero funciona.

Resuelto en