dotaz ohledně přístupů, jak řešit fronted / admin část
- tatyalien
- Člen | 239
Předem se omlouvám za lamovost, ale nevím si rady v tomto:
Většina mých výtvorů (www stránek) naprogramovaná mimo nette se
zkládala z toho, že byla část stránek pro všechny dostupná. Bylo tam
možnost se i přihlásit (ve veřejné části). Po přihlášení se
přidělila role.
bez role – > pouze viditelná část pro všechny
- role 1 → možnost přístupů na určité části webu + spouštění akcí, editace vlastního nastavení
- role 2 → něco jako mini admin, možnost vše co role 1 + možnost editovat role 1 (mimo ostatních rolí 2)
- role 3 → hlavní admin, možnost co role 1+2 a navíc editace role 2.
V Nette jsem si rozchodil acl systém dle návodu. Ale teď řeším jinou věc, pokud bych chtěl mít stejnou strukturu. Tak bych musel převést přihlašování z admin části do front části a pak jen dle toho na co má uživatel právo dodal do menu odkazy na admin části webu. Protože mě přijde zvláštní všem na webu zobrazoat link na přihlášení do admin modulu.
Teď má otázka, pokud bych přesunul přihlašování do front části,
musím vše co je v návodu (přihlašování) přehodit na front?
Nebo jak se to má řešit?
Co jsem koukal tak je i možnost https://doc.nette.org/cs/0.9/dynamicka-sprava-roli-a-zdroju ale to jsem si zatím jen přečetl a nešťoural se v tom..
- Aurielle
- Člen | 1281
Pokud tě chápu správně – přihlášení je globální pro celou aplikaci, pokud si nestanovíš jiný namespace. Pokud například chceš, aby se uživatel přihlásil a při oprávnění na vstup do administrace prošel přihlášením znovu (ověřil heslo), tak nastavíš rozdílné namespace a i když bude uživatel ve front části přihlášený, bude se muset přihlásit do admin části. Vše ostatní funguje stejně.
- tatyalien
- Člen | 239
Tak stejně se zeptmám,
mám už to předělané do front (přihlašování), přihlášení mě
funguje, ale když zkouším ručně se dostat na
stránku (nepřihlášen) admin/user/ která se směřuje na
admin/preseneter/UserPresenter.php, tak se samozřejmně
zapojí kontrola, zda mám na stránky přístup (abstract class
Admin_SecuredPresenter extends BasePresenter). Jak mám v tomto
presenteru ale nastavit při chybě ať se zobrazí přihlašovací obrazovka
z frontu?
Měl jsem zde nastavené:
$this->redirect(‚Auth:login‘, array(‚backlink‘ ⇒ $backlink));
Zde samozřejmně naskočí laděnka, protože Admin_Front_loginPresenter
neexistuje.
To Auth:login samozřejmě se směřuje na Admin_Front_loginPresenter (uložené má být AdminModule/presenter/), ale já bych potřeboval na Front_AuthPresenter (ten je uložen v FrontModule/presenter/)
Editoval tatyalien (7. 1. 2011 22:03)
- tatyalien
- Člen | 239
A snad na delší dobu poslední dotaz,
vunguje vše jak má, jen při zaplé laděnce se mě zobrazují 2 errory,
aplikace funguje, jen takovej ten error dole… oboje obsahují:
PHP Warning: Illegal offset type in isset or empty in …\libs\Nette\Security\Permission.php:92
Zobrazují se od té doby, co jsem si dodal do šablony:
<?Php
Test viditelnosti linků na Admin_PagePresenter<br />
{if isset($user)}
{if $loggedUser->isAllowed(‚Admin_PagePresenter‘, $user->roles)}
Povolený odkaz na <a href=„{plink :Admin:Page:}“>Administrace
stránek</a>
{else}
žádný povolený odkaz…
{/if}
{/if}
?>
Jestli to je jen chyba, že uživatel není (isset) tak mě to srdce nedrásá…