Impersonation récursive

Bonjour à tous,

J’ai configuré un serveur Discourse pour un client et lui ai permis de créer des comptes de test, sachant qu’ils deviendraient obsolètes une fois le SSO en place. J’ai tout mis en place, personnalisé mon thème et rédigé les descriptions de catégories pour tout le contenu en utilisant mon compte administrateur A.

Une fois DiscourseConnect configuré (comme seule option d’inscription), je me suis connecté avec mon compte administrateur depuis l’autre système et j’ai accordé des droits d’administrateur à ce compte B. À partir de là, j’ai effectué toutes mes actions sous le compte B, car je ne pouvais plus me connecter avec A.

Ensuite, je suis tombé sur le bouton « Impersonner » et j’ai été curieux. Il semblait que je n’avais pas besoin de supprimer le compte A si je pouvais simplement l’impersonner pour modifier les descriptions de catégories, les FAQ, etc. J’ai donc utilisé B pour impersonner A et effectué plusieurs modifications pour tester, et tout s’est bien passé.

Jusqu’à ce que je me demande si je pouvais également impersonner le compte bot du forum. Alors que j’impersonnais toujours A (qui était administrateur), j’ai décidé d’impersonner C. Cela a fonctionné, super, alors j’ai fermement déconnecté et poursuivi ma journée.

Maintenant, lorsque je suis connecté en tant que B, je ne peux plus impersonner A ni C (les autres utilisateurs fonctionnent correctement). L’endroit où le bouton devrait apparaître indique simplement : « Les administrateurs et modérateurs ne peuvent pas être supprimés ».

Les journaux indiquent que « B a impersonné A » et « A a impersonné C ».

Je ne savais pas si cela justifiait un rapport de bug — car je n’ai actuellement aucun moyen de reproduire mes étapes — ou s’il existait un moyen simple de résoudre ce problème.

Merci d’avance,
Flo

Salut Flo, bienvenue dans la communauté :waving_hand:t2:

Le bouton « Impersonate » est toujours là et je suis sur la dernière version.

Est-il possible de se connecter au compte Admin A en utilisant /users/admin-login pour se connecter via l’e-mail ? Cela pourrait-il vous permettre de dénouer l’impasse ?

2 « J'aime »

Bonjour Gavin,

Comment puis-je savoir quelle version j’utilise via l’interface ? Sur le tableau de bord, il est indiqué « dernière mise à jour le 3 août », mais je ne vois pas de numéro de version.

Merci

Salut JammyDoger,

Je ne savais pas que cette route existait ! Cela résout certainement le problème de contournement de DiscourseConnect, même si je n’ai pas encore réussi à démêler le nœud, pour ainsi dire. Les boutons d’impersonnification apparaissent pour l’utilisateur A, donc je suppose qu’il n’impersonnise actuellement personne ?

Vous pouvez consulter le code source. Ce n’est pas difficile à trouver.

Rendez-vous sur /u/admin-login et modifiez l’adresse e-mail du compte administrateur pour une adresse permettant une connexion via SSO. Vous pouvez également modifier l’adresse via la console Rails.

1 « J'aime »

Bonjour Jay,

J’ai simplement supposé à tort que si tu cachais délibérément l’information aux administrateurs, elle ne serait pas publique. C’est donc la version 2.8.0.beta4.

Concernant ta deuxième suggestion, je ne souhaite pas le faire car l’utilisateur A n’a pas d’équivalent dans mon autre système, bien que n’importe quel utilisateur puisse potentiellement avoir un compte sur le forum.

Pouvez-vous maintenant vous déconnecter du compte Admin A pour vous assurer qu’il est réinitialisé en tant qu’administrateur et qu’il ne se fait pas passer pour quelqu’un d’autre ?

(et déconnectez également Admin B, au cas où :slightly_smiling_face:)

Salut JammyDodger,

Oui, je me suis déconnecté des deux et reconnecté à B, mais ça ne fonctionne pas :upside_down_face:

Le vôtre ressemble-t-il à ceci ?

C’est à peu près tout ce que je sais, mon petit réservoir de connaissances est à sec. :slightly_smiling_face: Je ne savais pas si les administrateurs pouvaient se faire passer pour d’autres administrateurs (je pensais que seuls les développeurs le pouvaient). As-tu retiré Admin B de cette liste ?

J’espère que quelqu’un avec des poches de connaissances plus profondes pourra intervenir avec quelque chose de plus pertinent. :slightly_smiling_face::crossed_fingers:

1 « J'aime »

Bonjour Gavin,

Non, je ne vois pas de section Version

Alors, votre compte n’est pas administrateur.

Je vous suggère d’ajouter votre compte B dans la section Dev du fichier yml de l’application, comme l’a mentionné @JammyDodger.

  ## TODO: Liste d'emails séparés par des virgules qui seront rendus administrateurs et développeurs
  ## lors de l'inscription initiale, par exemple 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'gavin@truecode.co.za'
2 « J'aime »

On dirait que vous étiez sur la bonne voie, merci !
Votre contribution a été très appréciée ˆˆ

2 « J'aime »

Cela a fonctionné, les boutons d’impersonnalisation sont de retour ! Merci Gavin ˆˆ

Cependant, je ne vois toujours pas la section Version du tableau de bord, et il reste encore flou pourquoi j’ai pu impersonnaliser quelqu’un dans un premier temps..

1 « J'aime »

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