# Impedire la disconnessione degli account social

**URL:** https://meta.discourse.org/t/prevent-unlinking-social-accounts/198049
**Category:** Support
**Created:** [24 Luglio 2021, 5:20am UTC](https://meta.discourse.org/t/prevent-unlinking-social-accounts/198049 "2021-07-24T05:20:54Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![cookieman768](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cookieman768/32/118511_2.png) [@cookieman768](https://meta.discourse.org/u/cookieman768)
#### Post date: [24 Luglio 2021, 5:20am UTC](https://meta.discourse.org/t/prevent-unlinking-social-accounts/198049/1 "2021-07-24T05:20:54Z")

</div>

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.

 ![image](https://global.discourse-cdn.com/meta/original/3X/0/4/0436f9e0f8e6cd1ae4807a6ca3e9dc68d9db94be.png)

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.

---

<div class="post-metadata">

### Author: ![ondrej](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ondrej/32/198804_2.png) [@ondrej](https://meta.discourse.org/u/ondrej)
#### Post date: [24 Luglio 2021, 9:01am UTC](https://meta.discourse.org/t/prevent-unlinking-social-accounts/198049/2 "2021-07-24T09:01:45Z")

</div>

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

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

```

---

<div class="post-metadata">

### Author: ![cookieman768](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cookieman768/32/118511_2.png) [@cookieman768](https://meta.discourse.org/u/cookieman768)
#### Post date: [24 Luglio 2021, 10:25pm UTC](https://meta.discourse.org/t/prevent-unlinking-social-accounts/198049/3 "2021-07-24T22:25:01Z")

</div>

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](https://github.com/discourse/discourse/blob/main/lib/auth/managed_authenticator.rb)

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:

```rb
# 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](https://github.com/discourse/discourse-steam-login/blob/main/plugin.rb).

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.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [23 Agosto 2021, 10:25pm UTC](https://meta.discourse.org/t/prevent-unlinking-social-accounts/198049/4 "2021-08-23T22:25:35Z")

</div>

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