Adminer 6.0.1
Všech změn je opět velké množství, popíšu jen ty nejzajímavější.
Adminer začínal s premisou „nahraj ho vedle dat a spusť“. Postupně se od ní ale začal vzdalovat. Verze 4.6.3 zakázala přihlášení bez hesla, verze 6.0.0 pak i případ, kdy ho uživatel zadá, ale server ho nevyžaduje. Řešení vždycky existovalo – nahrát plugin do adresáře a nakonfigurovat ho. Ale to je nad síly skupiny uživatelů, o které nechci přijít. Nová verze to proto zjednudušuje. Plugin pro přihlášení bez hesla je nově přímo součástí instalace jako Adminer\Password a pokus o přihlášení bez hesla vypíše kód pro jeho konfiguraci.
Utratil jsem tokeny v hodnotě $700 na bezpečnostní scan (naštěstí v rámci předplatného). Přinesl výsledky – našel menší bezpečnostní nedostatky v pluginech a chyby, které vyžadují značnou míru social engineeringu. Říkám jim Self-XSS – např. jste si nejprve museli vytvořit typ se speciálními znaky a při zobrazení jeho nápovědy došlo k chybě. Problém reálný, ale těžko zneužitelný.
Adminer šel odjakživa spustit ze zdrojových kódů. Vyžadoval ale pevnou strukturu podadresářů, takže nemohl běžet třeba na http://localhost, vždycky to muselo být aspoň http://localhost/adminer/. Teď jsem kód přeskupil tak, že stačí soubory v adresáři adminer/ a adresář může být pojmenovaný libovolně.
Vylepšil jsem podle mě málo používanou stránku Schéma databáze, která nově tabulky vykreslí do více sloupců podle jejich vazeb. Šipky můžou nově vést i zprava.
Vyhledávání dat ve všech tabulkách jsem vyřešil snad už pro všechny typy. Tady se nesmírně hodil robot – prostě si udělal matici TYP × OPERÁTOR × HODNOTA pro všechny ovladače a jel, dokud mu to celé neprošlo.
Na stránce editace jsem nechal vypsat dotaz, který záznam získal. Obdobný je už léta na výpisu dat.
Do importu jsem přidal ukazatel průběhu uploadu. Vypadalo to jednoduše, ale zkomplikovalo se to kvůli tomu, že Adminer používá vlastní session_name(), aby nekolidoval s ostatními stránkami.
Ovladač pro Elasticsearch nyní funguje i s OpenSearch.
Pluginy
Zvýrazňovače syntaxe pro pluginy ovladačů byly dřív přímo současí Admineru. Ale pak jsem přidal 5 kB klíčových slov pro Redis a přestalo se mi to líbit. Pluginy ovladačů si proto zvýrazňování syntaxe nově nesou v sobě.
Vytvořil jsem plugin jménem plugins, který v UI informuje o pluginech, které jdou na daném místě použít. Jako okrajová záležitost je ale jen na Gistu.
Interní změny
- Kód nechávám kontrolovat i některými pravidly PHPStan strict a Slevomat Coding Standard.
- Adminer má slušné pokrytí E2E testy. Přidal jsem 5 dalších testů pro všechny ovladače, které pokrytí ještě zvýšily.
- Testy jsem přidal i pro některé pluginy.

