Comment supprimer un enregistrement SSO via l’API ? J’utilise Discourse et je modifie l’external_id. Comment puis-je effacer les anciens enregistrements de cet utilisateur sans perdre son compte ni ses publications ?
Peut-être supprimez-vous simplement tous les enregistrements SSO une fois depuis la console Rails et laissez-les se reconnecter via leur adresse e-mail ? Je ne me souviens plus avec certitude de la table que vous recherchez, mais cela pourrait être quelque chose comme
UserAssociatedAccount.all.destroy_all
Je pense qu’il existe d’autres sujets traitant de ce problème. Avez-vous cherché ?
L’external_id transmis par le fournisseur SSO est censé ne jamais changer. Si cela est possible, évitez de modifier les valeurs external_id de vos utilisateurs.
À condition que vous ne définissiez pas le paramètre SSO require_activation à true, vous pouvez supprimer tous les enregistrements SSO comme l’a mentionné Jay. Pour ce faire, accédez à la console de votre site et exécutez :
SingleSignOnRecord.destroy_all
Avant d’exécuter cette commande, assurez-vous que le paramètre require_activation n’est pas défini à true dans la charge utile SSO. Si ce paramètre est défini, les utilisateurs ne seront pas retrouvés via leur adresse e-mail lors de leur prochaine connexion au site. Au lieu de cela, ils recevront une erreur lors de leur tentative de connexion.
Si le paramètre require_activation n’est pas défini à true, les utilisateurs seront retrouvés via leur adresse e-mail lors de leur prochaine connexion à Discourse. Un nouvel enregistrement SSO sera alors créé pour eux. Si les adresses e-mail de certains utilisateurs ne sont pas synchronisées entre votre site fournisseur SSO et Discourse, ils rencontreront des problèmes lors de leur prochaine connexion à Discourse. Vous trouverez des détails sur la résolution de ces problèmes ici : Debug and fixing common DiscourseConnect issues.
Si vous comptez exécuter la commande ci-dessus, assurez-vous de créer une sauvegarde de la base de données de votre site avant de lancer la commande. En cas de problème, vous pourrez restaurer le fichier de sauvegarde.
Mon forum Discourse est au plan STANDARD. Est-il possible d’avoir accès à la console Rails avec ce plan ? Si oui, comment dois-je procéder ?
Envoyez un e-mail à support@discourse.org ou @support pour exécuter la commande ci-dessus.