Nefunkční ověření role v šabloně
- Taps
- Člen | 168
Zdravím, přes databázi mám vytvořeno přihlašování uživatelů do
aplikace. Každý uživatel má ve sloupci db nastaveno právo
1 = admin
2 = uzivatel
V šabloně jsem chtěl zobrazit zvlášt odkazy pro admina a zvlášt pro uživatele. Zkusil jsem tedy aplikovat metodu isInrole, ale v podmínce mi to nefunguje.
zkusil jsem tedy kontrolní výpis promměnnýchh
{var_dump($user->getRoles())} vrací array(1) { [0]=> int(1) }
{var_dump($user->isInRole('1'))} vrací bool(false)
Mohl by mi prosím někdo poradit kde by mohl být problém a proč se mi pro ověřování vrací false? Děkuji
Editoval Taps (24. 8. 2023 14:48)
- NouF
- Člen | 67
Ahoj, neznám celou tvou app, možná není nejšťastnější způsob používat čísla pro role.
Já si vytvořím konstantu ROLE_ADMIN = ‚admin‘, ROLE_USER = ‚user‘, ROLE_GUEST = ‚guest‘ a v latte využívám konstanty (abych si nemusel dohledévat, jestli je 1 admin nebo uživatel)
Ale dle dat co si poslal, to působí, že getRoles existuje tvá role, ale je to jako INT (číslo), ale v isInRole(‚1‘) to pošleš jako string ‚1‘, tak proto to nezafunguje. Zkus tohle $user->isInRole(1) jestli to hodí true.
- Marek Bartoš
- Nette Blogger | 1261
isInRole() přijímá jen string. Řešení je vkládat do rolí uživatele pouze stringy.