Questa guida spiega come modificare una preferenza utente per tutti gli utenti o per un sottoinsieme di utenti in Discourse.
Livello utente richiesto: Amministratore di sistema
È necessario l’accesso alla console.
Se devi aggiornare la preferenza utente per tutti i tuoi utenti o per un ampio sottoinsieme di utenti, puoi farlo tramite la console Rails.
Sommario
In questa guida imparerai:
- Come accedere alla console Rails per apportare modifiche in blocco
- Esempi di modifica delle preferenze utente
- Come identificare i nomi delle impostazioni
Accesso alla console Rails
Per accedere alla console Rails nella tua installazione di Discourse, esegui i seguenti comandi:
./launcher enter app
rails c
Quindi, esegui un comando che seleziona 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’ultimo accesso per gli utenti inattivi
Imposta la data dell’ultimo accesso per gli utenti che non si sono mai connessi.
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 email per ogni nuovo post.
UserOption.update_all(mailing_list_mode: false)
Impostazione del livello email su “solo quando assente” per tutti gli utenti
Riporta alle impostazioni predefinite per impedire le notifiche email quando gli utenti sono attivi sul sito.
UserOption.update_all(email_level: 1)
Il email_level può avere i seguenti valori:
- 0: sempre (invia email 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 email per escludere le risposte precedenti
Imposta la preferenza per escludere le risposte precedenti nelle notifiche email.
UserOption.update_all(email_previous_replies: 0)
Il email_previous_replies può avere i seguenti valori:
- 0: sempre
- 1: a meno che non sia già stata inviata via email
- 2: mai
Per ulteriori informazioni, consulta controllo delle risposte precedenti nelle email.
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 regolare l’impostazione relativa a “Quando pubblico in un argomento, imposta quell’argomento su”, è necessario modificare l’opzione utente notification_level_when_replying.
Controlla l’impostazione pertinente per monitoraggio.
Puoi anche configurare Docker per esporre psql e utilizzare PGadmin per una gestione più semplice.