parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Вопросы по назначению прав

Rafael 28.06.2006 11:58

Вопрос касается класса авторизации. Заранее извиняюсь за напряги:
но вопросы вида: "что такое битовые операции?", "что такое битовая маска?", "как на её основе узнать права?" и т.п. - проигнорирую.
1. Метод @getRightsToObject[]
Нашел в форуме следующий код:
^rem{ *** достаем данные о текущем документе *** }
$current_object[^MAIN:pSQL.sql[table]{
	SELECT
		page_id AS id,
		parent_id,
		thread_id,
		irf,
		...
	FROM
		page
	WHERE
		path = '$request:uri'
}]

^rem{ *** достаем данные о текущем треде *** }
$thread[^MAIN:pSQL.sql[table]{
	SELECT
		page_id AS id,
		parent_id,
		irf,
		...
	FROM
		page
	WHERE
		thread_id = $current_object.thread_id
}]

^rem{ *** достаем назначения прав текущему пользователю на все объекты треда *** }
$acl[^auth_data.getFullACL[$thread]]

^rem{ *** определяем права авторизированного пользователя на объект *** }
$effective_right(^auth_data.getRightsToObject[$current_object;$thread;$acl])
Возникает вопросы:
1. Права назначаются по ID объекта?
> если мне необходимо работать с несколькими таблицами (новости, таблица разделов, таблица фотографий) то ID у строк разных таблиц могут совпадать

2. Как разбивать число "16777215"
Мои знания в области битовых опираций ограничиваются операциями над битами (or, xor, and) и правилами перевода из одной единици измерения в другую.
Однако (задаю вопрос, т.к. боюсь, что "само-копанием" могу изобрести велосипед, который ездит не в ту сторону),
как из 16777215 получить например 01 01 01 01, разобраться пока не могу. Различные шаманства, вроде разбивки на блоки 16 77 72 15 результата не дали

Спасибо за внимание