[przemyślenia] Sposób kontroli dostępu do stron

0

Tak sobie glosno mysle nad sposobem dostepu do poszczegolnych stron. We frameworku znajduje sie klasa ACL. Napisalem rowniez dla 4programmers.net klase auth, ktora rozszerza mozliwosci klasy ACL. Tzn. pobiera z bazy danych informacje o grupach, userach i ich prawach i wstawia do ACL. Wszystko pieknie ladnie, ale meczace jest za kazdym razem sprawdzanie, czy user ma do tego dostep. Mamy np. panel usera, na ktory sklada sie kilka stron (dane, preferencje, CV, portfolio, wiadomosci prywatne). URL'e maja postac User/(id)/(nazwa kontrolera), czyli np. /User/143/Pm (wiadomosci prywatne). Wiemy, ze do tych stron dostep ma miec jedynie user, ktory jest wlascicielem konta. Myslalem nad czyms takim:

$auth = array(
        'ucp'   =>      array(
                'panel' => 'a_owner',
                'pm'    => 'a_owner'
        ),
        'acp'   =>      'a_',
        'forum' =>      array(
                'edit'  => array(
                        'poll'          => 'f_poll',
                        'smilies'       => 'f_smilies'
                )
        ),
        '*'     =>      array(
                'topic' => 'a_register'
        )
);

Przed wywolaniem faktycznej strony sprawdzane maja byc opcje dostepu. I tak wezmy pod uwage modul panela usera (ucp). Zarowno do kontrolera 'panel' jak i 'pm' dostep ma tylko wlasciciel. Z kolei do kontrolera 'topic' (ktory nie jest czescia zadnego modulu), ma dostep user z prawem a_register. Itd. itp.

Macie jakies sprawdzone, wygodne sposoby? Albo podpatrzone?

0

Nie pamiętam jak wygląda ten nowy framework, ale w Symfony jest to tak, że dla każdej akcji określasz jakie uprawnienia musi mieć user dla danej akcji. To było cos w ten deseń:

user/privatemessage:
    credentials: user admin
user/show:
    credentials: none

Dawno nie używałem Symfony, więc prawie na pewno coś pomieszałem, ale chyba ideę przekazałem ;) Lepszego rozwiązania dotąd nie znalazłem.

0

Hmm, no to podobnie jak ja to zaprezentowalem. Ale co w sytuacji gdy np. musimy dac uprawnienia osobie, ktora jest wlascicielem konta? Czyli ID = ID zalogowanego uzytkownika?

0
Adam Boduch napisał(a)

Hmm, no to podobnie jak ja to zaprezentowalem. Ale co w sytuacji gdy np. musimy dac uprawnienia osobie, ktora jest wlascicielem konta? Czyli ID = ID zalogowanego uzytkownika?

Mogłbyś napisać to jaśniej? Chodzi o odświeżenie uprawnień podczas gdy osoba jest zalogowana?

0

Zapewne chodzi o dostęp do swojego profilu. Czyli Potrzebne jest porównanie ID usera.

0

Tak, dokladnie tak jak mowi Nav.
Juz sobie poradzilem w inny sposob, ale zawsze chetnie wyslucham innych pomyslow ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1