Impedire la disconnessione degli account social

Sto usando Discourse per una community di gaming, dove disassociare gli account Steam e Discord non ha senso e creerebbe solo problemi. Come posso impedire agli utenti di disassociare gli account? So che il plugin SAML lo blocca, ma dato che ho usato Discourse per sincronizzare i ranghi sia nel gioco che su Discord, non vorrei assolutamente che gli utenti scollegassero i propri account. Anzi, preferirei doverlo fare manualmente.

A margine, dalla parte dell’amministratore sarebbe possibile visualizzare gli Steam64 ID e gli ID di Discord? Non sono propriamente informazioni riservate e sarebbero molto utili averle subito a disposizione. Inoltre, non sono esposti tramite l’API, che è piuttosto limitata per il mio caso d’uso.

Puoi nascondere il pulsante Elimina con questo codice. In questo modo gli utenti non potranno disabilitarlo?

.btn-danger, .json-schema-editor-modal .json-editor-btn-delete {
    display: none;
}

Questo aiuterebbe in parte, ma qualcuno sa se esiste un modo per renderlo impossibile? Teoricamente potrebbero semplicemente entrare nell’ispezione degli elementi del browser e riattivarlo.

Modifica: dopo aver fatto alcune ricerche a riguardo, ho trovato questo: discourse/lib/auth/managed_authenticator.rb at main · discourse/discourse · GitHub

Ciò che ho trovato interessante è la parte “can revoke” (può revocare), ma non sono sicuro di poter modificare l’autenticazione Discord integrata. Qualcuno sa se questo sarebbe possibile?
Modifica 2: ho provato a modificare il login Steam su Discourse senza successo (probabilmente a causa della mia scarsa conoscenza di Ruby), ma ecco cosa ho provato:

# frozen_string_literal: true

# name: Steam authentication with Discourse
# about: Authenticate with Discourse with Steam
# version: 2.0.1
# author: J. de Faye, tgxworld

# omniauth-openid is not included in core since v2.4.0.beta10
unless defined? OmniAuth::Strategies::OpenID
  gem 'ruby-openid', '2.9.2', require: false
  gem 'rack-openid', '1.3.1', require: false
  gem 'omniauth-openid', '1.0.1'
end

gem 'omniauth-steam', '1.0.6'

register_svg_icon "fab-steam" if respond_to?(:register_svg_icon)

def can_revoke?
  false
end

register_asset 'stylesheets/steam-login.scss'

[
  "../lib/auth/steam_authenticator.rb",
  "../lib/validators/enable_steam_logins_validator.rb"
].each { |path| load File.expand_path(path, __FILE__) }

auth_provider authenticator: Auth::SteamAuthenticator.new, icon: 'fab-steam'

Per riferimento, il file che ho modificato proviene da questa estensione: qui.

Modifica: stavo modificando completamente la parte sbagliata del plugin; sono riuscito a disabilitare completamente la funzionalità per Steam. Ora devo solo capire come fare lo stesso con il login Discord, dato che si tratta di un file core.