User Switching

Descripción

This plugin allows you to quickly swap between user accounts in WordPress at the click of a button. You’ll be instantly logged out and logged in as your desired user. This is handy for test environments where you regularly log out and in between different accounts, or for administrators who need to switch between multiple accounts.

Características

  • Switch user: Instantly switch to any user account from the Users screen.
  • Volver a cambiar: vuelve atrás a tu cuenta de origen instantáneamente.
  • Desconectar: sales de tu cuenta, pero conservas la capacidad de volver atrás de nuevo instantáneamente.
  • Cambiar entre usuarios es seguro (mira a continuación la sección de Seguridad).
  • Es compatible con WordPress, WordPress multisitio, WooCommerce, BuddyPress, bbPress y la mayoría de los plugins de identificación de dos factores.

Seguridad

  • Only users with the ability to edit other users can switch user accounts. By default this is only Administrators on single site installations, and Super Admins on Multisite installations.
  • Passwords are not (and cannot be) revealed.
  • Uses the cookie authentication system in WordPress when remembering the account(s) you’ve switched from and when switching back.
  • Implements the nonce security system in WordPress, meaning only those who intend to switch users can switch.
  • Full support for user session validation where appropriate.
  • Full support for administration over SSL (if applicable).

Uso

  1. Visit the Users menu in WordPress and you’ll see a Switch To link in the list of action links for each user.
  2. Haz clic aquí y cambiarás inmediatamente a esa cuenta de usuario.
  3. You can switch back to your originating account via the Switch back link on each dashboard screen or in your profile menu in the WordPress toolbar.

See the FAQ for information about the Switch Off feature.

Otros plugins

Mantengo varios otros plugins para desarrolladores. Échales un vistazo:

  • Query Monitor es el panel de herramientas para desarrolladores de WordPress
  • WP Crontrol te permite ver y controlar lo que sucede en el sistema WP-Cron

Declaración de privacidad

User Switching makes use of browser cookies in order to allow users to switch to another account. Its cookies operate using the same mechanism as the authentication cookies in WordPress core, therefore their values contain the user’s user_login field in plain text which should be treated as potentially personally identifiable information. The names of the cookies are:

  • wordpress_user_sw_{COOKIEHASH}
  • wordpress_user_sw_secure_{COOKIEHASH}
  • wordpress_user_sw_olduser_{COOKIEHASH}

User Switching does not send data to any third party, nor does it include any third party resources, nor will it ever do so.

Mira también las FAQ para ver algunas preguntas relacionadas con la privacidad y la seguridad al cambiar entre usuarios.

Código fuente abierto ético

User Switching es considerado de código fuente ético abierto porque cumple todos los criterios de la definición de fuente ética (ESD):

  1. Beneficia a lo común.
  2. Es creado abiertamente.
  3. Su comunidad es acogedora y justa.
  4. Pone la accesibilidad en primer lugar.
  5. Prioriza la seguridad del usuario
  6. Protege la privacidad del usuario.
  7. Fomenta una compensación justa.

Capturas

  • The Switch To link on the Users screen

  • The Switch To link on a user's profile

FAQ

Does this plugin work with PHP 8?

Yes.

What does «Switch off» mean?

Al apagar los registros, sales de tu cuenta, pero conservas tu ID de usuario en una cookie de identificación para que puedas volver atrás sin tener que volver a acceder de nuevo manualmente. Es similar a cambiar a ningún usuario y poder volver a cambiar.

El enlace Desconectar se puede encontrar en el menú de tu perfil en la barra de herramientas de WordPress. Una vez que hayas desconectado, verás un enlace Volver a cambiar en la pantalla de acceso y en el pie de página de tu sitio.

¿Funciona este plugin con WordPress multisitio?

Sí, y también podrás cambiar de usuario desde la pantalla de usuarios en la administración de la red.

¿Este plugin funciona con BuddyPress?

Sí, y también podrás cambiar entre usuarios desde las pantallas de perfil de miembro y la pantalla del listado de miembros.

¿Este plugin funciona con bbPress?

Sí, y también podrás cambiar usuarios desde las pantallas de los perfiles de miembros.

Does this plugin work with WooCommerce?

Sí, pero para una máxima compatibilidad, debes usar la versión 3.6 o posterior de WooCommerce.

¿Funcionará este plugin si mi sitio está usando un plugin de identificación de dos factores?

Si, la mayoría de las veces.

One exception I’m aware of is Duo Security. If you’re using this plugin, you should install the User Switching for Duo Security add-on plugin which will prevent the two-factor authentication prompt from appearing when you switch between users.

¿Qué capacidad necesita un usuario para poder cambiar de cuenta?

A user needs the edit_users capability in order to switch user accounts. By default only Administrators have this capability, and with Multisite enabled only Super Admins have this capability.

Can the ability to switch accounts be granted to other users or roles?

Yes. The switch_users meta capability can be explicitly granted to a user or a role to allow them to switch users regardless of whether or not they have the edit_users capability. For practical purposes, the user or role will also need the list_users capability so they can access the Users menu in the WordPress admin area.

¿Se puede denegar a los usuarios la posibilidad de cambiar de cuentas?

Sí. Las capacidades del usuario en WordPress se pueden configurar en false para denegarlas a un usuario. Negar la capacidad de switch_users evita que el usuario cambie usuarios, incluso si tiene la capacidad edit_users.

add_filter( 'user_has_cap', function( $allcaps, $caps, $args, $user ) {
    if ( 'switch_to_user' === $args[0] ) {
        if ( my_condition() ) {
            $allcaps['switch_users'] = false;
        }
    }
    return $allcaps;
}, 9, 4 );

Ten en cuenta que esto debe suceder antes de la propia capacidad de cambio del filtro del de usuario, de ahí la prioridad del 9.

¿Puedo añadir un enlace personalizado «Cambiar a» a mi propio plugin o tema?

Sí. Usa el método user_switching::maybe_switch_url() para esto. Se encarga de la identificación y devuelve una URL con nonce protegido para que el usuario actual cambie a la cuenta de usuario proporcionada.

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 )
        );
    }
}

This link also works for switching back to the original user, but if you want an explicit link for this you can use the following code:

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 )
        );
    }
}

¿Puedo determinar si el usuario actual ha cambiado a su cuenta?

Sí. Usa la función current_user_switched() para esto.

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.
    }
}

¿Este plugin permite que un usuario inculpe a otro por una acción?

Posiblemente sí, pero User Switching incluye algunas protecciones de seguridad para esto y hay más precauciones que puedes tomar como administrador del sitio:

  • El cambio de usuario almacena el ID del usuario de origen en la nueva sesión para el usuario al que haya cambiado. Aunque esta sesión no persiste por defecto, cuando posteriormente vuelven a cambiar, habrá un registro de este ID si tu servidor MySQL tiene activado el registro de consultas.
  • El cambio de usuario almacena el nombre de acceso del usuario de origen en una cookie de identificación (consulta la declaración de privacidad para más información). Si los registros de acceso de tu servidor almacenan datos de cookies, habrá un registro de este nombre de acceso (junto con la dirección IP) para cada solicitud de acceso.
  • Puedes instalar un plugin de seguimiento de auditoría como Simple History, WP Activity Log o Stream. Todos ellos tienen compatibilidad incorporada para User Switching y todos registran una entrada cuando un usuario cambia a otra cuenta.
  • User Switching desencadena una acción cuando un usuario cambia de cuenta, se desconecta o vuelve a cambiar (ver a continuación). Puedes usar estas acciones para realizar registros adicionales por motivos de seguridad, dependiendo de tus requisitos.

Uno o más de los anteriores deberían permitirte correlacionar una acción con el usuario de origen cuando un usuario cambia de cuenta, si te es necesario.

Ten en cuenta que incluso sin el plugin User Switching en uso, cualquier usuario que tenga la capacidad de editar a otro usuario aún puede seguir enmarcando a otro usuario para una acción, por ejemplo, cambiando su contraseña y accediendo manualmente en esa cuenta. Si te preocupa que los usuarios abusen de otros, debes tener mucho cuidado al otorgar derechos administrativos a los usuarios.

¿Pueden los administradores habituales en instalaciones multisitio cambiar de cuenta?

No. Esto puede ser activado mediante la instalación del plugin User Switching for Regular Admins.

¿Puedo cambiar de usuario directamente desde la barra de herramientas de administración?

Yes, there’s a third party add-on plugin for this: Admin Bar User Switching.

¿Se llama a alguna acción del plugin cuando un usuario cambia de cuenta?

Yes. When a user switches to another account, the switch_to_user hook is called:

/**
 * 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 );

When a user switches back to their originating account, the switch_back_user hook is called:

/**
 * 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 );

When a user switches off, the switch_off_user hook is called:

/**
 * 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 );

In addition, User Switching respects the following filters from WordPress core when appropriate:

  • login_redirect when switching to another user.
  • logout_redirect when switching off.

¿Aceptas donaciones?

Estoy aceptando patrocinios a través del programa de patrocinadores de GitHub y cualquier apoyo que puedas ofrecer me ayudará al mantenimiento de este plugin y que siga siendo gratis para todos.

Reseñas

15 de septiembre de 2021
I use this to temporarily switch to Woocommerce customer accounts and help them checkout their shopping carts when problems prevent them from doing it themselves. This is essential because I don't have to rely on explaining multiple steps to old folks who hate computers. I can simply jump in and do it for them (without trying to login on another browser as a them while they can't remember login passwords and have to reset it and then they can't get to their email, and so on). This also works in a limited way for editor-role users such as staff members who I don't want to have admin-level access to WordPress. Love it!
28 de julio de 2021
This plugin is very helpful to solve issues related to roles and capabilities. Highly recommended for any WP installation with non-admin users.
12 de julio de 2021
Yes, it's a time saver kit when you are handling customer support!❤️
Leer todas las 196 reseñas

Colaboradores y desarrolladores

«User Switching» es un software de código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

«User Switching» ha sido traducido a 44 idiomas locales. Gracias a los traductores por sus contribuciones.

Traduce «User Switching» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

1.5.8

  • Avoid a fatal if the interim-login query parameter is present on a page other than wp-login.php.

1.5.7

  • Fix some issues that could lead to PHP errors given a malformed cookie.
  • Fix documentation.

1.5.6

  • Add a class to the table row on the user edit screen.
  • Updated docs.

1.5.5

  • Added the user_switching_in_footer filter to disable output in footer on front end.
  • Documentation additions and improvements.

1.5.4

  • Fix a cookie issue caused by Jetpack 8.1.1 which prevented switching back to the original user.

1.5.3

  • Remove usage of a method that’s been deprecated in WordPress 5.3

1.5.2

  • Set the correct lang attribute on User Switching’s admin notice.
  • Move the WooCommerce session forgetting to an action callback so it can be unhooked if necessary.

1.5.1

  • Add appropriate HTTP response codes to the error states.
  • Display User Switching’s messages in the original user’s locale.
  • Increase the priority of the hook that sets up the cookie constants. See #40.
  • Don’t attempt to output the ‘Switch To’ link on author archives when the queried object isn’t a user. See #39.

1.5.0

  • Add support for forgetting WooCommerce sessions when switching between users. Requires WooCommerce 3.6+.

1.4.2

  • Don’t attempt to add the Switch To link to the admin toolbar when viewing an author archive in the admin area. This prevents a fatal error occurring when filtering custom post type listing screens by authors in the admin area.

1.4.1

  • Add a Switch To link to the Edit User admin toolbar menu when viewing an author archive.
  • Add a Switch back link to the Edit User admin toolbar menu when viewing an author archive and you’re already switched.

1.4.0

  • Add support for user session retention, reuse, and destruction when switching to and back from other user accounts.
  • Add support for the switch_users meta capability for fine grained control over the ability to switch user accounts.
  • More code and documentation quality improvements.

1.3.1

  • Add support for the X-Redirect-By header in WordPress 5.0.
  • Allow User Switching’s admin notices to be dismissed.
  • Introduce a privacy statement.

1.3.0

  • Update the BuddyPress compatibility.
  • Various code and inline docs improvements.

1.2.0

  • Improve the Switch Back functionality when the interim login window is shown.
  • Always show the Switch Back link in the Meta widget if it’s present.

1.1.0

  • Introduce a user_switching_switched_message filter to allow customisation of the message displayed to switched users in the admin area.
  • Switch to safe redirects for extra paranoid hardening.
  • Docblock improvements.
  • Coding standards improvements.

0.5.2

  • Farsi (Persian) translation by Amin Ab.
  • Display switch back links in Network Admin and login screen.
  • Avoid a BuddyPress bug preventing Switch To buttons from appearing.

0.5.1

  • Toolbar tweaks for WordPress 3.3.

0.5.1.1

  • Traducción a chino simplificado por Sparanoid.

0.5.1.2

  • Traducción a alemán por Ralph Stenzel.

0.5

  • New «Switch off» function: Log out and log instantly back in again when needed (see the FAQ).

0.4.1

  • Support for upcoming changes to the admin bar in WordPress 3.3.

0.4

  • Añadida alguna ampliación de compatibilidad para BuddyPress.
  • Añadida alguna ampliación de compatibilidad para Multisitio.
  • Corregir un problema de permisos para usuarios sin privilegios.
  • Fix a PHP warning when used as a mu-plugin (thanks Scribu).

0.3.2

  • Fix the ‘Switch back to’ menu item in the WordPress admin bar (WordPress 3.1+).
  • Fix a formatting issue on the user profile page.

0.3.1

  • Prevent admins switching to multisite super admin accounts.

0.3

  • Adds an admin bar menu item (WordPress 3.1+) for switching back to the user you switched from.

0.2.2

  • Respect the current ‘Remember me’ setting when switching users.
  • Redirect to home page instead of admin screen if the user you’re switching to has no privileges.

0.2.1

  • Edge case bugfix to prevent ‘Switch back to…’ message appearing when it shouldn’t.

0.2

  • Functionality for switching back to user you switched from.

0.1

  • Versión inicial.