Ajout automatique de nouveaux utilisateurs (de l'intégration WP) à un groupe

Oui, c’est l’exemple qui manque dans le sujet que j’ai lié. Vous pouvez ajouter des utilisateurs à un groupe dans le cadre du processus de connexion SSO en utilisant le paramètre SSO add_groups. Par défaut, le plugin WP Discourse n’envoie pas ce paramètre avec la charge utile SSO, mais le plugin dispose d’un filtre qui peut être utilisé pour ajouter ce paramètre à la charge utile SSO.

Le code suivant, ajouté à votre fichier functions.php de votre thème ou à un plugin, devrait fonctionner pour vous. Vous pouvez ajouter des utilisateurs à plusieurs groupes de cette manière. Le paramètre add_groups accepte une liste de noms de groupes séparés par des virgules (sans espaces avant ou après les virgules) :

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

    return $params;
}

Si vous ne souhaitez ajouter que des utilisateurs spécifiques au groupe, vous pouvez appeler la fonction de cette manière :

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*ajoutez ici une condition pour vérifier si l'utilisateur doit être ajouté au groupe */) {        
        $params['add_groups'] = 'your_group_name'; 
    }

    return $params;
}

Vous pouvez également supprimer des utilisateurs de groupes avec le paramètre 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;
}

ou

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*ajoutez ici une condition pour vérifier si l'utilisateur doit être supprimé du groupe */) {        
        $params['remove_groups'] = 'your_group_name'; 
    }

    return $params;
}

Le principal inconvénient de cette approche par rapport à l’utilisation de la fonction add_user_to_discourse_group que j’ai liée est qu’elle nécessite que les utilisateurs existants se déconnectent puis se reconnectent à Discourse avant que leurs adhésions aux groupes ne soient mises à jour.

5 « J'aime »