Jak resetovat heslo přes Api

23. 10. 2017 publikoval Pavel Tajduš a článek zařadil do kategorií NávodyTip.

Přijít o heslo můžete více způsoby. Můžete ho prostě a jednoduše zapomenout. Nebo můžete o heslo přijít i při běžné developerské práci.

Už se mi několikrát povedlo při kopírování obsahu webu z lokálního vývojového prostředí na živý server (a naopak) přijít o svoje heslo. Nastává to v situaci, kdy si zkopírujete přes modul DB Backups obsah webu, a obsah si obnovíte na lokálním počítači. Dělám to celkem pravidelně, když pracuji na již spuštěném webu, abych měl všude stejná data.

Po odhlášení z obnoveného webu vám přestane fungovat heslo. Dá se to řešit dvěmi způsoby. Po obnovení webu si v administraci změnit své heslo zpět na to vaše. Pak po odhlášení funguje vše tak jak má. Pokud na to ale zapomenete, a nemůžete se do webu dostat, musíme si pomoci přes API.

Jak si obnovit heslo přes API

Do /site/templates/admin.php na konec přidáme náš kousek kódu:

$admin = $users->get('admin'); // admin nahraďte vaším uživatelským jménem
$admin->setAndSave('pass', 'yo123456'); // změňte na vaše heslo

Výsledek pak bude vypadat nějak takto:

Poté se přihlašte do administrace s tímto heslem. Jakmile se vám povede přihlásit do administrace, nezapomeňte zase tento vložený kus kódu vymazat. Jinak byste si neustále přepisovali heslo.

Pokud jste zapomětliví, rozumnější bude v kořenové složce vašeho webu vytvořit soubor reset.php a do něj vložit následující kód:

require "index.php";
$admin = $users->get('admin'); // admin nahraďte vaším uživatelským jménem
$admin->setAndSave('pass', 'yo123456'); // změňte na vaše heslo

Změnu hesla pak provedete jednoduše zavoláním tohoto souboru z prohlížeče přes URL adresavasehowebu.cz/reset.php.

Více informací k tomuto tématu můžete nalézt v Processwire foru.