Witam zabardzo juz sobie sam namieszalem i gubie sie przy prostych warunkach i sam juz nie wiem o co kaman, dlatego potrzebuje waszej pomocy.
Mam tablice:
  1. protected $role = array(
  2.  
  3. 'user' => array(
  4.  
  5. 'newsmani' => array(
  6.  
  7. 'AddNews',
  8. 'EditNews'
  9.  
  10. )
  11. ),
  12.  
  13. 'admin' => array(
  14.  
  15. 'default' => array(
  16.  
  17. 'ReadNews'
  18.  
  19. ),
  20.  
  21. 'newsmani' => array(
  22.  
  23. 'parents' => 'default',
  24. 'Add' => true,
  25. 'Edit' => true,
  26. 'DeleteNews'
  27.  
  28.  
  29. )
  30. )
  31.  
  32. );
  33.  

I tak loguje sie mam grupe admin i role newsmani(nie patrzcie ze admin ma newsmani bo jak narazie pracuje tylko na admin i guest wiec to tylko podczas testow).
No i teraz mam funckje isAllowed() ktora zawsze mi zwraca true jak bym nie kombinowal, oczywiscie funckja jak narazie ma w sobie wszystko tzn jedna funckja w klasie robi wszystko to sie zmienie jak narazie chce zrobic tak by dzialalo:
http://3paste.com/hash/0ea8471fc02bf4b5678a0c13f7b0a023
Prosze sie nie smiac z funckji ale od 2 dni kombinuje wszystko byloby latwe gdyby ustawienia akcji w rolach ograniczalyby sie tylko do nazwy funckji ktora moze byc wykonana, jednak chce zrobic to bardziej elastyczne czyli dana rola moze dziedziczyc po innej i to dziala.
Potem chce gdy ustawie w danej roli Add => true to wszystkie funckje ktore maja w sobie Add czyli (AddNews,AddComment etc....) moge byc wykonywane przez dana role.
No i w ogole patrzac na kod i tablice mozna sie domyslic co chce osiagnac, jednak nie wychodzi mi to, nie ogarniam juz.
To co jest w else if($this -> RolesParents[0] != '*') { takjakby nie dzialalo do tego if'a wchodzi bo debugowalem kod jednak warunki nie do konca dzialaja.
Bo dla kazdej akcji zwraca mi true nawet jak wpisze jako akcje SDADSSAF to da mi true.

To jak pomoze ktos?

ZNa ktos prosty sposob na to by w tablicy danej grupy i jej roli moglbym ustawic wszystkie akcje Add i np Edit dla danej roli i jak to potem sprawdzic bo kombinuje ale niezbyt mi to wychodzi.