Aggiunta automatica di nuovi utenti (dall'integrazione WP) a un gruppo

Sì, è proprio quell’esempio che manca nel thread a cui ho fatto riferimento. Puoi aggiungere gli utenti a un gruppo come parte del processo di accesso SSO utilizzando il parametro SSO add_groups. Per impostazione predefinita, il plugin WP Discourse non invia questo parametro nel payload SSO, ma il plugin include un filtro che può essere utilizzato per aggiungere tale parametro al payload SSO.

Il seguente codice, aggiunto al file functions.php del tuo tema o a un plugin, dovrebbe funzionare per te. In questo modo puoi aggiungere gli utenti a più gruppi. Il parametro add_groups accetta un elenco di nomi di gruppo separati da virgole (senza spazi prima o dopo le virgole):

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params' );
function wpdc_custom_sso_params( $params ) {
    $params['add_groups'] = 'your_group_name'; 

    return $params;
}

Se volessi aggiungere solo utenti specifici al gruppo, potresti chiamare la funzione in questo modo:

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*aggiungi qui una condizione per verificare se l'utente deve essere aggiunto al gruppo */) {        
        $params['add_groups'] = 'your_group_name'; 
    }

    return $params;
}

Puoi anche rimuovere gli utenti dai gruppi utilizzando il parametro SSO remove_groups.

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params' );
function wpdc_custom_sso_params( $params ) {
    $params['remove_groups'] = 'your_group_name'; 

    return $params;
}

o

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*aggiungi qui una condizione per verificare se l'utente deve essere rimosso dal gruppo */) {        
        $params['remove_groups'] = 'your_group_name'; 
    }

    return $params;
}

Lo svantaggio principale di questo approccio, rispetto all’uso della funzione add_user_to_discourse_group a cui ho fatto riferimento, è che richiede agli utenti esistenti di disconnettersi e poi riaccedere a Discourse prima che le loro appartenenze ai gruppi vengano aggiornate.

5 Mi Piace