Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Latwe nadawanie praw
Forum PHP.pl > Forum > PHP > Frameworki
zeta758
Witam,

nie bardzo wiem jak sie do tego zabrac i wiem ze na pewno duzo pocztkujacych z ZEND FRAMEWORK tak ma. Prosze o pomoc w rozwiązaniu problemu.

Mógłby ktoś poratować jak zrobić (super jeśli byłby przykład):
1. tworzenie uzytkowników - admin, gość, zwykly uzytkownik
2. możliwość definiowania który użytkownik ma dostęp do którego kontrolera i akcji w danym kontrolerze
3. panel do logowania i jak to sie ma logowanie do tych praw.
4. Jak rozwiazac problem taki: jest kontroler artykul/pokaz/id/123 i dostepny jest dla wszystkich ale tylko dla zalogowanych jest przycisk "komentuj" i moze komentowac?

Prosze o pomoc, wielu na tym uzytkowników forum skorzysta.

Pozdrawiam
M
konys
Zend_Acl - autoryzacja
Zend_Auth - autentykacja
Manual to całkiem niezły początek zabawy...
zeta758
jest taki artykul: http://akrabat.com/zend-auth-tutorial/
  1. <?php
  2. if ($result->isValid()) {
  3. // success : store database row to auth's storage system
  4. // (not the password though!)
  5. $data = $authAdapter->getResultRowObject(null, 'password'); questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?
  6. $auth->getStorage()->write($data); questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
  7. $this->_redirect('/');
  8. $this->view->message = 'Logowanie powiodlo sie.';
  9. } else {
  10. // failure: clear database row from session
  11. $this->view->message = 'Login failed.';
  12. }
  13. ?>


Zakładam ze to jest tylko sprawdzanie czy ktos sie zalogowal czy nie - nie rozumiem co znacza te 2 linie które oznaczylem pytajnikami. Zakladam ze te dane musze sie gdzies zapisywac - do sesji??
1. Jeśli chcialbym zapisać do sesji to sesje startuje w public_html/index.php questionmark.gif
2. co musze napisac w tych linijkach z pytajnikami w takim przypadku?
3. Jak sprawdzić pozniej czy ktos sie zalogowal?? - jak odwolac sie do sesji i sprawdzic?
konys
Znowu odsyłam do manuala. Dla ułatwienia - w podanym tutorialu parę linijek wyżej masz:
  1. <?php
  2. $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
  3. ?>
zeta758
ok, krok do przodu smile.gif

Wiem juz do czego to sluzy. Ale teraz trzeba to zapisac do sesji, prawda? bo mi sie zalogowal ale jak przeszedlem na inna strone i wrocilem to juz nie pamietal ze sie zalogowal. Jak to mozna zapisac do sesji.

I prosze jeszcze o slowo komentarza czy uzywac session czy session_namespace questionmark.gif

czym to sie tak w jednym zdaniu rozni?? zeby nie nadpisać przez przypadek czy jak?

thx
konys
W manualu sesji jest opisane stosowanie sesji i ich rozpoczynanie. W dalszej części jest osobny paragraf poświęcony wykorzystaniu sesji dla potrzeb autoryzacji. Dodatkowo tutaj znajdziesz bardziej szczegółowy opis Zend_Session_Namespace.
MarcinTryka
Ehhh... szkoda ze manual przekazuje tylko sucha wiedze i jak ktos zaczyna z tym frameworkiem, to przejdzie przez jeden dzialajacy polski tutorial typu tworzenie katalogu plyt bez jakichg kolwiek zabezpieczen, ucieszy sie, a pozniej zlapie za glowe bo kompletnie nie wie jak sie zabrac do czegos wiekszego. Tak jest min. ze mna. Wszystko ladnie piekniue, tylko jak w tym tak naprawde programowac.

Dorzuce swoje pytanie czy jezeli chce zrobic panel administracyjny to mam napisac poza ZF ? w jakims katalogu z wylaczonym mrod_rewrite, czy w podkatalogu z ZF, czy wreszcie, mam nie robic osobnego katalogu, tylko wszystko zrobic razem a za pomoca acl i auth kontrolowac kto ma do czego dostep i wyswietlac tylko te mozliwosci do ktorych user ma dostep (moim zdniem bylaby to rzeź na wydajnosci zrobiona niepotrzebnie(,
A moze zrobic osobny kontroler Admin? I:

mojastrona.pl/admin/plytacd/add
mojastrona.pl/admin/plytacd/edit/id/....
mojastrona.pl/admin/plytacd/del/....

Ale to moim zdnaiem jest bez sensu. kontroler ciagle ten sam, a akcja "plytacd"? Srednio mi sie to podoba.

Napialbym panel administracyjny kazda z powyzszych metod, ake kazda kolejna ma coraz wiecej wad i nie mam pojecia jak sie to powinno pisac. Mimo iz szukam juz pare dni w necie tutoriali. Albo sa banalnie proste, albo zaglebiaja sie wjakichs szczegolikach chwilowo dla mnie nieistotnych. Ja ja ciagle nie wiem jak to projektowac ...
dEF
Cytat(MarcinTryka @ 30.07.2007, 21:33:41 ) *
Ehhh... szkoda ze manual przekazuje tylko sucha wiedze i jak ktos zaczyna z tym frameworkiem, to przejdzie przez jeden dzialajacy polski tutorial typu tworzenie katalogu plyt bez jakichg kolwiek zabezpieczen, ucieszy sie, a pozniej zlapie za glowe bo kompletnie nie wie jak sie zabrac do czegos wiekszego. Tak jest min. ze mna. Wszystko ladnie piekniue, tylko jak w tym tak naprawde programowac.

Dorzuce swoje pytanie czy jezeli chce zrobic panel administracyjny to mam napisac poza ZF ? w jakims katalogu z wylaczonym mrod_rewrite, czy w podkatalogu z ZF, czy wreszcie, mam nie robic osobnego katalogu, tylko wszystko zrobic razem a za pomoca acl i auth kontrolowac kto ma do czego dostep i wyswietlac tylko te mozliwosci do ktorych user ma dostep (moim zdniem bylaby to rzeź na wydajnosci zrobiona niepotrzebnie(,
A moze zrobic osobny kontroler Admin? I:

mojastrona.pl/admin/plytacd/add
mojastrona.pl/admin/plytacd/edit/id/....
mojastrona.pl/admin/plytacd/del/....

Ale to moim zdnaiem jest bez sensu. kontroler ciagle ten sam, a akcja "plytacd"? Srednio mi sie to podoba.

Napialbym panel administracyjny kazda z powyzszych metod, ake kazda kolejna ma coraz wiecej wad i nie mam pojecia jak sie to powinno pisac. Mimo iz szukam juz pare dni w necie tutoriali. Albo sa banalnie proste, albo zaglebiaja sie wjakichs szczegolikach chwilowo dla mnie nieistotnych. Ja ja ciagle nie wiem jak to projektowac ...

Mozesz stworzyc modul o nazwie admin -> http://framework.zend.com/manual/en/zend.c...er.modular.html
W tym module potworzysz sobie kontrolery odpowiedzialne za zarzadzanie.
Dzieki temu mozesz stworzyc zupelnie oddzielny design dla panelu administracyjnego (poniewaz skrypty widoku sa oddzielnie).
Rowniez latwiej jest cos takiego zabezpieczyc. W domyslnym module kontrolery beda odpowiadac tylko za pobieranie danych z bazy i wyswietlanie. Dopiero w module administracyjnym, ktory sobie zabezpieczysz ACL'em, kontrolery beda zajmowaly sie zarzadzaniem danymi.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.