olechafm
22.09.2012, 20:57:58
przy założeniu, że mam określony kontent strony generowany przez metodę kontrolera np. wyświetlanie (nie nie mylę z widokiem to skrót myślowy) na stronie boxu z linkami zaloguj/rejestruj (dla użytkowników niezalogowanych) lub wyloguj (dla użytkowników zalogowanych), metoda inicjuje widok wstawia do niego linki które są przez widok renderowane do htmla i wyświetlane
w którym miejscy i w jaki sposób zdecydować na podstawie tego czy użytkownik jest zalogowany jaki kontent mu wyswietlić? w widoku? w modelu w trakcie pobierania? czy juz w samym kontrolerze i wtedy dostosowywac to jakie dane pobiore z modelu i jak wyswietle w widoku?
w odniesieniu do tego przykładu, jak zarządzać w konkretnych metodach o tym jaki kontent mają wygenerowac, logowanie oparte np. o sesje, struktura a'la HMVC czyli wiele kontrolerów, dla każdego modułu strony osobny osobny kontroler
zarządzam już uprawnieniami dostępu dla użytkoników zalogowanych i niezalogowanych do danego kontrolera oraz jego konkretnych metod na podstawie tablicy uprawnień
Crozin
22.09.2012, 21:21:18
1. Mechanizm uwierzytelniania i autoryzacji raczej nie powinien mieć nic wspólnego z logowaniem użytkownika czy jego sesją. A przynajmniej nie powinien mieć bezpośredniego związku.
2. Sprawdzanie uprawnień to przykład jednej z tych rzeczy, która jest rozwalona po dosłownie całej aplikacji. Nic nie stoi na przeszkodzie by w szablonie sprawdzić czy użytkownik jest zalogowany (posiada odpowiednie uprawnienia) celem wyświetlenia linka "Zaloguj się" bądź "Wyloguj się".
olechafm
23.09.2012, 11:06:40
nie do końca rozumiem punkt 1.
jeśli np. używam smarty do tpl'i to moge w widoku przed wyrenderowaniem zdecydowac jakie dane podam szablonowi na podstawie tego czy jest zalogowany czy nie
skowron-line
23.09.2012, 11:17:08
W widoku sprawdzaj co ma być wyświetlone. Utwórz sobie helper w którym będziesz odwoływał sie do modelu w którym sprawdzasz czy user jest zalogowany.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.