Impossibile creare una chiave API di livello "Single User", viene sempre impostata su "All Users"

Passaggi per la riproduzione:

  1. Apri https://yourdiscoursedomain.com/admin/api/keys
  2. Seleziona una nuova chiave
  3. Scegli “single user” come livello utente
  4. Crea la chiave
  5. Apri i dettagli della chiave dopo la creazione
  6. Il livello utente risulterà “All Users”

Non mi è molto chiaro qual è la differenza tra le due opzioni di livello utente, ma sembra trattarsi di un bug piuttosto evidente.

(Sto utilizzando il servizio Discourse ospitato)

Hai anche selezionato un utente per cui creare la chiave API?

Generalmente ciò che ti serve è una chiave API “all-user”. Per alcune cose, in particolare per l’uso di discourse_theme, è richiesta una chiave utente.

Cosa stai cercando di fare con l’API?

1 Mi Piace

Posso riprodurre il problema seguendo i passaggi che hai elencato. Quando si crea una chiave API per un singolo utente, Discourse si aspetta che un nome utente venga aggiunto al campo ‘Utente’ del modulo:

Se ‘Singolo utente’ è selezionato come livello utente, ma nessun nome utente viene aggiunto al campo Utente, viene creata una chiave API per tutti gli utenti. Mi aspetterei invece che venga visualizzato un messaggio di errore, simile a quanto accade quando il modulo viene inviato senza una descrizione.

3 Mi Piace

Volevo creare una sorta di utente “bot” per recuperare i post da categorie specifiche. Questa istanza di Discourse utilizza l’autenticazione GSuite, quindi non è più possibile creare utenti arbitrari. Speravo che per una chiave “Single User” mi permettesse di inserire il nuovo nome utente che volevo assegnare al bot, ma ora vedo che il nome utente deve corrispondere a un utente esistente. Il campo del nome utente non ha convalida, quindi non era chiaro che non potevo inserire un nome qualsiasi (come farei ad esempio per gli webhook in arrivo di Slack). Il sistema fallisce silenziosamente al momento dell’invio quando cerca il nome utente inserito e crea invece una chiave “All Users”.

Suppongo che si tratti più di un bug di usabilità che funzionale. Ho trovato la documentazione qui confusa, poiché non spiegava affatto il campo “Livello utente” e non c’era alcun accenno a un tipo “All Users” tranne una menzione in un commento più avanti nel thread.

Una chiave API per tutti gli utenti funzionerebbe, a meno che tu non voglia che il “bot” non possa leggere alcune categorie.

È questo il tuo componente di selezione del nome utente @j.jaffeux?

No, questo non è un componente select-kit. Il problema è che controlliamo solo la presenza della descrizione e non del nome utente. La modalità utente (singola/tutti) è solo un valore lato client, quindi quando il modello viene validato lato server, tutto ciò che sa è che abbiamo richiesto una chiave e se abbiamo fornito un utente o meno.

Questo dovrebbe migliorare la situazione; chiederò a David di rivedere:

7 Mi Piace