Come reimpostare la password per gli utenti nel database PostgreSQL

Ciao a tutti,

Abbiamo alcune domande su come reimpostare la password per gli utenti in Discourse.
Sappiamo che il comando “RAILS_ENV=production /usr/local/bin/bundle exec rake admin:create” può reimpostare la password per gli utenti esistenti o creare un nuovo utente amministratore. Ma non vogliamo reimpostare la password per l’utente amministratore utilizzando questo metodo. Vogliamo reimpostare la password per gli utenti nel database PostgreSQL.
Le informazioni sull’utente sono memorizzate nella tabella users nel database postgresql. E possiamo controllare gli utenti e le password usando “select id, username, name, password_hash from users;”. Quindi abbiamo due domande.

  1. Come viene crittografata la password? MD5? Sha256?
  2. Possiamo reimpostare la password usando " UPDATE users SET password_hash = ‘there is a hash password’ WHERE id=1; "?

Se qualcuno ha un’idea sarebbe molto utile, grazie!

Quale problema stai risolvendo? Perché non farli usare il link di reimpostazione della password e impostarla da soli?

Lo farei dalla console Rails piuttosto che da SQL. Dovrei guardare il codice sorgente per ottenerlo.

1 Mi Piace

Dalla console di Rails:

User.find_by(username: 'gollum').update!(password: 'shiiiire!-BAGGINS!')
3 Mi Piace

@supermathie , grazie mille!
Possiamo reimpostare la password tramite

RAILS_ENV=production rails runner 'User.find_by_email("admin@example.com").update!(password:"AdminAdmin1234566xxxxxx")'
2 Mi Piace