Este guia explica como editar uma preferência de usuário para todos ou um subconjunto de usuários no Discourse.
Nível de usuário necessário: Administrador do Sistema
Acesso ao console é necessário.
Se você precisar atualizar a preferência de usuário para todos os seus usuários ou um grande subconjunto de usuários, você pode fazer isso através do console rails.
Resumo
Neste guia, você aprenderá:
- Como acessar o console Rails para fazer alterações em massa
- Exemplos de modificação de preferências de usuário
- Como identificar nomes de configurações
Acessando o console Rails
Para entrar no console Rails na sua instalação do Discourse, execute os seguintes comandos:
./launcher enter app
rails c
Em seguida, execute um comando que selecione o conjunto de usuários que você deseja atualizar.
Exemplos de modificação de preferências de usuário
Abaixo estão exemplos de comandos para atualizar várias preferências de usuário:
Definindo a data da última visualização para usuários inativos
Defina a data da última visualização para usuários que nunca fizeram login.
User.where("last_seen_at IS NULL").update_all(last_seen_at: 1.week.ago)
Desativando o modo de lista de e-mails para todos os usuários
Retorne os usuários ao padrão para evitar que recebam e-mails para cada nova postagem.
UserOption.update_all(mailing_list_mode: false)
Definindo o nível de e-mail como apenas quando ausente para todos os usuários
Reverta para as configurações padrão para evitar notificações por e-mail quando os usuários estiverem ativamente presentes no site.
UserOption.update_all(email_level: 1)
Onde email_level pode ter os valores:
- 0: sempre (enviar e-mails mesmo quando o usuário está ativo)
- 1: apenas quando ausente (padrão)
- 2: nunca
Habilitando o chat para todos os membros do grupo 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
Configurando notificações por e-mail para excluir respostas anteriores
Defina a preferência para excluir respostas anteriores em notificações por e-mail.
UserOption.update_all(email_previous_replies: 0)
Onde email_previous_replies pode ter os valores:
- 0: sempre
- 1: a menos que já tenha sido enviado por e-mail anteriormente
- 2: nunca
Para mais informações, consulte controlar respostas anteriores em e-mails.
Identificando o nome de uma configuração
Para determinar o nome da configuração do usuário e as opções disponíveis:
- Use o plugin Data Explorer para inspecionar a tabela
user_options. - Pesquise no repositório GitHub do Discourse.
Por exemplo, para ajustar a configuração relacionada a “Quando eu postar em um tópico, defina esse tópico como”, você precisa modificar a opção de usuário notification_level_when_replying.
Verifique a configuração relevante para watching.
Você também pode configurar o Docker para expor o psql e utilizar o PGadmin para facilitar o gerenciamento.