samovolná zmena user namespace
- majky358
- Člen | 37
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
user namespace musis nastavit pri kazdem requestu – nejlepe na zacatku cyklu presenteru – tedy bud v checkRequirements, pripadne v startup