Показать сообщение отдельно
Старый 06.12.2011, 22:30   #17  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
!
Цитата:
Сообщение от Kabardian Посмотреть сообщение
Спасибо за много разных и интересных вариантов :-), но были причины:
  • отчетов было много (больше 100);
  • нужно было обойтись с минимумом разработки, чтобы не тратить много времени на тестирование.
Используя подход описанный на Axaptapedia, написал джоб для массового отключения прав доступа к menuitem, чуть позже выложу его здесь.
Будьте предельно осторожны с джобом по ссылке! Последствия в моем случае:
  • слетели права доступа для многих групп пользователей к различным таблицам
  • значительно замедлилась система


Использовал оттуда кусок кода для каждого сочетания группа + домен:
X++:
void disableMenuItems(SecurityKeySet _securitySet)
    {
        str name;
        AccessRecordType recordType;
        int idx;
        AccessType accessType;
        for (idx = 1; idx <= conLen(menuItems); idx++)
        {
            [name, recordType] = conpeek(menuItems, idx);
            accessType = _securitySet.menuItemAccess(name, recordType);
            if (accessType!= AccessType::NoAccess)
            {
                info(strFmt('%1:%2, %3', name, recordType, accessType));
                _securitySet.menuItemAccess(name, recordType, AccessType::NoAccess);
            }
        }
    }

Пока точная причина неизвестна, тем не менее решил предупредить, мало ли вдруг все-таки этот джоб виноват .


Как выясню причину, сообщу.
За это сообщение автора поблагодарили: Logger (1).