Releases: galandras12/Wordpress_mesterjelszo
Release list
1.0.4-es javított kiadás
Mesterjelszó - Változásnapló
[1.0.4] - HOTFIX
Kritikus javítás: színválasztó és médiafeltöltő gombok nem működtek
Az 1.0.3-ban javított fül-váltási hiba ugyanazon gyökérokának egy másik,
addig fel nem ismert következménye jelentkezett: az admin felületen a
háttérszín-választó palettája nem jelent meg (sem a világos, sem a sötét
téma-barát színek), a logó és a háttérkép "Kiválasztás" gombjaira kattintva
pedig egyáltalán nem nyílt meg a WordPress média-feltöltő ablak.
Ok: az 1.0.3-as javítás kizárólag a fülváltás logikáját emelte ki a
megosztott jQuery(document).ready() eseménysorból - a színválasztó
(initColorPickers()) és a média-feltöltő (initMediaPickers())
inicializálása, valamint az összes többi admin.js funkció, továbbra is
ugyanabban a veszélyeztetett callback-ben futott. Ha egy másik, ugyanazon
az admin oldalon betöltődő bővítmény szkriptje hibát dob a saját
ready-callback-jében, az megakaszthatja az ez után regisztrált
callback-eket - jelen esetben a plugin TELJES admin.js inicializálását,
nem csak egy részét.
Javítás: az admin.js indítási mechanizmusa véglegesen átalakult:
- többé nem
jQuery(document).ready()-n keresztül indul, hanem natív
document.readyStateellenőrzéssel ésDOMContentLoaded
eseményfigyelővel - ez teljesen független a jQuery saját, megosztott
ready-sorától, ezért más bővítmények szkript-hibái nem tudják
megakasztani; - minden egyes inicializáló funkció (színválasztó, média-feltöltő,
átlátszóság csúszka, háttértípus-váltó, jelszó-mutat gombok,
jelszó-egyezés ellenőrzés, élő előnézet, jelszó-megtekintés,
"emlékezz rám" kapcsoló, megbízható IP-k kapcsoló) mostantól KÜLÖN
try/catch blokkban fut - ha bármelyik hibát dobna (pl. hiányzó
függőség miatt), az többé nem akasztja meg a többi funkció indulását;
a hiba a böngésző konzoljába kerül kiírásra, jól azonosíthatóan a
funkció nevével.
A wp-color-picker és a wp.media komponensek maguk természetesen továbbra
is jQuery/Backbone-alapúak és jQuery-t igényelnek - ez nem változott,
csak az INDÍTÁSUK módja lett független a megosztott ready-sortól.
Változás: alapértelmezett megjelenési mód
A jelszókérő felület alapértelmezett megjelenési módja "Sötét"-ről
"Világos"-ra változott, az ehhez illő, olvasható kontrasztú
alapértelmezett háttér- (#eef2f7) és szövegszínnel (#1a1c2c).
FONTOS: ez a változás KIZÁRÓLAG az újonnan telepített (vagy a
beállításokat még sosem mentett) weboldalakat érinti - ha már korábban
elmentetted a megjelenési beállításokat, azok változatlanul megmaradnak,
a mentett érték felülírja az alapértéket.
Technikai részletek fejlesztőknek
admin/js/mesterjelszo-admin.js: az indításmjzAdminInit()néven
önálló függvénybe szervezve,document.readyState/DOMContentLoaded
alapon hívva; minden korábbiinit*()hívás egy tömbön keresztül,
egyenként try/catch-csel védve fut le.includes/class-mesterjelszo-admin.php:
get_default_settings()-color_modealapértéke'dark'→'light',
bg_coloralapértéke'#1a1c2c'→'#eef2f7',
text_coloralapértéke'#ffffff'→'#1a1c2c'.
[1.0.3] - HOTFIX
Kritikus javítás: az admin fülek nem nyíltak meg kattintásra
Több felhasználó jelezte, hogy az admin beállítási oldalon a
"Megjelenés", "Biztonság" és "Bejelentkezési napló" fülekre kattintva
semmi nem történt - a hover (rákattintás nélküli egérrel való rámutatás)
vizuális visszajelzése látszott, de a tényleges tartalom nem váltott át,
kizárólag az "Alapbeállítások" fül maradt látható és használható.
Valószínűsíthető ok: a tab-váltás logikája korábban egy jQuery
document.ready (jQuery(function(){...})) callback-en belül futott, a
plugin saját admin.js fájljában. Ha egy MÁSIK, ugyanazon az admin oldalon
betöltődő bővítmény szkriptje (a felhasználó esetében számos aktív
bővítmény - pl. Activity Log, Ultimate Member, Wordfence, Burst
Statisztika - egyaránt szóba jöhet) hibát dob a saját, szintén
document.ready-re feliratkozó kódjában, az bizonyos körülmények között
megszakíthatja az UTÁNA regisztrált ready callback-ek lefutását - ez
pontosan megmagyarázza, hogy a tiszta CSS-alapú hover miért működött
(nem függ JavaScript-től), miközben a kattintásra történő váltás
(jQuery-függő JS) miért nem futott le.
Javítás: a tab-váltás logikája teljesen kikerült a jQuery-alapú
admin.js fájlból, és egy önálló, natív (vanilla) JavaScript
<script> blokként került beágyazásra közvetlenül a fülek (<nav>)
HTML kódja mellé, a settings-page.php-ban. Ez a megoldás:
- nem használ jQuery-t, ezért nem függ attól, hogy a jQuery megfelelően
töltődött-e be, vagy hogy más bővítmények hogyan használják; - nem egy megosztott
document.readyeseménysoron keresztül fut, ezért
más bővítmények szkript-hibái nem tudják megakasztani; - közvetlenül a saját markup-ja mellett helyezkedik el, ezért semmilyen
külső fájl betöltési sorrendjétől vagy sikerességétől nem függ.
Ha korábban ezt a problémát tapasztaltad, a frissítés után a fülek
azonnal, minden további teendő nélkül ismét működnek.
Új funkciók
-
Vizuális hibajelzés hibás jelszónál (jelszókérő felület)
Hibás mesterjelszó megadásakor a jelszómező és a "Belépés" gomb
mostantól jól látható, vörös kerettel (és finom fénykerettel)
jelenik meg - a szín mindkét megjelenési módban (világos és sötét)
külön hangolt, megfelelő kontrasztú árnyalatra vált (sötét módban
világosabb korall-vörös, világos módban telítettebb, sötétebb vörös),
hogy mindkét témán jól olvasható és észrevehető legyen. -
Remegés animáció hibás próbálkozáskor
A jelszómező (a szem-ikon gombbal együtt) egy rövid, finom
megremegéssel jelzi a sikertelen próbálkozást, tovább erősítve a
vizuális visszajelzést. Az animáció tiszteletben tartja a
prefers-reduced-motionbeállítást (a mozgás-érzékeny felhasználóknál
automatikusan kikapcsol).
Technikai részletek fejlesztőknek
admin/js/mesterjelszo-admin.js: azinitTabs()függvény és annak
hívása eltávolítva.admin/partials/settings-page.php: új, önálló<script>blokk a
<nav class="mjz-tabs">után, natívaddEventListener-alapú
tab-váltással,DOMContentLoadedvédelemmel (ha a script a<body>
még be nem fejezett betöltése közben fut le).public/css/mesterjelszo-public.css: új--mjz-errorés
--mjz-error-glowCSS egyéni tulajdonságok, témánként külön értékkel;
új.mjz-shakekulcsképkocka-animáció; új.mjz-submit.mjz-error-state
szabály.public/js/mesterjelszo-public.js: ashowError()/clearError()
függvények kiegészítve a gomb hibaállapot-osztályának kezelésével és
egy újtriggerShake()segédfüggvénnyel (kényszerített reflow-val az
animáció megbízható újraindításához ismételt hibáknál is).
[1.0.2] - HOTFIX
Kritikus javítás: teljes weboldal-elérhetetlenség (503 hiba)
Több felhasználó jelezte, hogy a védelem bekapcsolása után a TELJES
weboldal - a bejelentkezési felülettel (wp-login.php) együtt - Error
503-mal vált elérhetetlenné, és a probléma azonnal megszűnt a védelem
kikapcsolásával.
Ok: a bővítmény korábban minden gate-megjelenítéskor MINDIG valódi
HTTP "503 Service Temporarily Unavailable" állapotkódot küldött, kifejezetten
SEO-megfontolásból (hogy a keresőmotorok ne indexeljék a jelszókérő
oldalt). Számos tárhelyi környezet - reverse proxy, CDN, gyorsítótár
(pl. LiteSpeed Cache) vagy biztonsági/tűzfal bővítmény (pl. Wordfence) -
azonban a saját, márkázott hibaoldalával helyettesíti az ilyen válaszokat,
ahelyett hogy továbbengedné a szerver által ténylegesen visszaadott HTML
tartalmat. Emiatt a látogató (és a webhely tulajdonosa) a plugin saját,
stílusos jelszókérő felülete helyett a tárhely/CDN generikus hibaoldalát
látta - függetlenül attól, hogy egyébként minden helyesen működött volna.
Javítás: a jelszókérő oldal mostantól ALAPÉRTELMEZETTEN sima HTTP
200-as válaszkóddal jelenik meg. A keresőmotoros indexelés elkerülését
továbbra is biztosítja a
címke és az X-Robots-Tag fejléc, HTTP hibaállapot nélkül is. A korábbi,
503-as viselkedés egy admin felületen (Biztonság fül → "Speciális /
kompatibilitás" kártya) kikapcsolható-bekapcsolható beállítás lett,
egyértelmű figyelmeztető szöveggel, saját felelősségre.
Ha korábban ezt a problémát tapasztaltad, a frissítés után a szokásos
módon aktiválhatod újra a védelmet - nincs szükség további teendőre.
Új funkciók
-
Bejelentkezési napló ("Bejelentkezési napló" admin fül)
A sikertelen mesterjelszó-próbálkozásokat mostantól egy dedikált
adatbázistábla naplózza: időpont, IP-cím, valamint (késleltetve,
háttérben feltöltött) ország és város. Az admin felület négy összesítő
számlálót mutat: 1 napon belül / 1 héten belül / 1 hónapon belül / 1
éven belül történt sikertelen próbálkozások száma, valamint egy
táblázatot a legutóbbi 100 próbálkozásról. A napló "Napló törlése"
gombbal bármikor üríthető, és 1 évnél régebbi bejegyzések automatikusan
törlődnek.
A geolokációs adatokat (ország, város) egy külső, ingyenes, kulcsot nem
igénylő IP-lekérdező szolgáltatás (ip-api.com) biztosítja; a lekérdezés
SOSEM történik szinkron módon a látogató jelszó-beküldése közben (ez
lassítaná a választ), hanem késleltetve, az admin naplófül
megtekintésekor, kis kötegekben, 30 napos gyorsítótárazással. Helyi/privát
IP-címekre nem történik külső lekérdezés. -
Megbízható IP-címek listája
A Biztonság fülön bekapcsolható és soronként feltölthető egy IP-cím
lista (pontos IP vagy egyszerű IPv4 CIDR jelölés, pl.
"203.0.113.0/24"), amelyről érkező látogatók automatikusan, a
mesterjelszó megadása nélkül átjutnak a jelszókérő felületen. A
funkció alapértelmezetten KIKAPCSOLT állapotú. -
AJAX végpont kivételek
A Biztonság fülön soronként megadh...