Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zend_auth Wyświetlanie danych dla poszczególnego użytkownika.
cykcykacz
post
Post #1





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


Witam,
korzystam z Zend_auth.
Mam role:
-user
-admin

Dodaję artykuły i jak zrobić aby user widział tylko swoje a admnistrator wszystkie?
Wystarczy prosta instrukcja warunkowa:
  1. if($role = 'admin')
  2. fetchALL
  3. else
  4. fetchrowbyID


Ten post edytował cykcykacz 4.03.2012, 18:30:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Najprościej utworzyć do tego celu kolejną warstwę w Modelu, który będzie decydował co zwrócić w zależności od tego co dostanie w setAuth()
  1.  
  2. public function init() {
  3.  
  4. $this->modelX = new Model_X();
  5. $this->modelX -> setAuth(User_Auth:: getRole());
  6. }
  7.  
  8. public function viewAction() {
  9.  
  10. $this->modelX -> fetch();
  11. }
  12.  
  13. public function editAction() {
  14.  
  15. $this->modelX -> update();
  16. }


  1. class Model_X extends Dodatkowa_warstaw_modelu {
  2.  
  3. public function fetch() {
  4.  
  5. // _role to obiekt User_Auth:: getRole()
  6. if($this->_role -> showAll === TRUE) {
  7.  
  8. return $this -> fetchAll();
  9. }
  10. else {
  11.  
  12. return $this -> fetchRow();
  13. }
  14. }
  15. }


Dzięki temu nie zaśmiecasz kontrolera a całą logikę zrzucasz na model. Pewnie istnieją bardziej wyszukane metody jak DI, wywoływanie metod / klas w zależności od roli itp. itd ale ten sposób wydaje się być najprostszy w późniejszej edycji
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: 24.08.2025 - 18:13