Impersonificazione Ricorsiva

Ciao a tutti,

Ho configurato un server Discourse per un cliente e gli ho permesso di creare account di prova, sapendo che alla fine sarebbero diventati obsoleti una volta attivato l’SSO. Ho impostato tutto, personalizzato il mio tema e scritto le descrizioni delle categorie per tutto utilizzando il mio account amministratore A.

Una volta configurato DiscourseConnect (come unica opzione di registrazione), ho effettuato l’accesso con il mio account amministratore dall’altro sistema e ho concesso i diritti di amministratore a quell’account B. Da quel momento in poi, avrei fatto tutto sotto l’account B, poiché non potevo più accedere come A.

Poi mi sono imbattuto nel pulsante “impersona” e ho avuto curiosità. Sembrava che non dovessi eliminare l’account A, se potevo semplicemente impersonarlo per modificare le descrizioni delle categorie, le FAQ, ecc. Quindi ho usato B per impersonare A e ho fatto un po’ di modifiche per testare, e tutto è andato bene.

Finché non sono diventato curioso se potevo impersonare anche l’account bot del forum. Quindi, mentre impersonavo ancora A (che risultava essere un amministratore), ho deciso di impersonare C. Ha funzionato, ottimo, così con diligenza ho disconnesso e sono andato avanti con la mia giornata.

Ora, quando sono connesso come B, non riesco più a impersonare A o C (gli altri utenti vanno bene). Lo spazio dove dovrebbe apparire il pulsante recita semplicemente: “Gli amministratori e i moderatori non possono essere eliminati”.

I log indicano che “B ha impersonato A” e “A ha impersonato C”.

Non ero sicuro se questo meritasse un rapporto di bug, dato che al momento non ho modo di riprodurre i miei passaggi, o se esistesse un modo semplice per risolvere il problema.

Grazie in anticipo,
Flo

Ciao Flo, benvenuto nella community :waving_hand:t2:

Il pulsante “Impersona” è ancora presente e io sono sull’ultima build.

È possibile accedere all’account Admin A tramite /users/admin-login utilizzando l’email? Questo potrebbe permetterti di sbloccare la situazione?

2 Mi Piace

Ciao Gavin,

Come posso sapere quale versione sto utilizzando tramite l’interfaccia? Nella Dashboard è indicato l’ultimo aggiornamento del 3 agosto, ma non riesco a vedere il numero di versione.

Grazie

Ciao JammyDoger,

Non sapevo che questa rotta esistesse! Di sicuro risolve il problema di aggirare DiscourseConnect, anche se non sono riuscito a districare il nodo, per così dire. I pulsanti di impersonificazione appaiono per l’utente A, quindi presumo che al momento non stia impersonando nessuno?

Puoi visualizzare il codice sorgente. Non è difficile trovarlo.

Vai su /u/admin-login e modifica l’email dell’account amministratore in una che consenta l’accesso tramite SSO. Potresti anche modificare l’indirizzo tramite la console Rails.

1 Mi Piace

Ciao Jay,

Ho semplicemente ipotizzato erroneamente che, se stai nascondendo deliberatamente le informazioni agli amministratori, allora non sarebbero pubbliche. Quindi restiamo sulla 2.8.0.beta4.

Per quanto riguarda il tuo secondo suggerimento, non voglio procedere in quel modo, poiché l’utente A non ha un equivalente nel mio altro sistema; tuttavia, qualsiasi utente potrebbe potenzialmente avere un account sul forum.

Ora puoi disconnetterti dall’account Admin A per assicurarti che sia stato ripristinato come amministratore e non stia impersonando nessuno?

(e disconnetti anche Admin B, per sicurezza :slightly_smiling_face:)

Ciao JammyDodger,

Sì, ho disconnesso entrambi e poi riconnesso B, ma niente da fare :upside_down_face:

Il tuo assomiglia a questo?

Ecco tutto quello che so, e non è molto. :slightly_smiling_face: Non ero sicuro se gli amministratori potessero impersonare altri amministratori (pensavo fosse possibile solo per gli sviluppatori). Hai rimosso l’Amministratore B da questa lista?

Spero che qualcuno con conoscenze più approfondite possa intervenire con qualcosa di più pertinente. :slightly_smiling_face::crossed_fingers:

1 Mi Piace

Ciao Gavin,

No, non vedo una sezione Versione

Allora il tuo account non è un amministratore.

Ti suggerisco di aggiungere il tuo Account B alla sezione Dev nel file yml dell’app, come ha menzionato @JammyDodger.

  ## TODO: Elenco di email separate da virgola che diventeranno amministratori e sviluppatori
  ## al primo esempio di registrazione 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'gavin@truecode.co.za'
2 Mi Piace

Sembra che tu fossi sulla strada giusta, grazie!
Il tuo contributo è stato molto apprezzato ˆˆ

2 Mi Piace

Ha funzionato, i pulsanti di impersonificazione sono tornati! Grazie Gavin ˆˆ

Però non vedo ancora la sezione Versione della dashboard e non è chiaro il motivo per cui sono riuscito a impersonificare qualcuno in primo luogo..

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.