Questa guida spiega come modificare una preferenza utente per tutti o per un sottoinsieme di utenti in Discourse.
Livello utente richiesto: Amministratore di sistema
È necessario l’accesso alla console.
Se è necessario aggiornare la preferenza utente per tutti gli utenti o per un ampio sottoinsieme di utenti, è possibile farlo tramite la console rails.
Riepilogo
In questa guida imparerai:
- Come accedere alla console Rails per apportare modifiche massive
- Esempi di modifica delle preferenze utente
- Come identificare i nomi delle impostazioni
Accesso alla console Rails
Per accedere alla console Rails nella tua configurazione di Discourse, esegui i seguenti comandi:
./launcher enter app
rails c
Quindi, esegui un comando che selezioni l’insieme di utenti che desideri aggiornare.
Esempi di modifica delle preferenze utente
Di seguito sono riportati esempi di comandi per aggiornare varie preferenze utente:
Impostazione della data dell’ultima visita per gli utenti inattivi
Imposta la data dell’ultima visita per gli utenti che non hanno mai effettuato l’accesso.
User.where("last_seen_at IS NULL").update_all(last_seen_at: 1.week.ago)
Disattivazione della modalità mailing list per tutti gli utenti
Riporta gli utenti all’impostazione predefinita per impedire loro di ricevere e-mail per ogni nuovo post.
UserOption.update_all(mailing_list_mode: false)
Impostazione del livello e-mail su solo quando assente per tutti gli utenti
Ripristina le impostazioni predefinite per impedire le notifiche e-mail quando gli utenti sono attivamente presenti sul sito.
UserOption.update_all(email_level: 1)
Dove email_level può avere i seguenti valori:
- 0: sempre (invia e-mail anche quando l’utente è attivo)
- 1: solo quando assente (predefinito)
- 2: mai
Abilitazione della chat per tutti i membri del gruppo beta
beta_group = Group.find_by(name: "beta")
beta_group.users.each do |user|
UserOption.where(user_id: user.id).update_all(chat_enabled: true)
end
Configurazione delle notifiche e-mail per escludere le risposte precedenti
Imposta la preferenza per escludere le risposte precedenti nelle notifiche e-mail.
UserOption.update_all(email_previous_replies: 0)
Dove email_previous_replies può avere i seguenti valori:
- 0: sempre
- 1: a meno che non sia stato precedentemente inviato via e-mail
- 2: mai
Per ulteriori informazioni, consulta controllo delle risposte precedenti nelle e-mail.
Identificazione del nome di un’impostazione
Per determinare il nome dell’impostazione utente e le opzioni disponibili:
- Utilizza il plugin data explorer per ispezionare la tabella
user_options. - Cerca nel repository GitHub di Discourse.
Ad esempio, per modificare l’impostazione relativa a “Quando pubblico in un argomento, imposta tale argomento come”, è necessario modificare l’opzione utente notification_level_when_replying.
Controlla l’impostazione pertinente per watching.
Puoi anche configurare Docker per esporre psql e utilizzare PGadmin per una gestione più semplice.