parser

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

 

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

Вопрос ушел в пустоту - прилось изобретать велосипед....

Rafael 28.06.2006 17:04 / 28.06.2006 18:01

Создал таблицу вида:
id - идентификатор объекта
table_name - название таблици
record_id - строка в таблице

В которую прописываю необъодимые мне строки таблиц, к которым есть желание ограничить доступ.

Далее, создал метод:
# метод получения прав на таблицу
@getRightstoTable[table_name;user_id]
$usersUsers[$user_id]
$userGroups[^auth.getUserGroups[$user_id]]
^userGroups.menu{$usersUsers[$usersUsers, $userGroups.group_id]}

^rem{получаем набор объектов по указанной таблице}
$objTable[^MAIN:pSQL.table{
		SELECT
			id,
			record_id
		FROM
			t_objects
		WHERE
			table_name = "$table_name"
}]
^if($objTable){
	$objetsList[^objTable.menu{$objTable.id}[, ]]
	$acl[^auth.getACL[$objetsList;$usersUsers]]
	^rem{формируем таблицу прав на строки таблици $table_name}
	$rightsTable[^table::create{record_id	object_id	rights	auser_id	name	auser_type_id	user_rights}]
	^acl.menu{
		^if(^objTable.locate[id;$acl.object_id]){
			^rightsTable.append{$objTable.record_id	$acl.object_id	$acl.rights	$acl.auser_id	$acl.name	$acl.auser_type_id	$acl.user_rights}
		}
	}
	^if($rightsTable){$result[$rightsTable]}{$result[]}
}{
	$result[]
}
Метод "топорный", но для начала хватит...