restoreRequest a user id při logout

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

Ahoj Davide,

snažil jsem se udělat restoreRequest($key) při $user->logout(TRUE) a nefungovalo to, tak jsem se podival do kódu metody a přišel jsem na to proč to nejde, že je potřeba dát buď $user->logout() nebo smazat podmínku na kontrolu uživatele na řádce 1142.

1139:     public function restoreRequest($key)
1140:     {
1141:         $session = $this->getSession('Nette.Application/requests');
1142:         if (!isset($session[$key]) || ($session[$key][0] !== NULL && $session[$key][0] !== $this->getUser()->getId())) {
1143:             return;

Chápu, že to je bezpečnostní ochrana, ale programátor by měl zabezpečenou zónu mít ochráněnou i tak. Nebo to má i jiné následky?

Budu to řešit tím $user->logout(FALSE)

David Grudl
Nette Core | 8228
+
0
-

Je to ochrana proti tomu, aby požadavek uložený pod jedním uživatelem nebylo možné restaurovat pod uživatelem jiným. Šlo by o bezpečnostní díru.