Chyba v Authenticatoru: contains abstract method

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

Zdravím,
při pokusu o přihlášení dostanu následující chybu:
Class App\Users contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Nette\Security\IAuthenticator::authenticate)

Zkoušel jsem hledat, bohužel neúspěšně.

<?php
namespace App;

use Nette;
use Nette\Security as NS;
use Kdyby\Doctrine\EntityManager;

class User extends Nette\Object implements NS\IAuthenticator
{
    private $EntityManager;

    public function __construct(EntityManager $EntityManager)
    {
        $this->EntityManager = $EntityManager;
    }

    function authenticate(array $credentials)
    {
        list($username, $password) = $credentials;

        $qb = $this->EntityManager->createQueryBuilder();

        $qb->select('u')
            ->from('App\Users', 'u')
            ->where("u.username = ?1")
            ->setParameter(1, $username)
            ->setMaxResults(1);

        $query = $qb->getQuery();
        $row = $query->getOneOrNullResult();

        if (!$row) {
            throw new NS\AuthenticationException('User not found.');
        }

        if (!NS\Passwords::verify($password, $row->password)) {
            throw new NS\AuthenticationException('Invalid password.');
        }

        return new NS\Identity($row->id, $row->role, array('username' => $row->username));
    }
}

Editoval Jarek159 (17. 8. 2015 15:24)

Majkl578
Moderator | 1364
+
0
-

Chyba zmiňuje třídu App\Users, ty nám tu ale ukazuješ App\User.

Jarek159
Člen | 23
+
0
-

Nevím, jak se mi podařilo to přehlédnout.. Díky