Fortunatamente, le istruzioni includono un modo per modificare direttamente le impostazioni di amministrazione, ma sembra che quella di cui ho bisogno specificamente sia cambiata?
Le istruzioni indicano di impostare SiteSetting.enable_sso=false, ma:
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)>
Qualcuno sa quale potrebbe essere la nuova impostazione di amministrazione?
È ottimo che tu abbia trovato quella cosa. Se stai riscontrando riferimenti all’impostazione enable_sso nelle pagine delle opzioni del plugin WP Discourse, tali riferimenti dovrebbero essere stati modificati per utilizzare il nuovo nome dell’impostazione enable_discourse_connect nell’ultima versione del plugin (versione 2.3.0).
Se ci sono ancora riferimenti al vecchio nome dell’impostazione nella documentazione del plugin su Meta, dovremo aggiornarli per utilizzare il nuovo nome. Controllerò di nuovo questo all’inizio della prossima settimana.
Tieni presente che, mentre configuri DiscourseConnect, come amministratore puoi bypassare l’accesso SSO andando alla pagina /u/admin-login del tuo sito Discourse. Inserisci il tuo indirizzo email nel modulo presente nella pagina. Ti verrà inviato via email un link di accesso monouso.
Su Discourse, sono necessarie le seguenti impostazioni:
enable_discourse_connect
discourse_connect_url (dovrebbe essere impostato sulla homepage del tuo sito WordPress)
discourse_connect_secret (assicurati che il suo valore corrisponda a quello inserito nell’impostazione DiscourseConnect Secret Key sul tuo sito WordPress)
Dovresti anche abilitare l’impostazione del sito verbose_discourse_connect_logging su Discourse. Con questa impostazione abilitata, potresti ottenere alcuni dettagli utili sulla causa del problema nei log degli errori di Discourse.
Su WordPress, assicurati di aver compilato l’impostazione DiscourseConnect Secret Key. L’unica altra impostazione che deve essere abilitata su WordPress è l’impostazione Enable DiscourseConnect Provider.
@simon grazie mille per il consiglio su verbose_discourse_connect_logging!
Ok, quindi enable_discourse_connect è false e enable_local_logins è true
Forse qualcuno sa cosa sta succedendo qui?
Clicchiamo sul link di accesso admin via email
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, clicchiamo sul link di accesso nell’installazione di 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)
Qui qualcosa va storto
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)
Ora viene semplicemente visualizzata la schermata di accesso, e funziona perfettamente
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)
Inoltre, qualcuno sa se esiste un comando che posso usare nella CLI $rails c per scaricare tutte le coppie di impostazioni amministrative e relativi valori? Penso di poter semplicemente resettare tutte le configurazioni relative a DiscourseConnect e ricominciare da capo. O forse esiste un comando CLI che resetta tutte le impostazioni amministrative allo stato iniziale?
—Aggiornamento—
lol, ho appena trovato SiteSetting.all, che è un dump brutale di informazioni. Ha dei filtri?
Quindi provo ad aggiungere un nuovo account e ricevo il seguente messaggio di errore:
Non siamo riusciti a rilevare se il tuo account è stato creato: assicurati di avere i cookie abilitati.
Cosa?! Forse dovrei semplicemente reinstallare???
—Aggiornamento—
Ho ricevuto l’email di verifica per l’iscrizione, ha funzionato, ma quando ho provato a accedere come nuovo utente ho ottenuto:
Un moderatore deve approvare manualmente il tuo nuovo account prima che tu possa accedere a questo forum. Riceverai un’email quando il tuo account sarà approvato!
lol…
—Aggiornamento—
Volevo solo dire che mi piace la complessità di Discourse. È un software straordinario. L’unico forum che si avvicina davvero è XF. Anni fa, quando [unknown] era ancora lo sviluppatore principale di SimpleMachines, anche quello era qualcosa di bellissimo, ma quell’epoca è da tempo finita. Grazie a tutti gli sviluppatori. Avete creato una macchina grande ed elegante.
Sono contento che tu abbia individuato la causa. Sono curioso, come hai configurato il tuo Discourse? Immagino tu non stia usando l’installazione Docker standard?
Ho usato Docker, ma l’ho messo dietro a un reverse proxy su Apache2 per poterlo eseguire come virtual host dietro a Hestia Control Panel. Avevo configurato Hestia con Apache2 invece che con Nginx… quindi è per questo che ho usato Apache2.
Se guardi alla fine di questo thread puoi vedere la mia configurazione.