Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] ACL - jak implementować?
-lkjhg-
post
Post #1





Goście







Jak zaimplementować ACL w swoich projektach?

Np. zend ma coś takiego

  1. $acl = new Zend_Acl();
  2. // Dodajemy rolę - Gość
  3. $acl->addRole(new Zend_Acl_Role("Guest"));
  4. // Dodajemy rolę - Użytkownik - i dziedziczymy z Gościa
  5. $acl->addRole(new Zend_Acl_Role("User"), "Guest");
  6. // Dodajemy rolę - Moderator - i dziedziczymy z Użytkownika
  7. $acl->addRole(new Zend_Acl_Role("Moderator"), "User");
  8. // Dodajemy rolę - Administrator - nie dziedziczymy
  9. $acl->addRole(new Zend_Acl_Role("Administrator"));


To jest dla mnie logiczne, ustawiam to np w index.php Jednak gdzie definiować kontrolę dostępu i gdzie sprawdzać? Mógłby to ktoś tak łopatologiczne wyjaśnić? Oparłem wszytko o MVC... To np. mam sprawdzać czy moderator jest moderatorem w którym momęcie? np w routerze? czy klasa którą wywołałem ma dziedziczyć po tym Zend_Acl?
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Nie w routerze, w kontrolerze sprawdzasz czy ma uprawnienia do wykonywania danej akcji.
Go to the top of the page
+Quote Post
-asdads-
post
Post #3





Goście







Ale w routerze mam coś takiego...

  1. $xx = new XX;
  2. $xx->metoda();


Czyli że w klasie XX w __construct mam sprawdzić to? I tak mam to zapisywać do każdej klasy?
Go to the top of the page
+Quote Post
-Gość-
post
Post #4





Goście







Mógłby ktoś napisać to badziej dokładnie? W którym miejscu i jak to sprawdzić.
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Wiesz co to kontroler? Kontroler ma akcje (metody) i wywołując taką metodę sprawdzasz w niej czy zalogowany ma uprawnienia do jej wykonania, czy to zapis np. newsa czy odczyt listy użytkowników.
Go to the top of the page
+Quote Post
-Gość-
post
Post #6





Goście







Aha, czyli wszystkie motody (no prawie) powinny mieć na początku coś takiego:

  1. class Super
  2. {
  3. public function metoda_dodaj()
  4. {
  5. $acl-> isValid('metoda_dodaj')
  6. {
  7. // kod który się wykonuje gdy jest dostęp
  8. return true;
  9. }
  10. }
  11. }


A w którym momencie dodawać te reguły? w konstruktorze klasy?
Go to the top of the page
+Quote Post
amii
post
Post #7





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Tu masz to dobrze wytłumaczone: http://blog.wilgucki.pl/2011/05/zend_acl-w-praktyce.html
Go to the top of the page
+Quote Post

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: 23.08.2025 - 17:57