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.