Как получить список наборов прав?

7. WooDvord 30.04.10 12:29 Сейчас в теме
Хм... У меня вопрос такого же смысла. Вот я смотрю роль. Справа список объектов, слева права для вида объекта. Скажем для документов список один, а для справочников справочников он похож, но имеет ещё одно право или не имеет. Вот как получить этот список в виде списка в конфигурации ,для того,чтобы автоматически подставлять циклом в ПравоДоступа()? Я прочитал выше написанное и засомневался, но решил переспросить, вообще такое возможно?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. Ёпрст 1063 30.04.10 12:36 Сейчас в теме
(2) хорошь пугать автора содержимым компаунда :)

ЗЫ: даже тут валяется куча поделок для получения всех прав на все объекты..
9. Ёпрст 1063 30.04.10 12:38 Сейчас в теме
Да и способов вагон - через ПравоДоступа... через парсинг текстового файлика , полученного из описания конфигурации, через ВКЮ коих вагон и маленькая тележка, через средства для работы с компаундом - gcomp/activemd/compaund.dll и др..
10. Diamond 1193 19.07.06 20:14 Сейчас в теме
Как получить список наборов прав созданные в конфигурации. Через Метаданные вроде как не получается.
11. Abadonna 3960 20.07.06 06:45 Сейчас в теме
Компаундный файл users.usr, хранилище Page.2, поток
Container.Contents.
На дельфи выглядит так:
OleCheck(RootStg.OpenStorage(StringToOLEStr('UserDef'), nil, OF_READWRITE or STGM_SHARE_EXCLUSIVE, nil, 0, UD1));
OleCheck(UD1.OpenStorage(StringToOLEStr('Page.2'), nil, OF_READWRITE or STGM_SHARE_EXCLUSIVE, nil, 0, UD3));
OleCheck(UD3.OpenStream(StringToOleSTR('Container.Contents'), nil, STGM_READWrite or STGM_SHARE_EXCLUSIVE, 0, Strm));
OS := TOleStream.Create(Strm);
GetMem(newbuff, OS.size);
OS.ReadBuffer(Pointer(newbuff)^, OS.Size);
Получим строку вида:
{"Container.Contents",{"RightsEditorType","Page.A","Бухгалтер материальной группы",""},{"RightsEditorType","Page.1","Бухгалтер основные средства",""},{"RightsEditorType","Page.B","Бухгалтер производственной группы",""},{"RightsEditorType","Page.F","Бухгалтер расчетной группы",""},{"RightsEditorType","Page.E","Бухгалтер финансовой группы",""},....
12. Abadonna 3960 20.07.06 07:04 Сейчас в теме
Сорри, чуток соврал второпях: не в users.usr, а в самом файле метаданных
лежит этот поток. А в остальном - всё, как написал
13. Abadonna 3960 20.07.06 12:10 Сейчас в теме
14. Diamond 1193 20.07.06 18:39 Сейчас в теме
Спасибо. Так то мне ваще надо получить матрицу доступа:
какие наборы прав на что имеют доступ
а потом список пользователей и соответствующий им набор прав.
Так понимаю через метаданные это не получить, а жаль.
А ни одна внешняя компонента это не поддерживает?
15. Abadonna 3960 20.07.06 19:09 Сейчас в теме
Есть у меня и на тему как конкретные наборы прав расфигачить.
Надо последовательно открывать потоки Page.XX - это двоичные файлы, там определенные байты отвечают установлено разрешение или нет...
Как на картинке это выглядит...
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот