Autentifikacia – previazanie na profilovu tabulku

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

Ahojte,

robim svoj prvy projekt v nette a narazil som na jednu vec pri autentifikacii –

uzivatela overujem proti tabulke user, v ktorej mam cid vazbu na tabulku company. Potreboval by som aby pri autentifikacii natiahlo do objektu uzivatela aj data z tabulky company, ale nie som si uplne isty, ako tuto vazbu spravit.

Autentifikaciu mam riesenu cez IAuthenticator (v config.neon mam pridany service Nette\Security\IAuthenticator: UsersModel)

class UsersModel extends BaseModel implements IAuthenticator
{

	/**
	 * Performs an authentication
	 * @param  array
	 * @return NIdentity
	 * @throws NAuthenticationException
	 */
	public function authenticate(array $credentials)
	{
		list($username, $password) = $credentials;
		$row = dibi::select('*')->from('users')->where('email=%s', $username)->fetch();

		if (!$row) {
			throw new NAuthenticationException("User '$username' not found.", self::IDENTITY_NOT_FOUND);
		}

		if ($row->password !== $this->calculateHash($password)) {
			throw new NAuthenticationException("Invalid password.", self::INVALID_CREDENTIAL);
		}

		unset($row->password);
		return new NIdentity($row->id, $row->role, $row);
	}
}

dakujem

freespirit
Člen | 7
+
0
-

tak som na to nakoniec prisiel sam..

v auth metode –

$row = dibi::select('users.*, company.name as company')->from('users')->join('company')->on('users.company_id=company.id')->where('email=%s', $username)->fetch();

a v template –

<div id="login">
  Prihlásený ako <strong>{$user->getIdentity()->company}</strong> [{= implode(', ', $user->roles)}] | <a n:href="sign:out">odhlásiť</a>
</div>

Editoval freespirit (6. 4. 2011 15:29)