Call to undefined method User::isAuthenticated()

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

Vyskytla se mi následující chyba:

Call to undefined method User::isAuthenticated()

Chybu vyhazuje tato část:

final class Admin_DefaultPresenter extends Admin_BasePresenter
{
    public function startup()
    {
        parent::startup();
        $user = Environment::getUser();

        if (!$user->isAuthenticated()) {

Chápu co to je za chybu, ale nechápu proč vyskakuje, když volám věci z Nette. Může někdo poradit. Díky

westrem
Člen | 398
+
0
-

Skus pouzit metodu isLoggedIn() .. mam za to, ze metoda isAuthenticated() sa menila uz v nejakom davnejsom commite (poslal by som aj link, ale nechce sa mi to dohladavat)

plasmo
Člen | 66
+
0
-

westrem napsal(a):

Skus pouzit metodu isLoggedIn() .. mam za to, ze metoda isAuthenticated() sa menila uz v nejakom davnejsom commite (poslal by som aj link, ale nechce sa mi to dohladavat)

Já jsem ***, díky moc. Teď si vzpomínám no, máš pravdu :) omlouvám se za zbytečný dotaz :)

Ale přeci jenom … teď to háže chybu zde:

if ($user->getSignOutReason() === User::INACTIVITY) {

Postupuju pomocí tohoto tutoriálu: ACL

Editoval plasmo (24. 10. 2010 16:18)

plasmo
Člen | 66
+
0
-

To samé mi dělá i:

Environment::getUser()->signOut();

Přijde mi jako by Nette vůbec v sobě nemělo objekt User …

pave.kucera
Člen | 122
+
0
-

Nově se používají metody:

<?php
$user->login();
$user->isLoggedIn();
$user->logout();
$user->getLogoutReason(); // Možná getLogOutReason, nejsem si jistý
?>

Viz API.

srigi
Nette Blogger | 558
+
0
-

Ten navod sa budem snazit co najsor opravit (updatovat).

plasmo
Člen | 66
+
0
-

JannBaill napsal(a):

Nově se používají metody:

<?php
$user->login();
$user->isLoggedIn();
$user->logout();
$user->getLogoutReason(); // Možná getLogOutReason, nejsem si jistý
?>

Viz API.

Aha :-) fajn,díky. Tuhle změnu jsem nějak nezaznamenal :) ale teď se mi tu nachází otázka…proč není zachována zpětná kompatibilita? :)

Aurielle
Člen | 1281
+
0
-

V 0.9.x je a hází to warning. V 2.0 není.

plasmo
Člen | 66
+
0
-

gmvasek napsal(a):

V 0.9.x je a hází to warning. V 2.0 není.

Aha :-) ok, no tak vám všem děkuji :)

tatyalien
Člen | 239
+
0
-

No já tam pozměňoval názvy viz hozené vejš… a teď mě to stojí na:
MemberAccessException

Call to undefined method NUser::authenticate().

a přitom v configu mám nastavené dle návodu…

service.Nette-Security-IAuthenticator = Proj_Security_Authenticator
service.Nette-Security-IAuthorizator = Proj_Security_Acl

Aurielle
Člen | 1281
+
0
-

Musíš volat $user->login(...) ne $user->authenticate(...)!

tatyalien
Člen | 239
+
0
-

Díky, už jsem to rozdhodil, ještě bylo nutné změnit odhašování a pár věcí…
Doufám, že někdo pak ten tutoš na acl modul přepíše… takhle to je na prd :-(

PS-to autenticate jsem myslel, že je právě dle návodu napojené na to co se psalo „ručně“ do lib/proj/security/…

Editoval tatyalien (6. 1. 2011 14:12)

dubak
Člen | 41
+
0
-

ja som mal podobny problem a vyriesil som to tak, ze som na zaciatku skriptu napisal:

<?php
use Nette\Web\User;
?>

ale neviem, ci je toto tento pripad

craz
Člen | 34
+
0
-

tak isto mam problem pri tomto priklade:

Nette\AmbiguousServiceException
Cannot instantiate service ‚Nette\Security\IAuthenticator‘, class ‚Skuska\Security\Authenticator‘ not found.

zobrazuje riadok 33 v LoginForm.php : $user->login($form[‚login‘]->value, $form[‚password‘]->value);

zlozku temp som premazaval, ale bezuspesne.

viete mi poradit ?

Editoval craz (13. 3. 2011 14:16)