Sto avendo problemi a rinominare un utente al vecchio nome utente (ho importato da phpBB e ho dovuto rinominare alcuni utenti, ad es. Möp in Moep). Ricevo un errore 500 quando provo a rinominare l’utente, anche ricaricando l’utente ha ancora il nome senza l’umlaut. Qualche idea? Le impostazioni unicode sono abilitate, gli umlaut sono consentiti e anche external system avatars enabled è abilitato.
Dovrai controllare i log e vedere cosa c’è. Potresti trovarli in /logs o potresti dover controllare /var/discourse/shared/standalone/log/rails/production.log (penso sia log e non logs).
Ah grazie. Non avevo idea se e dove ci fossero file di log. Ora lo so. ![]()
Trovato questo:
Started PUT "/users/moep/preferences/username" for xxxx:c5:9f0d:4c00:xxxx:e179:xxxx:xxxx at 2022-11-23 15:53:52 +0000
Processing by UsersController#username as */*
Parameters: {"new_username"=>"Möp", "username"=>"moep"}
Completed 500 Internal Server Error in 338ms (ActiveRecord: 0.0ms | Allocations: 137204)
Encoding::CompatibilityError (incompatible character encodings: ASCII-8BIT and UTF-8)
app/models/user.rb:1806:in `username_validator'
app/services/username_changer.rb:35:in `change'
app/services/username_changer.rb:13:in `change'
app/controllers/users_controller.rb:202:in `username'
C’è di più, ma ho pensato che potesse bastare. Altrimenti, posso fornire altro.
A proposito, ho provato più di un nome utente e ho avuto problemi simili.
@pfaffman puoi vedere la causa nei miei log perché ottengo l’errore 500? ![]()
Non gli sono piaciuti i caratteri nel nome utente. Non so perché.
Ho appena testato la rinomina di un utente da “moep” a “Möp” e ha funzionato.
- Che versione di Discourse stai usando?
- È un’installazione standard?
- C’è qualche tipo di reverse proxy davanti al tuo Discourse?
- Quale browser stai usando?
- Qual è il valore dell’impostazione
allowed_unicode_username_characters? - La rinomina nella console rails funziona?
./launcher enter app rails cuser = User.find_by_username("moep") new_username = "Möp" UsernameChanger.change(user, new_username, Discourse.system_user)
L’ultima. Che al momento dovrebbe essere la 2.9.0.beta12.
Sì. Ho solo rinominato il nome del container dato che ho intenzione di eseguire più istanze di Discourse. Ma al momento ne è in esecuzione solo una.
Apache 2.4
Chrome, Brave.
[äöüßÄÖÜẞ]
Non funziona neanche:
=> "Wägi"
[6] pry(main)> UsernameChanger.change(user, new_username, Discourse.system_user)
Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8
from /var/www/discourse/plugins/discourse-migratepassword/plugin.rb:78:in `+'
Qui ho provato da “Waegi” a “Wägi”.
Quello che ho notato: uso una nuova versione del template per il container che contiene le seguenti informazioni:
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: de
Nel vecchio template (del 2019 circa) c’era solo:
env:
LANG: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: de
Questo potrebbe avere a che fare con il problema? E queste sono le impostazioni corrette per un’installazione di Discourse con lingua principale tedesca?
Oh, e ora ho notato che l’errore viene generato da discourse-migratepassword - che era il motivo per cui ho rinominato gli utenti prima di importare tutto da phpBB a Discourse.
Sarebbe utile disabilitare discourse-migratepassword, rinominare gli utenti e poi riabilitarlo? Cos’altro viene gestito da discourse-migratepassword che necessita di essere attivo dopo l’importazione da phpBB?
Sembra che il plugin discourse-migratepassword non sia compatibile con i nomi utente Unicode.
cc @michaeld
Sì, disabilitare il plugin dovrebbe risolvere questo problema per te.
Non è utile durante l’importazione, solo dopo l’importazione poiché consente ai tuoi utenti di accedere con la loro vecchia password.
Ok, grazie. Quindi lo disabilito, rinomino gli utenti e poi lo riabilito subito. Grazie ancora! ![]()
La disabilitazione e poi la ridenominazione degli utenti ha funzionato. Grazie ancora. ![]()
Mi stavo chiedendo: gli utenti con umlaut possono ora accedere con la loro vecchia password phhBB poiché discourse-migratepassword sembra avere questo problema unicode?
Sono abbastanza sicuro che la prima volta che accedono, la loro password viene salvata come password di Discourse, quindi non ne hai più bisogno. Sembra che chiunque accederà con la password importata lo abbia già fatto.
Non riesco a riprodurre questo problema. Stesse impostazioni per unicode e caratteri consentiti, ho persino creato un utente con lo stesso nome utente e l’ho rinominato in Möp. Ci dovrebbe essere qualcos’altro, di cui non sono a conoscenza, affinché questo problema emerga?
Strano. Ho avuto questo problema con ogni nome utente che ho provato. come caratteri unicode avevo solo le umlaut tedesche come äöü. Un altro esempio è stato: Waegi di nuovo a Wägi.
Questo problema è sorto per la prima volta nello script di importazione da phpBB3 a Discourse, che è stato il motivo per cui ho rinominato tutti gli utenti con umlaut in phpBB e poi ho riavviato lo script di importazione. Certo, volevo che gli utenti in Discourse tornassero con il loro nome utente originale.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.