Gruppi dinamici di Discourse

:information_source: Riepilogo Gestisci automaticamente l’appartenenza ai gruppi
:hammer_and_wrench: Link al Repository \u003chttps://github.com/communiteq/discourse-dynamic-groups\u003e
:open_book: Guida all’Installazione Come installare plugin in Discourse

:warning: Questo plugin è da considerarsi beta :warning:

Funzionalità

Le community di Discourse spesso necessitano di automatizzare l’appartenenza ai gruppi in base a condizioni come il possesso di badge o l’appartenenza a gruppi esistenti.

Casi d’uso comuni includono:

  • Utenti non nel gruppo ‘subscribers’

  • Utenti non bannati dalla pubblicazione in Marketplace

  • Utenti a TL0 o TL1, ma non TL2

  • Utenti che hanno completato il tutorial per nuovi utenti o sono membri da oltre un anno

  • Utenti appartenenti a client_1, client_2 o client_3 e non sono stagisti

In precedenza, la risoluzione di questo problema richiedeva script personalizzati che sincronizzavano periodicamente i gruppi. Il plugin Dynamic Groups elimina questa necessità.

Questo plugin introduce un campo di espressione booleana nelle impostazioni del gruppo, consentendo agli amministratori di definire regole che determinano dinamicamente l’appartenenza al gruppo.

Esempi:

  • utenti che non sono nel gruppo ‘subscribers’
    trust_level_0 AND NOT subscribers

  • utenti che non sono bannati dalla pubblicazione in Marketplace
    trust_level_2 AND NOT banned_users

  • utenti che sono a TL0 o TL1 ma non a TL2
    trust_level_0 AND NOT trust_level_2

  • utenti che hanno completato il tutorial per nuovi utenti o sono membri da oltre un anno
    badge:certified OR badge:anniversary

  • utenti che appartengono ai client 1, 2 o 3 e non sono stagisti
    (client_1 OR client_2 OR client_3) AND NOT interns

Configurazione

Una volta installato e abilitato il plugin, apparirà una nuova scheda nell’interfaccia di amministrazione dei gruppi:

Quando inserisci o aggiorni l’espressione booleana, il sistema impiegherà qualche istante per popolare il gruppo con gli utenti corrispondenti. Da quel momento in poi, l’appartenenza al gruppo verrà aggiornata automaticamente al variare dello stato dell’utente.

Importante:
Quando viene definita una regola, il gruppo viene contrassegnato come automatico, disabilitando le modifiche manuali dei membri. Per ripristinare la gestione manuale del gruppo, è sufficiente cancellare il campo dell’espressione. I membri esistenti rimarranno e riavrai il controllo manuale.

24 Mi Piace

Wow! Ottimo lavoro, Richard!

Questo colma una grande lacuna nella gestione dei gruppi all’interno di Discourse. Completamente entusiasta e non vedo l’ora di metterlo alla prova.

Lo userò principalmente per abilitare sottogruppi funzionali.

3 Mi Piace

Decisamente un’aggiunta gradita alle funzionalità di Discourse!

1 Mi Piace

7 post sono stati uniti a un argomento esistente: Solo la prima voce funziona con i campi Multiselect quando viene utilizzato il trigger L'utente si è appena connesso

Ciao, grazie per aver sviluppato questo plugin super utile!

Attualmente sto utilizzando Discourse Dynamic Groups per aggiungere automaticamente tutti gli utenti non anonimi a un gruppo speciale. La mia espressione booleana è:

NON anonymous_users
Comportamento previsto:
Quando un nuovo utente si registra (che non appartiene al gruppo anonymous_users), dovrebbe essere aggiunto automaticamente a questo gruppo, senza alcun intervento manuale.

Comportamento attuale:
Gli utenti appena registrati non vengono aggiunti immediatamente al gruppo. Vengono aggiunti solo dopo aver salvato manualmente di nuovo l’espressione booleana nelle impostazioni del gruppo.
Ciò significa che il gruppo non viene aggiornato automaticamente man mano che gli utenti si uniscono, a meno che non attivi una sincronizzazione manuale.

1 Mi Piace

Mmm… ottima osservazione. E concordo sul fatto che questo dovrebbe essere il comportamento previsto.

Da un punto di vista tecnico, il plugin rivaluterà l’appartenenza al gruppo solo in due diverse condizioni:

  1. Quando l’espressione booleana nelle impostazioni del gruppo viene salvata
  2. Se un utente viene aggiunto o rimosso per un gruppo menzionato nell’espressione booleana.

Quando un nuovo utente si registra, nessuno dei due è il caso.

Riesci a provare a cambiare l’espressione in trust_level_0 AND NOT anonymous_users e riferire se ciò risolve il problema?

3 Mi Piace

Ciao,

Quando provo a usare l’espressione

trust_level_0 AND NOT anonymous_users

ricevo l’errore:
Unknown keyword, group or badge: 'anonymous_users'

Se cambio il nome del gruppo con il mio gruppo effettivo, ad esempio:

trust_level_0 AND NOT interns

ricevo ancora:
Unknown keyword, group or badge: 'interns'

Ho ricontrollato e sto copiando il nome univoco del gruppo direttamente dalla pagina di amministrazione del gruppo, quindi non ci sono errori di battitura.
C’è qualcosa che potrei tralasciare, o c’è qualcos’altro che devo configurare affinché i gruppi personalizzati vengano riconosciuti nell’espressione?

4 Mi Piace

Grazie per averlo segnalato.

Durante il tentativo di riprodurre il problema, ho identificato due bug e uno di questi probabilmente ti ha colpito. Puoi aggiornare il plugin all’ultima versione 59640f1 e verificare se questo risolve il problema.

Il plugin non gestisce ancora molto bene la ridenominazione dei gruppi. Se rinomini un gruppo, dovresti salvare le regole da tutti i gruppi che dipendono da esso (basta inserire uno spazio dopo l’espressione booleana e rimuoverlo di nuovo per abilitare il pulsante Salva). Questo verrà affrontato in una versione successiva.

3 Mi Piace

Questo utilizza il tuo plugin “Category restrictor” o funziona indipendentemente da esso?

Plugin fantastico per colmare le lacune.

Funziona in modo indipendente.

1 Mi Piace

Ciao,

Sto usando il plugin Gruppi Dinamici e ho impostato i miei criteri come:

trust_level_0 AND NOT anon_group

Tuttavia, ho notato che anche gli utenti con trust_level_1 che non sono nel anon_group vengono aggiunti a questo gruppo dinamico.

Potresti confermare se questo è il comportamento previsto, o se si tratta di un bug?

Gli utenti con livello di fiducia 1 sono anche membri del gruppo di livello di fiducia 0. Quindi il comportamento è previsto. Potresti escludere il gruppo di livello di fiducia 1 per ottenere solo utenti TL0. Simile all’esempio del primo post

2 Mi Piace

Grazie per il chiarimento