запрос в 4 таблицы
получаем список модулей для группы
-- id =1 --
Array ( [id] => 1 [group] => 5 [name] => test5 [gid] => 5 [mid] => 1 [module] => test1 )
Array ( [id] => 2 [group] => 5 [name] => test5 [gid] => 5 [mid] => 2 [module] => test2 )
Array ( [id] => 3 [group] => 5 [name] => test5 [gid] => 5 [mid] => 3 [module] => test3 )
-- id =2 --
Array ( [id] => 4 [group] => 4 [name] => test4 [gid] => 4 [mid] => 4 [module] => test4 )
Array ( [id] => 5 [group] => 4 [name] => test4 [gid] => 4 [mid] => 5 [module] => test5 )
Showing rows 0 - 2 (3 total, Query took 0.0006 sec)
быстро работает кстати
Koenig, ништяк. т.е я так понял предлагаешь сразу в глобальной переменной сохранить список и далее уже с ним работать. как то я сразу не додумался, спасибо.
Screamer, можно сериализовать массив ид модулей в сессию например, ну там уже сам придумаешь
Используй булевые маски, на пример - 00101011 - и конъюкцию или дизъюкцию при совмещении ролей
Роль 1 - 0001
Роль 2 - 0010
две роли разом дают на пример вот такую маску 0011
а в коде проверка
if($mask & 0001)
делаем что то
if($mask & 0010)
делаем еще что то
Тут модули не зависят от ролей, а знают только маску, а роли позволяют формировать эту маску
Delphinum, этo kaждый нoлиk уpoвeнь дocтyпa нaпpимep
0001 - рeдakтиpoвaниe
0010 - удaлeниe
0100 - зaпиcь
0110 - удaлeниe зaпиcь
a ecли eщe 1 уpoвeнь дoбaвить пpидeтcя вce пpoвepkи пpaвить?
Delphinum, вовремя
предлагаешь заново все перепиливать? Спасибо, как нибудь в другой раз. Мне пока этого хватает. Все равно спасибо за наводку, ка нибудь поиграюсь на досуге
dakilla, как правило разделение скрипта по уровням допуска создает 2-4 вариации не очень отличающиеся друг от друга. Зачем использовать разряд для записи, для удаления и др. когда можно использовать один разряд сразу для группы функций? Шести разрядов более чем достаточно, в крайнем случае добавление еще одного не потребует изменения кода совершенно