Felizmente, as instruções incluem uma maneira de manipular diretamente as configurações de administrador, mas aparentemente a que eu preciso especificamente pode ter mudado?
As instruções dizem para definir, SiteSetting.enable_sso=false, mas:
root@hestia-app:/var/www/discourse# rails c
[1] pry(main)> SiteSettings.enable_sso=false
NoMethodError: undefined method `enable_sso=' for SiteSettings:Module
from (pry):1:in `__pry__'
[2] pry(main)>
Alguém sabe qual pode ser a nova configuração de administrador?
Que ótimo que você encontrou isso. Se você estiver encontrando referências à configuração enable_sso nas páginas de opções do plugin WP Discourse, essas referências deveriam ter sido alteradas para usar o novo nome de configuração enable_discourse_connect na versão mais recente do plugin (versão 2.3.0).
Se ainda houver referências ao nome antigo de configuração na documentação do plugin no Meta, precisaremos atualizá-las para usar o novo nome de configuração. Vou verificar isso no início da próxima semana.
Observe que, ao configurar o DiscourseConnect, como administrador, você pode contornar o login SSO acessando a página /u/admin-login do seu site Discourse. Insira seu endereço de e-mail no formulário da página. Um link de login único será enviado para você por e-mail.
No Discourse, você precisa das seguintes configurações:
enable_discourse_connect
discourse_connect_url (deve ser definido para a página inicial do seu site WordPress)
discourse_connect_secret (certifique-se de que seu valor corresponda ao que você inseriu na configuração DiscourseConnect Secret Key no seu site WordPress)
Você provavelmente também deve habilitar a configuração de site verbose_discourse_connect_logging no Discourse. Com essa configuração habilitada, você pode obter alguns detalhes úteis sobre a causa do problema nos logs de erro do Discourse.
No WordPress, certifique-se de ter preenchido a configuração DiscourseConnect Secret Key. A única outra configuração que precisa ser habilitada no WordPress é a configuração Enable DiscourseConnect Provider.
@simon muito obrigado pela dica do verbose_discourse_connect_logging!
Ok, então enable_discourse_connect está como false e enable_local_logins como true
Alguém sabe o que está acontecendo aqui?
Vamos clicar no link de login por e-mail do admin
Started GET "/session/email-login/5356b2413338852f25d4382e34fb53a6" for {my.ip.address} at 2021-08-07 02:33:43 +0000
Processing by SessionController#email_login_info as HTML
Parameters: {"token"=>"5356b2413338852f25d4382e34fb53a6"}
Rendered default/empty.html.erb within layouts/application (Duration: 0.1ms | Allocations: 11)
Rendered layout layouts/application.html.erb (Duration: 41.1ms | Allocations: 8102)
Completed 200 OK in 66ms (Views: 43.4ms | ActiveRecord: 0.0ms | Allocations: 12210)
Started GET "/session/email-login/5356b2413338852f25d4382e34fb53a6.json" for {my.ip.address} at 2021-08-07 02:33:48 +0000
Processing by SessionController#email_login_info as JSON
Parameters: {"token"=>"5356b2413338852f25d4382e34fb53a6"}
Completed 200 OK in 25ms (Views: 0.3ms | ActiveRecord: 0.0ms | Allocations: 4548)
Ok, vamos clicar no link de login na instalação do Discourse
Started GET "/session/csrf" for {my.ip.address} at 2021-08-07 02:33:56 +0000
Processing by SessionController#csrf as JSON
Completed 200 OK in 2ms (Views: 0.3ms | Allocations: 308)
Started POST "/session/email-login/5356b2413338852f25d4382e34fb53a6" for {my.ip.address} at 2021-08-07 02:33:57 +0000
Processing by SessionController#email_login as */*
Parameters: {"second_factor_method"=>"1", "timezone"=>"America/Denver", "token"=>"5356b2413338852f25d4382e34fb53a6"}
Completed 200 OK in 231ms (Views: 0.3ms | ActiveRecord: 0.0ms | Allocations: 24272)
Algo deu errado aqui
Started GET "/" for {my.ip.address} at 2021-08-07 02:33:58 +0000
Processing by ListController#latest as HTML
Redirected to http://my.discourse.install/login
Filter chain halted as :redirect_to_login_if_required rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.0ms | Allocations: 613)
Agora apenas renderizamos a tela de login, o que funciona perfeitamente
Started GET "/login" for {my.ip.address} at 2021-08-07 02:33:59 +0000
Processing by StaticController#show as HTML
Parameters: {"id"=>"login"}
Rendered static/login.html.erb within layouts/application (Duration: 38.2ms | Allocations: 1520)
Rendered layout layouts/application.html.erb (Duration: 103.4ms | Allocations: 12203)
Completed 200 OK in 130ms (Views: 105.7ms | ActiveRecord: 0.0ms | Allocations: 16261)
Started GET "/login.html" for {my.ip.address} at 2021-08-07 02:34:04 +0000
Processing by StaticController#show as HTML
Parameters: {"id"=>"login"}
Rendered static/login.html.erb (Duration: 22.0ms | Allocations: 1352)
Completed 200 OK in 25ms (Views: 23.0ms | Allocations: 1970)
Além disso, alguém sabe se existe um comando que eu possa usar no CLI do $rails c para exportar todos os pares de configuração/administração e seus valores? Acredito que eu poderia apenas redefinir tudo relacionado ao DiscourseConnect e começar do zero. Ou, quem sabe, exista um comando no CLI que simplesmente redefina todas as configurações administrativas para o estado inicial?
—edição para adicionar—
lol, acabei de encontrar o SiteSetting.all, agora isso é um despejo brutal de informações. Ele possui filtros?
Então, tento adicionar uma nova conta e recebo a seguinte mensagem de erro:
Não conseguimos detectar se sua conta foi criada; por favor, verifique se os cookies estão habilitados.
O quê??? Talvez eu devesse apenas reinstalar???
—edição para adicionar—
Recebi o e-mail de verificação de cadastro, funcionou, e quando tentei fazer login como novo usuário, apareceu:
Um moderador precisa aprovar manualmente sua nova conta antes que você possa acessar este fórum. Você receberá um e-mail quando sua conta for aprovada!
lol…
—edição para adicionar—
Só queria dizer que gosto da complexidade do Discourse. É uma peça de software incrível. O único fórum que realmente se aproxima é o XF. Anos atrás, quando [unknown] ainda era o desenvolvedor principal do SimpleMachines, aquilo também era algo lindo, mas essa era já acabou há muito tempo. Obrigado a todos os desenvolvedores. Vocês criaram uma máquina excelente e elegante.
Fico feliz que você tenha encontrado a causa. Tenho curiosidade: como você configurou seu Discourse? Estou imaginando que você não está usando a instalação padrão via Docker?
Eu usei o Docker, mas fiz um proxy reverso dele no Apache2 para poder executá-lo atrás do Painel de Controle Hestia como um host virtual. Eu configurei o Hestia com o Apache2 em vez do Nginx… por isso é que usei o Apache2.
Se você olhar o final deste tópico, verá minha configuração.