Вы не зашли.
    
        
        
                имеются следующие методы:
Код:
| // Проверка доступа по группе | 
| public function isGroupAllowed($__right, $__access) | 
| { | 
| if (empty($__right) || empty($__access)) return false; | 
| if (in_array($__access, $this->getGroup($__right))) return true; | 
|  | 
| return false; | 
| } | 
| // Получение Группы | 
| public function getGroup($__right) | 
| { | 
| if (empty($__right)) return false; | 
|  | 
| for ($i=0;$i < count($this->__groups);$i++) | 
| { | 
| if (in_array($__right, $this->__groups[$i]['rights'])) | 
| { | 
| if (in_array($this->__groups[$i]['name'], $this->__group)) continue; | 
| $this->__group[] = $this->__groups[$i]['name']; break; | 
| } | 
| } | 
|  | 
| return array_unique($this->__group); | 
| } | 
При использовании проверки isGroupAllowed $__group наследуется, поэтому в группе получаются ложные данные. Пользователь попросту имеет права которые проверяются :-)
Как можно поправить? 
Я подумал и верным будет после проверки сбрасывать массив группы.
Код:
| if (in_array($__access, $this->getGroup($__right))) { $this->__group = array(); return true; } | 
Это нормально?
        
        
                            
                ДАУН-Данная Аватара Унаследована Незнайкой
            
        
     
        
        
                1) почему ты добавляешь __ перед названием переменных? на сколько я помню это не рекомендуемые названия
2) добавь phpDoc, непонятно, что за переменные вообще
3) for ($i=0;$i < count($this->__groups);$i++) // ну, не мог не доколупаться)
4) getGroup - это не геттер, а сеттер получается. т.е. setGroup
5) я бы отдельный метод написал вообще, наверное
        
        
                
    
 
        
        
                1. Приму к сведению,  __ чисто "красиво")
2. Я пока опять с телефона, придется изучать понятия
3. Это перебор всех групп в поисках принадлежности прав к группе
4. setGroup уже есть) Он выступает в роли addGroup, добавление новых
5. Не понял? Без участия getGroup?
Добавлено спустя   3 минуты  44 секунды: и грубо говорю это мои попытки написания классов, поэтому тонкостей не знаю - пишу "как есть"
        
        
                            
                ДАУН-Данная Аватара Унаследована Незнайкой
            
        
     
        
        
                вот текущий вариант, не доделан ещё
                            
    Вложения
    
        
            
            acl.zip
            
            1kb
[
загрузок: 805]        
    
         
        
                            
                ДАУН-Данная Аватара Унаследована Незнайкой
            
        
     
        
        
                1) по Zend стандартам на приватные и защищенные методы и свойства отводится ОДНО подчеркивание вначале.
3) count выполняется на каждую итерацию в цикле
4) в любом случае, твой getGroup не выполняет роли геттера, он задает значение переменной $this->__group - следовательно это сеттер.
5) да
        
        
                
    
 
        
        
                ок, переделаю. Но тогда придется вставить код getGroup без return. Более выхода не замечаю
Тогда что делает get?
        
        
                            
                ДАУН-Данная Аватара Унаследована Незнайкой
            
        
     
        
        
                НЕЗНАЙКА написал:
придется вставить код getGroup без return
нет, тебе нужно сделать чтобы геттер не выполнял роли сеттера, т.е. не делал 
$this->__group[] = $this->__groups[$i]['name'];гет - возвращает данные, но не присваивает)
        
        
                
    
 
        
        
                ясно. Тогда смотри, лучше использовать класс чисто для одного пользователя и гет будет выдавать group. А что придумать, если нужно узнать группу для другого пользователя (в админ панели)? Написать разные методы getGroup и getUserGroup, где usergroup не перезаписываются значения?
        
        
                            
                ДАУН-Данная Аватара Унаследована Незнайкой
            
        
     
        
        
        
                        
                        #10.
            2010
                                                Off
                
                                                    (1)
                                                            
                        Участник
                        2012.05.07 20:08
                                                
                                                        
 
                НЕЗНАЙКА, кстате, в цикле лучше использовать sizeof чем count.
Она работает быстрее чем конт, если что...
Я всегда только sizeof использую) да и не только в цикле
        
                            
                Отредактировано 2010 (2012.05.07 20:08)