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

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

:person_raising_hand: Livello utente richiesto: Amministratore di sistema

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

39 Mi Piace