Authenticator s DB – nefunguje propojeni
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- soukypro
- Člen | 2
Ahoj všichni, mám menší problém nefunguje mi $this->database->table(). Hmm, prijde mi jako by funkce _construct vubec „nenaplnil“ promennou database. Prosim pomoc :) Diky moc,
<?php
use Nette\Security as NS;
use App\Model\UsersModel;
use Nette\Database\Context;
class MyAuthenticator extends Nette\Object implements NS\IAuthenticator
{
public $database;
public function _construct(Context $database)
{
$this->database = $database;
}
/**
* Performs an authentication
* @param array
* @return Nette\Security\Identity
* @throws Nette\Security\AuthenticationException
*/
public function authenticate(array $credentials)
{
list($email, $password) = $credentials;
$row = $this->database->table('users')
->where('email', $email)->fetch();
if (!$row) {
throw new NS\AuthenticationException('User nenalezen.');
}
if ($row->password !== sha1($password . UsersModel::$user_salt)) {
throw new NS\AuthenticationException("Invalid password.", self::INVALID_CREDENTIAL);
}
unset($row->password);
return new NS\Identity($row->id, $row->role, array('username' => $row->username));
}
}