Description
Cette extension vous permet de passer rapidement d’un compte à un autre sur WordPress d’un simple clic. Vous serez immédiatement déconnecté et reconnecté en tant que compte de votre choix. Cela est pratique pour aider les clients/clientes sur des sites WooCommerce, des sites d’adhésion, des environnements de test, ou pour tout site où les administrateurs/administratrices doivent passer d’un compte à l’autre.
Fonctionnalités
- Changer de compte : changer instantanément pour n’importe quel compte depuis l’écran Comptes.
- Revenir au compte de : revenir instantanément à votre compte d’origine.
- Déconnexion temporaire : déconnectez-vous de votre compte, mais conservez la possibilité de vous reconnecter instantanément.
- Compatible avec Multisite, WooCommerce, BuddyPress et bbPress.
- Compatible avec la plupart des extensions de gestion des membres et des utilisateurs/utilisatrices.
- Compatible avec la plupart des solutions d’authentification à deux facteurs (voir la FAQ pour plus d’informations).
- Approuvé pour une utilisation sur des plateformes WordPress de niveau entreprise telles que Altis et WordPress VIP.
Note : User Switching prend en charge les versions de WordPress datant de moins de trois ans, ainsi que la version PHP 7.4 ou supérieure.
Sécurité
- Uniquement les comptes ayant la possibilité de modifier d’autres comptes peuvent changer de compte. Par défaut, cela concerne uniquement les administrateurs/administratrices pour les installations monosites, et des super administrateurs/super administratrices pour les installations multisites.
- Les mots de passe ne sont pas (et ne peuvent pas être) révélés.
- Utilise le système d’authentification par cookie dans WordPress et se souvient du compte vers lequel on a basculé lorsque vous revenez en arrière.
- Implémente le système de sécurité nonce dans WordPress, ce qui signifie qu’uniquement les personnes ayant l’intention de changer de compte peuvent effectuer cette action.
- Prise en charge complète de la validation des sessions utilisateurs/utilisatrices lorsqu’elle est nécessaire.
- Prise en charge complète du protocole HTTPS.
- Soutenu par le programme de divulgation des vulnérabilités Patchstack
Utilisation
- Visitez le menu Comptes dans WordPress et vous verrez un lien Se connecter en tant que dans la liste des liens d’action pour chaque compte.
- Cliquez ici et vous serez immédiatement connecté à ce compte.
- Vous pouvez revenir à votre compte d’origine en cliquant sur le lien Revenir au compte de sur chaque page du tableau de bord ou dans le menu de votre profil dans la barre d’outils de WordPress.
Consultez la FAQ pour obtenir des informations sur la fonctionnalité Déconnexion temporaire.
Autres extensions
Je développe plusieurs autres extensions pour les développeurs/développeuses. Découvrez-les ici :
- Query Monitor est le panneau des outils de développement pour WordPress.
- WP Crontrol permet de voir et de contrôler ce qui se passe dans le système WP-Cron
Déclaration de confidentialité
User Switching n’envoie pas les données à des tiers, ni n’inclut des ressources tierces, et ne le fera jamais.
User Switching utilise des cookies de navigateur pour permettre aux utilisateurs de basculer vers un autre compte. Ces cookies fonctionnent selon le même mécanisme que les cookies d’authentification du cœur de WordPress, ce qui signifie que leurs valeurs contiennent le champ user_login
de l’utilisateur en texte clair, ce qui doit être considéré comme une donnée personnelle pour des raisons de confidentialité et de réglementation (RGPD, CCPA, etc.). Les noms des cookies sont :
wordpress_user_sw_{COOKIEHASH}
wordpress_user_sw_secure_{COOKIEHASH}
wordpress_user_sw_olduser_{COOKIEHASH}
Consultez également la FAQ pour des questions relatives à la confidentialité et à la sécurité lors du passage d’un utilisateur/utilisatrice à un autre.
Déclaration d’accessibilité
User Switching vise à être entièrement accessible à tous ses utilisateurs/utilisatrices. Il applique les meilleures pratiques pour l’accessibilité web, génère un balisage sémantique et structuré, respecte les styles par défaut et les directives d’accessibilité de WordPress, utilise les API d’accessibilité fournies par WordPress et les navigateurs le cas échéant, et est entièrement accessible par le clavier.
User Switching doit respecter les Règles pour l’accessibilité des contenus Web (WCAG) 2.0 au niveau AA lorsqu’il est utilisé avec une version récente de WordPress, où la zone d’administration elle-même respecte ces directives. Si vous avez rencontré ou identifié un problème d’accessibilité dans User Switching, veuillez ouvrir un fil de discussion dans le forum de support de l’extension User Switching et je m’en occuperai rapidement.
Captures d’écran
FAQ
-
Est-ce que cette extension fonctionne avec PHP 8 ?
-
Oui, il est activement testé et fonctionne jusqu’à PHP 8.4.
-
Que signifie « Déconnexion temporaire » ?
-
Déconnexion temporaire vous déconnecte de votre compte, mais conserve votre identifiant utilisateur dans un cookie d’authentification, vous permettant ainsi de revenir directement sans avoir à vous reconnecter manuellement. Cela revient à dire qu’il n’y a aucun utilisateur et qu’il est possible de revenir en arrière.
Le lien Déconnexion temporaire se trouve dans le menu de votre profil dans la barre d’outils de WordPress. Une fois que vous vous êtes déconnecté, vous verrez un lien Revenir au compte de à plusieurs endroits :
- Dans le pied de page de votre site
- Sur l’écran de connexion
- Dans le widget « Meta »
-
Cette extension fonctionne-t-elle avec WordPress Multisite ?
-
Oui, et vous pourrez également changer de compte depuis la page des comptes dans l’administration réseau.
-
Cette extension fonctionne-t-elle avec WooCommerce ?
-
Oui, et vous pourrez également changer de compte depuis différents écrans d’administration de WooCommerce tout en étant connecté en tant que gestionnaire de boutique ou utilisateur administratif.
-
Cette extension fonctionne-t-elle avec BuddyPress ?
-
Oui, et vous pourrez également changer de compte depuis les pages de profil des membres et la page de la liste des membres.
-
Cette extension fonctionne-t-elle avec bbPress ?
-
Oui, et vous pourrez également changer de compte depuis des pages de profil des membres.
-
Cette extension fonctionne-t-elle si mon site utilise une extension d’authentification à deux facteurs ?
-
Oui, en grande partie.
Une exception dont je suis conscient est Duo Security. Si vous utilisez cette extension, vous devez installer l’extension User Switching for Duo Security qui empêchera l’apparition de l’affichage de l’authentification à deux facteurs lorsque vous passez d’un compte à un autre.
-
Quelle permission un utilisateur/utilisatrice doit-il/doit-elle avoir afin de pouvoir changer de compte ?
-
Un utilisateur/utilisatrice a besoin des permissions
edit_users
pour changer de compte. Par défaut, seuls les administrateurs/administratrices possèdent cette permission et, lorsque le mode Multisite est activé, uniquement les super administrateurs/administratrices ont cette permission.Plus précisément, un utilisateur/utilisatrice doit avoir la permission de modifier l’utilisateur/utilisatrice cible afin de pouvoir passer à celui-ci. Cela signifie que si vous avez un mappage personnalisé des permissions des utilisateurs/utilisatrices qui utilise les permissions
edit_users
ouedit_user
pour affecter la permission des utilisateurs/utilisatrices à modifier d’autres utilisateurs/utilisatrices, alors User Switching doit en tenir compte. -
Les administrateurs/administratrices réguliers sur les installations Multisite peuvent-ils changer de compte ?
-
Non. Vous pouvez cependant l’activer en installant l’extension User Switching for Regular Admins.
-
L’habilité de changer de compte peut-elle être accordée à d’autres utilisateurs ou rôles ?
-
Oui. La méta-permission
switch_users
peut être explicitement accordée à un utilisateur/utilisatrice ou à un rôle pour leur permettre de changer de compte, peu importe s’ils possèdent ou non la permissionedit_users
. Pour des raisons pratiques, l’utilisateur/utilisatrice ou le rôle devra également posséder la permissionlist_users
pour pouvoir accéder au menu Compte dans la zone d’administration de WordPress.add_filter( 'user_has_cap', function( $allcaps, $caps, $args, $user ) { if ( 'switch_to_user' === $args[0] ) { if ( my_condition( $user ) ) { $allcaps['switch_users'] = true; } } return $allcaps; }, 9, 4 );
Notez que cette opération doit avoir lieu avant le filtrage des permissions d’User Switching, d’où la priorité de
9
. -
Les utilisateurs/utilisatrices peuvent-ils se voir refuser la possibilité de changer de compte ?
-
Oui. Les permissions des utilisateurs/utilisatrices dans WordPress peuvent être définies sur
false
pour les refuser. Refuser la permissionswitch_users
empêche l’utilisateur/utilisatrice de changer de compte, même s’il a la permissionedit_users
.add_filter( 'user_has_cap', function( $allcaps, $caps, $args, $user ) { if ( 'switch_to_user' === $args[0] ) { if ( my_condition( $user ) ) { $allcaps['switch_users'] = false; } } return $allcaps; }, 9, 4 );
Notes :
- Cette opération doit avoir lieu avant le filtrage des permissions d’User Switching, d’où la priorité de
9
. - L’ID de l’utilisateur/utilisatrice cible peut être trouvé dans
$args[2]
.
- Cette opération doit avoir lieu avant le filtrage des permissions d’User Switching, d’où la priorité de
-
Puis-je ajouter un lien personnalisé « Se connecter en tant que » dans ma propre extension ou mon propre thème ?
-
Oui. Utilisez la méthode
user_switching::maybe_switch_url()
pour cela. Elle prend en charge l’authentification et renvoie une URL protégée par un jeton de chiffrement nonce permettant à l’utilisateur/utilisatrice actuel de basculer vers le compte fourni.if ( method_exists( 'user_switching', 'maybe_switch_url' ) ) { $url = user_switching::maybe_switch_url( $target_user ); if ( $url ) { printf( '<a href="%1$s">Switch to %2$s</a>', esc_url( $url ), esc_html( $target_user->display_name ) ); } }
Si vous souhaitez spécifier l’URL vers laquelle l’utilisateur/utilisatrice est redirigé après avoir changé de compte, ajoutez un paramètre
redirect_to
à l’URL comme ceci :if ( method_exists( 'user_switching', 'maybe_switch_url' ) ) { $url = user_switching::maybe_switch_url( $target_user ); if ( $url ) { // Redirect to the home page after switching: $redirect_to = home_url(); printf( '<a href="%1$s">Switch to %2$s</a>', esc_url( add_query_arg( 'redirect_to', rawurlencode( $redirect_to ), $url ) ), esc_html( $target_user->display_name ) ); } }
Le code ci-dessus fonctionne également pour afficher un lien permettant de revenir au compte d’origine, mais si vous souhaitez un lien explicite pour cela, vous pouvez utiliser le code suivant :
if ( method_exists( 'user_switching', 'get_old_user' ) ) { $old_user = user_switching::get_old_user(); if ( $old_user ) { printf( '<a href="%1$s">Switch back to %2$s</a>', esc_url( user_switching::switch_back_url( $old_user ) ), esc_html( $old_user->display_name ) ); } }
-
Puis-je déterminer si l’utilisateur/utilisatrice actuel a accédé à son compte’?
-
Oui. Utilisez la fonction
current_user_switched()
pour cela. Si l’utilisateur/utilisatrice actuel est passé dans son compte à partir d’un autre, cette fonction renvoie un objetWP_User
pour l’utilisateur/utilisatrice d’origine, sinon elle renvoie un objet false.if ( function_exists( 'current_user_switched' ) ) { $switched_user = current_user_switched(); if ( $switched_user ) { // User is logged in and has switched into their account. // $switched_user is the WP_User object for their originating user. } }
-
Puis-je journaliser chaque fois qu’un utilisateur passe à un autre compte ?
-
Vous pouvez installer une extension de suivi des actions telle que Simple History, WP Activity Log ou Stream, qui offrent tous un support intégré pour User Switching et journalisent une entrée lorsqu’un utilisateur/utilisatrice passe à un autre compte.
-
Est-ce que cette extension permet à un utilisateur/utilisatrice d’incriminer un autre utilisateur/utilisatrice pour une action ?
-
Potentiellement oui, mais User Switching inclut des protections de sécurité pour cela et il existe d’autres précautions que vous pouvez prendre en tant qu’administrateur/administratrice du site :
- Vous pouvez installer une extension de suivi des actions telle que Simple History, WP Activity Log ou Stream, qui offrent tous un support intégré pour User Switching et journalisent une entrée lorsqu’un utilisateur/utilisatrice passe à un autre compte.
- User Switching stocke l’ID du compte d’origine dans la nouvelle session utilisateur WordPress pour le compte vers lequel ils ont basculé. Bien que cette session ne persiste pas par défaut lorsqu’ils reviennent ensuite, un enregistrement de cet ID sera disponible si votre serveur de base de données a activé la journalisation des requêtes.
- User Switching stocke le nom de connexion de l’utilisateur/utilisatrice d’origine dans un cookie d’authentification (voir la Déclaration de confidentialité pour plus d’informations). Si les journaux d’accès de votre serveur stockent les données des cookies, il y aura un enregistrement de ce nom de connexion (avec l’adresse IP) pour chaque demande d’accès.
- User Switching déclenche une action lorsqu’un utilisateur/utilisatrice change de compte, se déconnecte temporairement ou revient en arrière (voir ci-dessous). Vous pouvez utiliser ces actions pour effectuer une journalisation supplémentaire à des fins de sécurité, en fonction de vos prérequis.
Un ou plusieurs des éléments ci-dessus devraient vous permettre de corréler une action avec l’utilisateur d’origine lorsqu’un utilisateur/utilisatrice change de compte, si nécessaire.
Gardez à l’esprit que même sans l’extension User Switching, tout utilisateur/utilisatrice ayant la possibilité de modifier un autre utilisateur/utilisatrice peut toujours lui reprocher une action, par exemple en changeant son mot de passe et en se connectant manuellement à ce compte. Si vous vous inquiétez des abus de la part des utilisateurs/utilisatrices, vous devez être particulièrement vigilant lorsque vous leur accordez des droits d’administration.
-
Cette extension m’avertit-elle si j’essaie de me connecter à un compte déjà utilisé par quelqu’un d’autre ?
-
Oui. Lorsque cela se produit, un message vous demandera de confirmer si vous souhaitez continuer à vous connecter au compte concerné.
Cette fonctionnalité est utile si vous avez plusieurs utilisateurs/utilisatrices sur votre site qui peuvent se connecter à d’autres comptes en même temps, par exemple une équipe d’agents de support.
-
Puis-je changer de compte directement depuis la barre d’outils d’administration ?
-
Oui, il existe une extension complémentaire tierce pour cela : Admin Bar User Switching.
-
Y a-t-il des actions d’extension appelées lorsqu’un utilisateur change de compte ?
-
Oui. Lorsqu’un utilisateur/utilisatrice passe à un autre compte, le crochet
switch_to_user
est appelé :/** * Fires when a user switches to another user account. * * @since 0.6.0 * @since 1.4.0 The `$new_token` and `$old_token` parameters were added. * * @param int $user_id The ID of the user being switched to. * @param int $old_user_id The ID of the user being switched from. * @param string $new_token The token of the session of the user being switched to. Can be an empty string * or a token for a session that may or may not still be valid. * @param string $old_token The token of the session of the user being switched from. */ do_action( 'switch_to_user', $user_id, $old_user_id, $new_token, $old_token );
Lorsqu’un utilisateur/utilisatrice revient à son compte d’origine, le crochet
switch_back_user
est appelé :/** * Fires when a user switches back to their originating account. * * @since 0.6.0 * @since 1.4.0 The `$new_token` and `$old_token` parameters were added. * * @param int $user_id The ID of the user being switched back to. * @param int|false $old_user_id The ID of the user being switched from, or false if the user is switching back * after having been switched off. * @param string $new_token The token of the session of the user being switched to. Can be an empty string * or a token for a session that may or may not still be valid. * @param string $old_token The token of the session of the user being switched from. */ do_action( 'switch_back_user', $user_id, $old_user_id, $new_token, $old_token );
Lorsqu’un utilisateur/utilisatrice se déconnecte temporairement, le crochet
switch_off_user
est appelé :/** * Fires when a user switches off. * * @since 0.6.0 * @since 1.4.0 The `$old_token` parameter was added. * * @param int $old_user_id The ID of the user switching off. * @param string $old_token The token of the session of the user switching off. */ do_action( 'switch_off_user', $old_user_id, $old_token );
Lorsqu’un utilisateur/utilisatrice passe à un autre compte, se déconnecte ou revient, le filtre
user_switching_redirect_to
est appliqué à l’emplacement vers lequel il est redirigé :/** * Filters the redirect location after a user switches to another account or switches off. * * @since 1.7.0 * * @param string $redirect_to The target redirect location, or an empty string if none is specified. * @param string|null $redirect_type The redirect type, see the `user_switching::REDIRECT_*` constants. * @param WP_User|null $new_user The user being switched to, or null if there is none. * @param WP_User|null $old_user The user being switched from, or null if there is none. */ return apply_filters( 'user_switching_redirect_to', $redirect_to, $redirect_type, $new_user, $old_user );
De plus, User Switching respecte les filtres suivants du cœur de WordPress, le cas échéant :
login_redirect
lors du passage à un autre compte.logout_redirect
lors de la déconnexion temporaire.
-
Comment puis-je signaler un bogue de sécurité ?
-
Vous pouvez signaler des bogues de sécurité via le programme officiel de divulgation des vulnérabilités d’User Switching sur Patchstack. L’équipe de Patchstack aide à valider, trier et traiter les vulnérabilités de sécurité.
-
Acceptez-vous des dons ?
-
J’accepte les parrainages via le programme GitHub Sponsors et tout soutien que vous pouvez apporter m’aidera à maintenir cette extension et à la garder gratuite pour tout le monde.
Avis
Contributeurs/contributrices & développeurs/développeuses
« User Switching » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.
Contributeurs“User Switching” a été traduit dans 48 locales. Remerciez l’équipe de traduction pour ses contributions.
Traduisez « User Switching » dans votre langue.
Le développement vous intéresse ?
Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.
Journal
1.9.2 (16 April 2025)
- Confirms support for WordPress 6.8
- Minor code quality improvements
1.9.1 (5 December 2024)
- Fixes the
wp_login
andwp_logout
parameter usage which could cause a fatal error when passed an unexpected value.
1.9.0 (21 November 2024)
- Introduces a confirmation message when a user attempts to switch into an account which somebody else is already switched into. Helpful for teams of support engineers who switch into customer accounts.
- Confirms support for WordPress 6.7.
- Confirms support for PHP 8.4.
- Various code quality improvements.
1.8.0 (22 July 2024)
- Ajoute un lien « Revenir au compte de » à certains messages d’accès refusé dans la zone d’administration.
- Confirms support for WordPress 6.6.
1.7.3 (21 February 2024)
- Confirms support for PHP 8.3
- Fixes compatibility with BuddyPress version 12
- Adds configuration for the Live Preview feature on wordpress.org
1.7.2 (16 November 2023)
- Confirm support for WordPress 6.4
- Reinstate the missing plugin readme file
1.7.1 (16 November 2023)
- Fix the redirect type parameter passed to the
user_switching_redirect_to
filter - Increase the minimum supported version of PHP to 7.4
1.7.0 (30 July 2022)
- Redirect to the current post, term, user, or comment being edited when switching off
- Clean up some user-facing messages
- Appliquez un style de base au lien « Revenir au compte de » qui apparaît dans le pied de page
- Use a better placement for the Switch To menu on bbPress profiles
- Use a more appropriate HTTP response code if switching off fails
- Exclude
.editorconfig
from dist ZIP
1.6.0 (24 June 2022)
- Add a ‘Switch To’ link to the order screen in WooCommerce
- Ajoutez un lien « Revenir au compte de » à l’écran mon compte et à l’écran de connexion dans WooCommerce
1.5.8 (2 October 2021)
- Avoid a fatal if the
interim-login
query parameter is present on a page other than wp-login.php.
Earlier versions
For the changelog of earlier versions, refer to the releases page on GitHub.