samovolná zmena user namespace

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

Zdravím, vyskytol sa mi počas písania appky menší problém. Web mám rozdelený na front a back, pri prihlásení uživateľov nastavujem namespace, ukážka:

$this->getUser()->login($values->user, $values->password);
$this->getUser()->getStorage->setNamespace('front');  //backed -> setNamespace('backend');

obdobne aj v backende, následne mám problém, že som prihláseny na frontende a prejdem na backend tak ma presmeruje na prihlásenie, prihlásim sa to je ok, ale neviem z akého dôvodu mi pri jednej metóde v presenteri toto blbne, raz mi v debuggeri ukáže credentials ako admin z backendu, potom po refreshi tam je zas uživateľ s frontendu.
Presenter News metódy renderDefault, actionAdd kde sa mi len vykresluje formulár, a actionUpdate tam som skúsil nechať čistú šablónu a metóda len (uvedenú) ale blbne to stále..nejaká čierna mágia :D

public function actionUpdate($id) {
	$this->template->id = $id;
}

V metódach backendu si kontroluje prístup:

protected function checkUserLoggedIn()
   {
       $user = $this->getUser();
       $user->getStorage()->setNamespace('admin');
        if($user->isLoggedIn() == FALSE || $user->isInRole('admin') == FALSE) {
            $this->redirect('Login:default');
        }
        return TRUE;
    //prepisať použitim ACL :)
    }

Keď tam zakomentujem nastavenie namespace tak ma presmeruje na prihlásenie. Ako správne teda stím pracovať ? Ďakujem (Nette 2.0)

David Matějka
Moderator | 6445
+
+3
-

user namespace musis nastavit pri kazdem requestu – nejlepe na zacatku cyklu presenteru – tedy bud v checkRequirements, pripadne v startup

majky358
Člen | 37
+
0
-

matej21 napsal(a):

user namespace musis nastavit pri kazdem requestu – nejlepe na zacatku cyklu presenteru – tedy bud v checkRequirements, pripadne v startup

Diki moc, presne to som potreboval, vytvoril som si startup() metódu a vložil to tam :)