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

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 | 1035
+
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 | 1035
+
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í.

RSS tématu Téma zavřeno