Problém s přihlášením(Staticke ACL v modularnej aplikacii)
- xDexter
- Člen | 13
Dobrý den,
tvořím první web v Nette, a to podle tutoriálu Staticke ACL
v modularnej aplikacii.
Používám verzi Nette Framework 2.0-alpha 2 pro PHP 5.3.0.
Při nasazení stránek na web mi ale skřípe přihlašování. Laděnka mi
hlásí tuto chybu:
Service ‚Nette\Security\IAuthenticator‘ not found.
..$user->login($form[‚login‘]->value, $form[‚password‘]->value);
První co mě napadlo bylo nalinkovat třídu
Nette\Security\IAuthenticator. Tohle, ale nepomohlo.
Nesetkal se někdo, kdo postupoval podle výše zmíněného tutoriálu,
s podobným problémem?
Ještě znovu připomenu, že na localhostu mi stránky běží bezproblémů, jen v produkční verzi mám tento problém.
Asi mi něco nedochází :).
- jtousek
- Člen | 951
Nette\Security\IAuthenticator
je interface, ty musíš někde
v configu nastavit, která třída ti tohle rozhraní implementuje.
např. takhle to mám já: (v config.ini)
service.Nette-Security-IAuthenticator = AdminModule\Authenticator
Dále doporučuji dokumentaci.
EDIT: Že to funguje jen na localhostu může být např. tím, že v configu máš ten řádek uvedenej pouze v sekci pro localhost a ne v common.
Editoval jtousek (20. 4. 2011 12:15)
- xDexter
- Člen | 13
Díky za rychlou odpověď!
No v configu asi problém nebude, vypadá následovně:
[common]
; PHP configuration
php.date.timezone = "Europe/Prague"
; services
service.Nette-Loaders-RobotLoader.option.directory[] = %appDir%
service.Nette-Loaders-RobotLoader.option.directory[] = %libsDir%
service.Nette-Loaders-RobotLoader.run = TRUE
service.Nette-Security-IAuthorizator = AclProj\Security\Acl
service.Nette-Security-IAuthenticator = AclProj\Security\Authenticator
[production]
atd.
a ty namespace\trida jsou zapsány dobře, v common sekci to taky mám.
Nějaký ještě nápad?
- xDexter
- Člen | 13
Ano mám, no moje adresářová struktura je taková:
+ app
- AdminModule
- forms
LoginForm.php
- presenters
AuthPresenter.php
+ FrontModule
+ .....
+ css
+ data
+ images
+ js
+ libs
- AclProj
- Security
Acl.php
Authenticator.php
+ log
+ temp
.htaccess
index.php
web.config
No nevím, kde je zakopaný pes :)
Editoval xDexter (20. 4. 2011 18:17)
- xDexter
- Člen | 13
srigi napsal(a):
Mozes sem hodit komplet vystup ladenky (stranku)? Teda nie priamo do fora, ale daj link alebo zabal do zipu a niekam uploadni.
takže výpis je zde
díky za ochotu!
- xDexter
- Člen | 13
Problém vyřešen! Config.ini jsem změnil následovně:
[common]
; PHP configuration
php.date.timezone = "Europe/Prague"
; services
service.Nette-Loaders-RobotLoader.option.directory[] = %appDir%
service.Nette-Loaders-RobotLoader.option.directory[] = %libsDir%
service.Nette-Loaders-RobotLoader.run = TRUE
service.Nette-Security-IAuthorizator = AclProj\Security\Acl
service.Nette-Security-IAuthenticator = AclProj\Security\Authenticator
[production < common]
atd.
V sekci production jsem nedědil věci od common! Díky všem za příspěvky, díky Bernard Williams za tuto informaci!
Editoval xDexter (22. 4. 2011 16:29)