Cambia nome utente tramite API?

Vorrei modificare automaticamente i nomi utente tramite API in modo che corrispondano all’indirizzo email.
La nostra comunità ha la politica secondo cui il nome utente deve essere nome.iniziale.cognome per un utente con l’indirizzo email nome.iniziale.cognome@azienda.com.
Fino ad ora ho modificato manualmente i nomi utente delle persone poco dopo la registrazione, se non rispettavano la regola, tramite l’interfaccia di amministrazione, e vorrei automatizzare questo processo tramite API o strumenti simili.
Non ho trovato la chiamata nella documentazione dell’API di Discourse: è nascosta da qualche parte la procedura per rinominare un utente?
Esiste un’alternativa, ad esempio potrei far rispettare questa regola già al momento della registrazione?

If everyone works for the company, the usual solution is to use sso. They way they can’t create the wrong username.

4 Mi Piace

I would like to dig this back up as I have a similar request. I need a newly registered user’s username to be changed to Firstname_Lastname automatically, but I am already using an SSO (Memberful) and they refuse to do this for ‘security concerns’ :roll_eyes: so I have to do it manually each time a person signs up and inevitably the user emails me about it before I have a chance to change it because it is super boring using only the first name. So is there anyway to to add this as a task? It would of course have to check if the name exists and add a numeral behind it if so. Thanks!

da How does one change a username via the API? - #2 by blake :

Prova invece questo endpoint:

curl -i -sS -X PUT "http://127.0.0.1:3000/u/blake/preferences/username.json"  \
-H "Content-Type: multipart/form-data;" \
-F "api_key=a66d01fbe98cc51b2747d8bfe99f81d7adca18317fbf3c43aa20f340d8e25bfe"  \
-F "api_username=system" \
-F "new_username=blake2"

E restituirà:

{"id":1,"username":"blake2"}