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.

Funcionalidades

  • 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.
  • Apagar: 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 abierto ético

El cambio de usuario se considera código abierto ético porque cumple con 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

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 Apagar se puede encontrar en el menú de tu perfil en la barra de herramientas de WordPress. Una vez que hayas apagado, 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.

¿Funciona este plugin 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.

¿Funciona este plugin con bbPress?

Si, y también podrás cambiar usuarios desde las pantallas de perfil de miembro.

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>',
            $url,
            $target_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 a un usuario enmarcar a otro usuario para una acción?

Posiblemente sí, pero el cambio de usuario incluye algunas protecciones de seguridad para esto y existen otras 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 los cuales tienen soporte incorporado para el cambio de usuario y todos registran una entrada cuando un usuario cambia a otra cuenta.
  • El cambio de usuario desencadena una acción cuando un usuario cambia de cuenta, apaga o vuelve a cambiar (ver más abajo). Puedes utilizar estas acciones para realizar registros adicionales por motivos de seguridad, según 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 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

27 de enero de 2021
We've had this on a busy and complex e-comm site for a number of years. Works great never had any issues until today. I submitted a question, User-Switching plugin author's response was super fast and quickly helped ID the culprit (another plugin). Thanks much for an essential plugin and awesome support!
2 de enero de 2021
Another incredible "wish I thought of that" kind of plugin. And the moment I did think of it, it was already built by a forward-thinking developer. Thank you!
11 de diciembre de 2020
This is what I need.... It works.... Thanks a lot Author. Great job!
Leer todas las 188 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 42 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.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.6.1

  • Slovak translation by Max Samael.

0.6

  • More intuitive redirecting after switching.
  • Avoid a BuddyPress bug preventing Switch To buttons from appearing.
  • Added a template function: current_user_switched() which lets you know if the current user switched into their account.
  • Added some hooks: switch_to_user, switch_back_user and switch_off_user, fired when appropriate.

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.