Forums / National / Russian / Тех. поддержка / дожились? или права пользователей

Sergey
#22698 2010-02-05 06:23
Это как раз и обозначает, что в таблице sed_pages я добавил поле page_rights в котором и записываю код доступа к строке. Обозначив соответственно биты, как нам надо, можно и будет производить такую выборку.

Однако в котонти осуществлен только групповой доступ к категории. Для этого надо сформировать по правам доступа некоторый массив допусти $all_cat, в котором будут перечислены все категории где данный юзер может читать страницы (имеет нужное право доступа). Затем, этот массив превратить в строку типа Len_cat=cat1,cat2,...catn. в MySQL есть замечательная функция
FIND_IN_SET(str,strlist) 
Возвращает значение от 1 до N, 
если строка str присутствует в списке strlist, состоящем из N подстрок. 
Список строк представляет собой строку, состоящую из подстрок, разделенных символами `,'. 
Если первый аргумент представляет собой строку констант, 
а второй является столбцом типа SET, функция FIND_IN_SET() 
оптимизируется для использования двоичной арифметики! Возвращает 0, 
если str отсутствует в списке strlist или если strlist является пустой строкой. 
Если один из аргументов равен NULL, возвращается 0. 
Данная функция не будет корректно работать, 
если первый аргумент содержит символ `,':
в strlist загоняем Len_cat, а str наше поле page_cat . Это я так гипотетически. Следует принять во внимание, что возвращает номер cat из Len_cat

Добавлено 17 Минут спустя:

Кстати в функции function sed_auth($area, $option, $mask = 'RWA') есть замечательный фрагмент:
			if(is_array($usr['auth'][$area]))
			{
				foreach($usr['auth'][$area] as $k => $g)
				{
					$cnt += (($g & $mn[$ml]) == $mn[$ml]);
				}
			}
где как раз можно и подобрать эти категории $area.
Как быть со всей толпой, соответственно и для толпы есть категория гость.
www.cotonti.mobi

Dit bericht is bewerkt door Sergey (2010-02-05 06:45, 15 jaren ago)