A WordPress alapértelmezetten lehetőséget nyújt jelszavunk megváltoztatására, abban az esetben ha elfelejtenénk. Ehhez a bejelentkező képernyő alján található “Elfelejtett jelszó?” linkre kell kattintani, majd a profilunkhoz társított e-mail címünk/felhasználónevünk megadására lesz szükség. Ezután kiküldésre kerül egy üzenet, amelyben egy linkre kattintva új jelszót generálhatunk magunknak, így ismét képesek leszünk belépni. Ez a legtöbb esetben egy hasznos és szükséges funkció, de előfordulhatnak olyan felhasználási területek is, ahol erre egyáltalán nincs szükség.
Ilyen lehet például, ha egy demo oldalt futtatunk, ahova általunk megadott felhasználónév-jelszó párossal lehet bejelentkezni és nem szeretnénk, ha ezt bárki is meg tudná változtatni. A másik eshetőség, ha létrehoztunk valaki számára egy ideiglenes felhasználót, de nem engedélyeznénk neki a jelszó változtatást. Két módszer is van ennek kikapcsolására. Az egyik egy globális, minden felhasználó és szerepkör számára egyaránt érvényes, kódrészlettel operáló megoldás, a másik pedig egy bővítmény használata, ahol szerepkörönként vagy éppen felhasználónként tudjuk engedélyezni/tiltani a jelszó megváltoztatását.
A bővítmény a “Plainview Protect Passwords” nevet viseli, telepítése és aktiválása után a “Beállítások / Protect Passwords” szekcióban tudjuk konfigurálni.
A “Protected Roles” mellett láthatjuk az elérhető szerepköröket, amelyiket itt kijelöljük, az(ok) számára tiltva lesz a jelszó megváltoztatása a bejelentkező képernyőn és a saját profiljukon keresztül is. Természetesen több szerepkör is kijelölhető.
A “Protected Users” ugyanezen az elven működik, csak itt megadott felhasználók számára tilthatjuk a jelszó megváltoztatását.
A “User Exceptions” a kivételeket kezeli, azaz itt választhatunk ki olyan felhasználót, aki hiába tartozik a fentebb kiválasztott szerepkör(ök)be, mégis képes lesz jelszót változtatni.
A bővítmény nem tünteti el a bejelentkező képernyőn található “Elfelejtett jelszó?” linket, de ha a felhasználó a tiltás alá került, akkor képtelen lesz jelszót változtatni, helyette egy hibaüzenetet kap, miszerint ez számára nem engedélyezett.
Ha mindenki számára, globálisan szeretnénk tiltani a jelszavak cseréjét, akkor a következő kódrészletre lesz szükségünk:
<?php /* * Plugin Name: Jelszóváltoztatás Tiltása * Description: Letiltja a jelszóváltoztatás funkciót. Csak az adminisztrátor szerepkörrel rendelkező felhasználók lesznek képesek jelszót változtatni a vezérlőpulton keresztül. * Version: 1.0 * Author: WPSzaki * Author URI: https://wpszaki.hu */ class Password_Reset_Removed { function __construct() { add_filter( 'show_password_fields', array( $this, 'disable' ) ); add_filter( 'allow_password_reset', array( $this, 'disable' ) ); add_filter( 'gettext', array( $this, 'remove' ) ); } function disable() { if ( is_admin() ) { $userdata = wp_get_current_user(); $user = new WP_User($userdata->ID); if ( !empty( $user->roles ) && is_array( $user->roles ) && $user->roles[0] == 'administrator' ) return true; } return false; } function remove($text) { return str_replace( array('Elfelejtett jelszó?', 'Elfelejtett jelszó'), '', trim($text, '?') ); } } $pass_reset_removed = new Password_Reset_Removed(); ?>
Ez az eddigiektől eltérően nem a sablon “functions.php” fáljába kerül mivel ez egy nagyon egyszerű bővítmény, így miután létrehoztuk (bemásoltuk egy üres szöveges fájlba), nevezzük el például “jelszovaltoztatas-tiltasa.php” néven és töltsük fel a “/wp-content/plugins” mappába. Nem szükséges neki új könyvtárat létrehozni, egyszerűen csak tegyük a “plugins” mappa gyökerébe az “index.php” mellé. Ezután lépjünk be a vezérlőpultba, nyissuk meg a “Bővítmények” lapot és aktiváljuk a “Jelszóváltoztatás tiltása” nevű bővítményt.