Permettere agli utenti anonimi di ereditare i gruppi utente padre

Ciao!

Potrei avere una revisione per questa PR?

Stiamo cercando di creare un discorso specifico per regione, in cui l’appartenenza di un utente lo limiterà a determinati gruppi, ma attualmente ciò è in conflitto con il supporto per gli utenti anonimi perché gli utenti anonimi non hanno associazioni di gruppo.

Questa PR aggiunge associazioni di gruppi agli utenti anonimi.

1 Mi Piace

Hai considerato l’aumento del rischio di attacchi di de-anonimizzazione che ciò consentirebbe?

2 Mi Piace

Grazie per aver sollevato questo argomento!

Ho considerato gli attacchi di anonimizzazione e hai ragione: l’ereditarietà dei gruppi di utenti non è uno strumento per tutti ed è particolarmente vulnerabile per le istanze con affiliazioni di gruppo ad alta cardinalità. Come dettagliato nel PR, il concetto originale per supportare la pubblicazione anonima nei gruppi regionali, che sarà implicitamente a bassa cardinalità nella nostra istanza.

modifica: ho aggiunto un attributo di gruppo chiamato anonymous_user_inheritance, che consente agli amministratori di scegliere se il gruppo viene ereditato o meno dagli utenti anonimi. Ho anche aggiunto un avviso accanto all’impostazione dell’amministratore per abilitare la funzionalità e sono aperto a ulteriori suggerimenti.

1 Mi Piace

È questa la categoria giusta per richiedere recensioni PR o dovrei pubblicare in una categoria diversa?

Grazie!

1 Mi Piace

Non esiste una categoria per richiedere revisioni del codice, quindi questa è probabilmente la migliore.

Le PR sono spesso benvenute, anche se è bene confermare che si tratta di una direzione/funzionalità che Discourse vuole perseguire prima di approfondire.

In alternativa, potresti considerare l’introduzione di questa funzionalità in un plugin in modo che sia disponibile senza integrarla nel codice principale.

2 Mi Piace

Grazie per il suggerimento! Un plugin si adatterebbe bene alle nostre esigenze, tranne per il fatto che questa modifica richiede una migrazione del database. Sarebbe fattibile una migrazione su un plugin?

1 Mi Piace

Sì, puoi eseguire migrazioni di database in un plugin.

1 Mi Piace

Sì, ma secondo me è una cattiva pratica modificare le tabelle principali in un plugin.

Se sposti questo in un plugin, è meglio usare group_custom_fields o una tua tabella designata.

In questo caso specifico potresti anche (invece) aggiungere un’impostazione del sito come “gruppi ereditabili consentiti” e far selezionare all’amministratore tutti i gruppi che possono essere ereditati in questa singola impostazione. Ciò manterrebbe le cose molto più semplici e raggrupperebbe tutte le funzionalità fornite dal plugin in un unico posto.

5 Mi Piace

Grazie per il feedback Richard! Potresti aiutarmi a capire la tua seconda proposta?

far selezionare all’amministratore tutti i gruppi che possono essere ereditati in questa singola impostazione

Per verificare la mia comprensione, il tuo suggerimento è di avere l’impostazione generale del sito per consentire l’ereditarietà dei gruppi e poi, nella pagina delle impostazioni di ogni singolo gruppo, ci sarebbe una casella di controllo per indicare se questo gruppo è ereditabile o meno, quindi è simile a quello che ho ora, tranne per il fatto che l’impostazione ridondante è stata rimossa.

far selezionare all’amministratore tutti i gruppi che possono essere ereditati in questa singola impostazione
Stavi suggerendo quanto sopra, o avevi in mente qualcos’altro? La mia idea originale era di costruire una sorta di strumento di selezione in cui ci fosse un menu a discesa con caselle di controllo o qualcosa di simile, ma ciò è diventato rapidamente complesso dal punto di vista implementativo.

Grazie anche per il suggerimento sui plugin! Considererò l’opzione plugin nei futuri contributi. :grinning_face:

1 Mi Piace

No, sto suggerendo di non renderlo un’impostazione nella pagina del gruppo, ma un’unica impostazione a livello di sito che contenga tutti i gruppi ereditabili.

Un’impostazione simile è Admin - Impostazioni - Utenti - gruppi a cui è consentita la pubblicazione anonima. Non è una casella di controllo in ogni pagina delle impostazioni dei gruppi “consenti la pubblicazione anonima per questo gruppo”, è un’unica impostazione con tutti i gruppi a cui è consentita la pubblicazione anonima,

o Admin - Impostazioni - Pubblicazione - gruppi a cui è consentito menzionare qui invece di una casella di controllo in ogni pagina delle impostazioni dei gruppi “consenti menzioni qui per questo gruppo”.

È più facile da implementare, riduce il disordine nel database e offre una migliore supervisione all’amministratore del forum.

2 Mi Piace