Amministro un forum aziendale in cui vorremmo disabilitare l’accesso a utenti specifici senza inviar loro email. Finora, per disabilitare l’accesso abbiamo sospeso i loro account. Quando sospendiamo un account, l’utente riceve un’email con la motivazione della sospensione. Preferiremmo di gran lunga non disturbare la persona con un’email.
Ho provato prima a disattivare un account di test prima di sospenderlo, ma viene comunque inviata un’email.
Nota: quando sospendo un utente, non compilo il campo “Messaggio email” con nulla.
Esiste un modo per disabilitare l’accesso a Discourse senza inviare un’email all’utente?
Ecco del codice che lo farà dalla console di Rails:
./launcher enter app
rails c
username = "nome-utente-da-sospendere"
admin_username = "nome-utente-amministratore"
reason = "motivo della sospensione"
till = Time.at(33174889200)
u = User.find_by_username(username)
puts "impossibile trovare l'utente con nome #{username}" unless u
if u and !u.suspended?
u.suspended_till = till
u.suspended_at = DateTime.now
User.transaction do
u.save!
admin = User.find_by_username(admin_username)
StaffActionLogger.new(admin).log_user_suspend(
u,
reason
)
end
u.logged_out
end
So come farlo dalla console di Rails, ma esiste un modo per farlo tramite l’interfaccia web? Vedo l’opzione per modificare la loro email nel profilo, ma sembra che richieda la verifica dell’email prima che abbia effetto.
Hai ragione, l’ho appena testato. Inoltre, disattivare l’email dell’utente non impedisce l’invio della stessa. Sarei stato certo che, nelle versioni precedenti, nessuna email veniva inviata a meno che non fosse stato aggiunto un messaggio opzionale.