Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rozwiązanie problemu z dostępem
mma
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.11.2007

Ostrzeżenie: (0%)
-----


Witam!
Od pewnego czasu poznaje mvc i natrafiłem na ciekawy tutorial na http://www.phpit.net/article/simple-mvc-php5/ .
Bardzo mi podeszło to co tam jest przedstawione - myśle, że na początek jest idealne. I, że będe to mugł (mvc) wykorzystywać jako podstawe w kolejnych aplikacjach PHP.

Ale do rzeczy, przechodząc przez ten tutorial - przerabiając cześciowo itp. , zastanawia mnie jeden fakt...
Jak zrobić dosęp do panelu administracyjnego , chciałbym to zrobić w ruterze no i właśnie, nie za bardzo wiem który z pomysłów wybrać.
Mam dwa pomysły na dzień dzisiejszy - jeden to sytuacja w którym sprawdzany jet czy podkatalog w sciezce jest katalogiem administracyjnym
np:
  1. <?php
  2. //$parts - cześci ścieżki np admin/index, admin =>[0] index=>[1]
  3. if ($parts[0] == ADMIN_FOLDER) {
  4. if (!($this->_registry->auth->isLoggedIn() && $this->_registry->user->isAdmin()))
  5. $this->redirect('index');
  6. }
  7. ?>

Powyższa sytuacja zdaje się być dobra gdy użytkownika zaogowany to admin i nikt więcej.

Drugie rozwiązanie to system praw zapisywanych/odczytywanych z bazy danych (zserializowana tabela).

W ruterze wykonywana by była funkcja mapująca (ja to tak widze) - sprawdzająca otrzymaje prawa z powiązaniami prawo - kontroler.

Jeśli ktoś się zastanawia o co mi chodzi, to chodzi o to czy ma ktoś jakies inne pomysły na rozwiązanie tego zadania, które można by tak w około >80% używać w przyszłości.
Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Właśnie o taki komentarz mi chodziło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jeszcze muszę sobie pomyśleć nad tym, ale zauważ jedno, że druga propozycja klasy CustomAuthorizationAction niewiele różni się od tego co ja podałem. A to dlaczego? Bo w isAuthorized() pobierasz dane, potem w execute() sprawdzasz do nich dostęp, przy braku wywołujesz getAuthErrorView(), a przy powodzeniu doExecute().
Ale ogólnie jest ciekawe rozwiązanie, bo rozbijamy działanie na parę metod, które robią pewne fragmenty.
Mimo wszystko bym dodał metodę init() (czy jak jakkolwiek zwać) która by pobierała dane potrzebne do wywołania isAuthorized(), aby ta metoda nie robiła nic więcej niż sprawdzała czy ma dostęp.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 15:14