スタッフのみがソーシャルアカウントのリンクを解除できるようにする?

コミュニティの設定上、ユーザーがDiscordまたはSteamのソーシャルログインアカウントを解除できないようにしたいのですが、これは可能でしょうか?Steamログインは外部プラグインなので、解除できないように調整できました(スタッフでも解除できません)が、DiscordログインはDiscourseにバンドルされているため、変更する方法があるか分かりません。解除ソーシャルアカウントボタンをスタッフのみに表示/機能させる方法はありますか?例えば、ユーザーが間違ったアカウントをリンクした場合など、アカウントを解除したいまれな状況はありますが、Discordとのランク同期を容易にするためには、ユーザーが自分で解除できるのは奇妙に思えます。このインスタンスではプラグインは機能しないと思いますが、間違っている可能性もあります。このような機能がどのように追加されるのか、よく分かりません。

CSSで隠すことができます。彼らがあなたとそれらの認証情報を共有するかどうかを決定する能力を奪うことは、利用規約の違反になると想像しますが、私の想像はあまりにも突飛でしょうか。

「いいね!」 2

確かに、利用規約の部分は良い点ですね。そこまで考えていませんでした。Discordでは、いつでもアクセスを取り消せることは知っています。言及していただいたので、今読んでみます。主に、ランクと禁止の同期にユーザーIDを使用しているため、ユーザーがリンクを解除したくありません。ユーザーがリンクを解除できると、禁止するのが少し面倒になり、ユーザーが複数のDiscordアカウントでランクを同期できる可能性があります。Steamの部分はログインごとに同期されるため、問題ありません。

編集:はい、Discordの開発者向けドキュメントを読みましたが、特に気になる点はありませんでした。したがって、続行しても問題ないと思います。ユーザーはいつでもDiscordを通じてアプリとの連携を解除できますが、Discourseでリンクが解除されるかどうかはわかりません。

「いいね!」 1

うーん、さらに調べてみたところ、Discourse の変更やコア プロジェクトへの追加設定、または独自の Discord ソーシャル プロバイダーの使用(組み込みのものがあるため理想的ではない可能性があります)なしでは、これは不可能だと思います。

これが Discourse チームによってサポートされたり追加されたりするものであるかどうかはわかりませんが、自分の使用のために外部システムを作成し、Discourse SSO を使用して Discourse と他のシステム間のリンクを関連付けるだけで済むと思います。私の意図と目的のために、この制限のため、Discourse へのログインにのみ Discourse ソーシャル ログインを使用し、それ以上のことはしません。アカウントのリンクと関連付けをすべてユーザーの Discourse プロファイルを通じて行う代わりに、OAuth などでは不可能なものを検証するためにすでに使用している、前述のさまざまなツールを使用する必要があると思います。

これは私の元の質問に対する直接的な解決策ではなく、私の特定のユースケースに対する解決策であるため、これを解決策としてマークしません。

「いいね!」 1

別の解決策として、ID をユーザーのカスタムフィールドに入れ、API を介して更新する方法があります。または、ログイン時にプラグインで処理することもできます。(トピック全体を注意深く読んでいません。)

「いいね!」 1