Modifica una preferenza utente per tutti o per un sottoinsieme di utenti

:bookmark: Questa guida spiega come modificare una preferenza utente per tutti gli utenti o per un sottoinsieme di utenti in Discourse.

:person_raising_hand: Livello utente richiesto: Amministratore di sistema

:warning: È 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.

39 Mi Piace