Exception při změně hesla

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
.:M@rt!n:.
Člen | 201
+
0
-

Ahoj,
při změně hesla v administraci, když uživatel zadá staré heslo jiné, než je v db tak se mu nevypíše na stránku, že je heslo špatné, ale vyskočí laděnka s hláškou, že je heslo špatné. Jak zajistit vypsání ve stránce? Při přihlašovaní a zadání špatného uživatelského jména, se hláška na stránce normálně vypíše…

<?php

namespace App\Model;

use Nette,
    Nette\Utils\Strings,
    Nette\Security\Passwords;

/**
 * Users management.
 */
class UserManager extends Nette\Object implements Nette\Security\IAuthenticator {

    const
            TABLE_NAME = 'admins',
            COLUMN_ID = 'id',
            COLUMN_NAME = 'name',
            COLUMN_SURNAME = 'surname',
            COLUMN_USERNAME = 'username',
            COLUMN_PASSWORD_HASH = 'password';

    /** @var Nette\Database\Context */
    private $database;

    public function __construct(Nette\Database\Context $database) {
        $this->database = $database;
    }

    /**
     * Performs an authentication.
     * @return Nette\Security\Identity
     * @throws Nette\Security\AuthenticationException
     */
    public function authenticate(array $credentials) {
        list($username, $password) = $credentials;

        $row = $this->database->table(self::TABLE_NAME)->where(self::COLUMN_USERNAME, $username)->fetch();

        if (!$row) {
            throw new Nette\Security\AuthenticationException('Wrong username', self::IDENTITY_NOT_FOUND);
        } elseif (!\Passwords::verify($password, $row[self::COLUMN_PASSWORD_HASH])) {
            throw new Nette\Security\AuthenticationException('Wrong password', self::INVALID_CREDENTIAL);
        }
        $arr = $row->toArray();
        unset($arr[self::COLUMN_PASSWORD_HASH]);
        return new \Nette\Security\Identity($row[self::COLUMN_ID], NULL, $arr);
    }

    /**
     * Fixes caps lock accidentally turned on.
     * @return string
     */
    private static

    function removeCapsLock($password) {
        return $password === Strings::upper($password) ? Strings::lower($password) : $password;
    }

}
Michal Vyšinský
Člen | 608
+
0
-

Zřejmě ji ve formuláři pro změnu hesla nezachytáváš.

.:M@rt!n:.
Člen | 201
+
0
-

Jo díky, za navedení, bylo to ono.