Я знаю, что vBulletin использует битпермы, я тоже их использовал, но когда я добрался до 10^63
, они перестали работать, он не обрабатывал бы числа, большие, чем это (это мой хост PHP).Что такое хорошая система разрешений?
Мне любопытно узнать, что myBB, PhpBB, IPB, Joomla
и другие скрипты в сети для систем разрешений, я действительно хочу использовать быструю настройку разрешения в моем скрипте. Прямо сейчас я внедрил переменную sql для каждого пользователя, называемую пермгруппами, и имел бы такое значение, как 1,4,5
, и каждый из этих номеров соответствует группе разрешений, которая имеет аналогичную переменную, называемую файлами canseepages 1,2,3,4,1,4,1,54,6,4,5,22,6,2,3,4,1,2
, которые соответствуют каждой странице, которую я имею.
Сначала я выбираю permgroups в PHP
Затем я использую PHP взорваться на permgroups
я сделать Еогеасп на каждой пермской группы пользователь может видеть
внутри Еогеасп я выполнить запрос SQL чтобы захватить canseepages переменных из группы разрешений
Я тогда приобщать это к переменной, так что я в конечном итоге с чем-то MASSIVE как
$variable = '1,2,3,4,5,6,7,8,9,2,22,55,44,55,33,44,11,44,33,44,11,33,44,'.
'22,33,44,11,22,33,44,33,11,22,33,44,33,22,33,44,55,44,'.
'55,54,26,77,84,645,345,233,11,4,11,3,32';
Эта переменная представляет все страницы, которые пользователю разрешено просматривать. Затем я взорву его в массив чисел, и я использую in_array()
, чтобы проверить, просматривается ли текущая страница, которую они пытаются просмотреть, внутри этого массива страниц, которые им разрешено просматривать.
Это довольно быстро, но я просто думаю, что должен быть более быстрый способ сделать все это в целом.
ролевого управления доступом? – Tower 2010-12-06 14:14:13