Tovább a tartalomhoz

User Switching

A User Switching egy ingyenes WordPress-bővítmény, amellyel egy kattintással átválthatsz egy másik felhasználó fiókjára, így kijelentkezés és jelszó nélkül teszteled a szerepköröket és a jogosultságokat.

A User Switching ingyenes, nyílt forráskódú bővítmény. Egy kattintással bejelentkeztet egy másik felhasználó nevében, és ugyanígy vissza is visszavált a saját fiókodra. Fejlesztéskor erre két tipikus helyzetben van szükség: megnézed, mit lát egy WooCommerce-vásárló, és kipróbálod, mit szerkeszthet egy szerkesztő. Jelszót nem kell kérned vagy megváltoztatnod, és a saját munkamenetedből sem kell kilépned.

  1. Menj a Bővítmények → Új hozzáadása oldalra.
  2. Keress rá: User Switching.
  3. Kattints a Telepítés most, majd az Aktiválás gombra.

WP-CLI-vel:

Terminál
wp plugin install user-switching --activate

Bedrock projektben Composerrel add hozzá, és utána aktiváld:

Terminál
composer require wp-plugin/user-switching --dev
wp plugin activate user-switching

A --dev miatt az éles composer install --no-dev nem telepíti. A WordPress.org oldala szerint WordPress 6.3 és PHP 7.4 vagy újabb kell hozzá.

A Switch To link itt jelenik meg:

  • a Felhasználók képernyőn, a felhasználók műveleti linkjei között;
  • egy felhasználó profiloldalán.

A WordPress Command Palette-ben is megtalálod: rákeresel egy felhasználóra, és onnan átváltasz rá.

  1. Nyisd meg a Felhasználók oldalt.
  2. Vidd az egeret a kívánt felhasználó sora fölé, és kattints a Switch To linkre.
  3. A bővítmény átjelentkeztet, és te már az ő fiókjában böngészel.

Multisite-on a Network Admin Felhasználók képernyőjéről is válthatsz.

A Switch back link minden irányítópult-képernyőn és a WordPress eszköztár profilmenüjében ott van, amíg másik fiókban vagy.

A Switch off a profilmenüben található. Kijelentkeztet, de megőrzi a felhasználóazonosítódat egy sütiben, így újbóli bejelentkezés nélkül visszaválthatsz. Olyan, mintha „senkivé” válnál: ebben az állapotban a kijelentkezett látogatók nézetét teszteled. Kikapcsolás után a Switch back link megjelenik az oldal láblécében, a bejelentkezési képernyőn és a „Meta” widgetben is.

WooCommerce vásárlói nézet. Válts át egy teszt-vásárlóra, és végigmehetsz a vásárló útján: kosár, pénztár, fiók, rendelések. A WooCommerce több admin képernyőjéről is válthatsz, ha Shop Managerként vagy adminisztrátorként vagy bejelentkezve.

Szerkesztői jogosultság tesztelése. Válts át egy szerkesztő, szerző vagy közreműködő szerepkörű felhasználóra, és nézd meg, melyik menüpontot látja, mit tud szerkeszteni. Ha egy egyedi jogosultságot állítottál be, itt derül ki, hogy tényleg úgy működik-e, ahogy akartad. Ugyanezt jól kiegészíti a Query Monitor jogosultság-panelje (QM_ENABLE_CAPS_PANEL), amely a jogosultság-ellenőrzéseket listázza.

A BuddyPress tagprofil- és taglista-képernyőin, a bbPress tagprofiljain szintén megjelenik az átváltás.

Átválthat, akinek megvan az edit_users jogosultsága. Alapértelmezésben ez az adminisztrátor, Multisite-on csak a szuperadmin. Emellett szerkeszthetnie is kell a célfelhasználót, vagyis az egyedi jogosultság-leképezéseket a bővítmény tiszteletben tartja.

A switch_users meta jogosultságot külön is megadhatod vagy megvonhatod egy felhasználótól vagy szerepkörtől. A szűrőnek 9-es prioritáson kell futnia:

functions.php
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 );

A my_condition() a te saját feltételed. A célfelhasználó azonosítója a $args[2]-ben van. A kapott felhasználónak a Felhasználók menü eléréséhez a list_users jogosultság is kell. A $allcaps['switch_users'] értékét false-ra állítva megvonhatod a jogot attól is, akinek az edit_users megvan.

  • Csak olyan felhasználó válthat, aki szerkeszthet más felhasználókat.
  • A bővítmény sosem mutatja meg a jelszavakat.
  • A visszaváltáshoz a WordPress süti-hitelesítését használja, a váltásokat nonce védi.
  • Ha egy fiókba már más is átváltott, megerősítést kér.

Adatvédelmi szempontból tudnod kell, hogy a bővítmény három sütit használ: wordpress_user_sw_{COOKIEHASH}, wordpress_user_sw_secure_{COOKIEHASH} és wordpress_user_sw_olduser_{COOKIEHASH}. Az értékük a felhasználó user_login mezőjét olvasható szövegként tartalmazza, ezért a GDPR szempontjából személyes adatként kezeld.

Éles oldalon csak a szükséges ideig és csak megbízható adminisztrátorokkal használd. Átváltás után valódi vásárló nevében látsz és cselekszel, ezért ne adj le rendelést és ne módosíts adatot helyette. Erre teszt-fiókot használj.

A WordPress.org leírása szerint ezeket használhatod a saját kódodban:

  • user_switching::maybe_switch_url( $user ): nonce-védett átváltó URL-t ad. Átváltás utáni célhoz fűzz hozzá redirect_to paramétert.
  • current_user_switched(): ha a jelenlegi felhasználó átváltással került ide, az eredeti WP_User objektumot adja, különben false-t.
  • Akciók: switch_to_user, switch_back_user, switch_off_user.
  • Szűrő: user_switching_redirect_to, az átváltás utáni átirányítás helyét módosítja.
Egyedi Switch To link
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 )
);
}
}

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások