11.10.2006, 13:02 | #1 |
Участник
|
Права доступа
Здравствуйте уважаемые.
Кто-нибудь ставил перед собой и уже решил следующие задачи: - объединение нескольких групп пользователей в одну новую? Спорный вопрос, но .... - нахождение пользователей имеющих доступ на определенный отчет ( к примеру требуется найти список пользователей имеющих доступ к отчеты - ГК-Отчеты- Анализ счета). Наверно не многие делают права доступа в отдельности к каждому отчеты(запросу). Заранее благодарен. P.S. Все подсказки, а возможно и модификации - приветствуются.
__________________
Александр |
|
11.10.2006, 13:10 | #2 |
program-ёр
|
Не понятен смысл объединения
__________________
Становись лучше |
|
11.10.2006, 18:06 | #3 |
Участник
|
__________________
Александр |
|
11.10.2006, 18:20 | #4 |
Участник
|
Разберитесь как работает отчет
Главное меню \ Администрирование \ Отчеты \ Контроль доступа \ Права пользователей. Обратите внимание, что в Аксапте права устанавливаются не на отчет, а на menuItem. Один и тот же отчет может вызываться несколькими разными menuItem'ами. Будьте внимательны и осторожны. Информацию о menuItem можно получить при помощи сейчаства классов Dict... |
|
26.10.2006, 16:39 | #5 |
Участник
|
mazzy - пытаюсь разобраться, но пока не оченб получается.
Получить список главного меню у меня уже получается: static void aaa_13(Args _args) { TreeNode mainMenu=TreeNode::findNode("\\Menus\\MainMenu"); TreeNodeIterator i=mainMenu.AOTIterator(); TreeNode item=i.next(); //TreeNode item=i.reset(); ; while(item) { info(item.TreeNodeName()); item=i.next(); // item = i.reset(); } } А получить список подменю каждой строки главного меню не получается. Туплю. Может быть кто-нибудь подскажет? Заранее благодарен.
__________________
Александр |
|
26.10.2006, 17:00 | #6 |
Administrator
|
Ну смысл-то объединять группы пользователей в одну - есть. Например в случае реорганизации групп прав. Наплодили и захотели структурировать или перегруппировать. Конечно - это нерегулярная задача - однако вполне реальная.
Соответственно - и объединить права в одну группу - дело возможное. Правда парой строчек кода здесь не обойтись. Собсно идея/алгоритм объединения. 1. Берем 3 группы: одну новую (№3) и две старые (№1 и №2) (для простоты подразумеваем что домен один). 2. Берем таблички AccessRightsList, SysSecurityFormTable, SysSecurityFormControlTable (предполагаю, что RLS либо не используется, либо объединяться будет вручную). 3. Копируем записи, у которых стоит группа №1 в записи у которых стоит группа №3. 4. Копируем записи, у которых стоит группа №2 в записи у которых стоит группа №3 с проверкой - если такая запись уже существует с тем же или большем уровнем доступа - то не копируем. Если же доступ есть, но меньший - то увеличиваем доступ. 5. Не забываем перечитать права (класс SysSecurityUserGroup, метод load)
__________________
Возможно сделать все. Вопрос времени |
|
27.10.2006, 10:34 | #7 |
Участник
|
Цитата:
Сообщение от sukhanchik
Собсно идея/алгоритм объединения.
1. Берем 3 группы: одну новую (№3) и две старые (№1 и №2) (для простоты подразумеваем что домен один). 2. Берем таблички AccessRightsList, SysSecurityFormTable, SysSecurityFormControlTable (предполагаю, что RLS либо не используется, либо объединяться будет вручную). 3. Копируем записи, у которых стоит группа №1 в записи у которых стоит группа №3. 4. Копируем записи, у которых стоит группа №2 в записи у которых стоит группа №3 с проверкой - если такая запись уже существует с тем же или большем уровнем доступа - то не копируем. Если же доступ есть, но меньший - то увеличиваем доступ. 5. Не забываем перечитать права (класс SysSecurityUserGroup, метод load) А что касается предыдущего вопроса ?
__________________
Александр |
|
27.10.2006, 10:43 | #8 |
Участник
|
Посмотрите реализацию Sidax, к примеру.
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
права доступа | 9 | |||
Права доступа Группы пользователей к таблице | 2 | |||
Отсутсвуют права доступа к UserGroupList | 4 | |||
Права доступа на поля формы. | 6 | |||
Права доступа - Журнал платежей | 1 |
|