Avatar
Dominika Šulcová(dominiQa):

Ahoj, chtěla bych se zeptat jak děláte v Nette to, že budu mít Modul(AdminModul) a ten bude pouze pro přihlášené. Dříve jsem to dělala tak, že jsem měla BasePresenter pro ten AdminModul a ten bude zděděn ze SecuredPresenteru, který ověřuje přihlášení uživatele. Ale není to nějakým způsobem nebezpečné? Nenapadá mě zrovna důvod proč, ale tuším to :D. Díky

Odpovědět  +1 25.8.2014 20:31
I ♥ nutella
Avatar
Odpovídá na Dominika Šulcová(dominiQa)
Martin Konečný (pavelco1998):

Nemám s Nette moc zkušenosti, ale dělám to prostě tak, že mám v BasePresenteru v metodě startup() ověření, jestli je uživatel v daném jmenném prostoru přihlášen.

class BasePresenter
{

   public function startup()
   {
      $user = $this->user;
      $user->getStorage()->setNamespace("modul");
      if (!$user->isLoggedIn()) {
        $this->redirect("někam pryč");
      }
   }

}
 
Nahoru Odpovědět 25.8.2014 21:24
Avatar
Jan Demel
Redaktor
Avatar
Odpovídá na Dominika Šulcová(dominiQa)
Jan Demel:

Normálně tam někde do presenteru při volání metody modelu jenom vpasuj podmínku.

if($user->isLogedIn())
{
    //A TADY NĚJAKÝ KÓD
}
Nahoru Odpovědět 25.8.2014 21:31
To co se zdá být nemožné, je vždy možné.
Avatar
Radim Sückr
Redaktor
Avatar
Radim Sückr:

Tvůj postup přes SecuredPresenter a kontrolu přihlášení v metodě startup je správný a bezpečný.

Před cca 3/4 rokem se ale řešilo, že BasePresenter je antipattern.
https://twitter.com/…118439243776
http://forum.nette.org/…-antipattern

Editováno 26.8.2014 10:22
 
Nahoru Odpovědět 26.8.2014 10:21
Avatar
Odpovídá na Radim Sückr
Dominika Šulcová(dominiQa):

díky :), jinak to vlákno jsem taky dneska četla

Nahoru Odpovědět  +1 26.8.2014 17:02
I ♥ nutella
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.