Chybná obrazovka při volání metody error v presenteru

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

Narazil jsem na problém, že když v Presenteru provedu

if (!$this->user->isAllowed('Topic', 'delete')) {
            $this->error(_('For this operation, you do not have sufficient permissions.'), \Nette\Http\IResponse::S403_FORBIDDEN);
        }

Tak mi to neustále vyhazuje ServerError 500
Jak docílit aby to vyhodilo 403 jak požaduji?

s4muel
Člen | 92
+
0
-

vypni debugger/ladenku a bude to podla predstav

jiri.pudil
Nette Blogger | 1034
+
0
-

Chyba 500 má vždycky nějakou příčinu. Nenapoví ti Laděnka? Nebo error log?

Vůbec se mi tam nelíbí to podtržítko. Jestli se pokoušíš o překlad, injectni si do presenteru Nette\Localization\ITranslator a zavolej nad ním translate:

if (!$this->user->isAllowed('Topic', 'delete')) {
	$this->error($this->translator->translate('For this operation, you do not have sufficient permissions.'), \Nette\Http\IResponse::S403_FORBIDDEN);
}
Tirus91
Člen | 199
+
0
-

@s4manuel → s vypnutym debuggerem to delalo to same ;)

@jiri.pudil → již vyřešeno, nemohl jsem najít php error log a pak jsem ho našel v rootu mé apliky

s tou lokalizací, jak to přímo funguje? nějak jsem to moc z dokumentace nepobral :( on standardně využívá gettext?

s4muel
Člen | 92
+
0
-

a kde bol problem teda?

Tirus91
Člen | 199
+
0
-

s4muel napsal(a):

a kde bol problem teda?

Problém byl, že se snažil najít ErrorPresenter tam kde vůbec nebyl :) …

Tirus91
Člen | 199
+
0
-

@jiri.pudil → jak na ten translator? :(

jiri.pudil
Nette Blogger | 1034
+
0
-

on standardně využívá gettext?

On standardně nevyužívá nic. Nette samo od sebe poskytuje jen rozhraní ITranslator. Jeho implementaci si buď musíš napsat sám, nebo sáhnout po nějaké již existující.