Показать сообщение отдельно
Старый 12.11.2006, 17:48   #12  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от belugin Посмотреть сообщение
Лучше раскажите нам зачем всё это нужно, а то лично мне кажется, что вы выбрали не тот контейнерный класс.

Например, чем вам не нравится Array, если вы все равно ищете не по ключу? Если вы внутри цилка не вызываете im.next(), как у вас получается конечный цикл?
Если интересно, слушайте ....

Исторически сложилось, что права пользователям настраивались по-операционно (к примеру - на складские журналы). Для этого нужны права на то, другое и т.д. Потом, оказалось, что это неудобно по нескольким причинам. В итоге получилось, что права на некоторые пункты меню - пересекаются.
Чтобы контролировать процесс, необходимо знать в каких правах групп пользователей имеется доступ на что-то конкретное (отчет, журнал, справочник).
Как решить данную проблему?
Сначала потытался выяснить на форуме, как строится дерево при отображении прав доступа на группу пользователей, чтобы попытаться использовать его. Но так и не выяснил.
Прочитал, что права хранятся в таблицах AccessRightsList и еще двух.
Если в таблице права группе пользователей даны на ключ(таблицу), то это значит что права распространяются на все подчиненные этому ключу пункты (к примеру ключ на отчеты главной книги - распространяетсяна все отчеты главной книги), хотя это не есть факт, а как это отследить не разобрался.
Если права даны на конкретные отчеты подключенные к этому ключу, но на сам ключ прав нет, то они отображаются в таблице. ну и т.д.
Осталось вытащить по коду ключа его название, а также к какому отчету (запросы, журналу) он привязан. А затем построить запрос по таблицам AccessRightsList , UserGroupList, UserGroupInfo , UserInfo в качестве параметра введя название отчета, журнала, справочника и т.д. получая на выходе имена пользователей и группы пользователей в которых имеется доступ (полный, чтение и т.д) на этот отчет.

Список свойств MenuItem, SecurityKey и т.д. решил сохранять в МАП Вот вроде и все.
Возможно я решаю данную проблему не так, но по другому пока не научился.

Я так - немного балуюсь Аксаптой.
Поиск, который посоветовали не работал, поэтому придумал, что придумал
Про array - не знаю почему не пользуюсь. Программисты посоветовали - мап. Раньше сохранял в таблицу, но в рабочей базе не хочется - это переделка функционала, а это не мой профиль.

Ошибку посмотрю
Спасибо за участие.
__________________
Александр