Цитата:
Сообщение от
IKA
Добавлена кнопка(именно button), на стандартной форме . К кнопке привязан ключ LedgerMisc и к MenuItemу, вызывающему форму, тоже. Можно ли как-нибудь сделать так, чтобы по умолчанию доступа к кнопке не было у юзеров, даже если есть все права на ключ LedgerMisc.
Сталкивались с аналогичной задачкой. Но не просто для кнопок, а для более общего случая – для таблиц, полей, пунктов меню и т.д. Ситуация была аналогичная – при создании нового элемента в репозитарии (например кнопки), к нему автоматически имели доступ (соответствующего уровня) все пользователи, которые имели доступ к ключу доступа, который был прописан для этого элемента. Происходит так, потому что в аксапте (при проверке прав) используется принцип: все что не запрещено - разрешено. Поэтому, если для пункта меню (кнопки, таблицы, ...) явно не прописать запрет доступа, то он будет доступным всем пользователям, у кого есть соответствующие права на ключ безопасности, указанный для пункта меню; если ключ безопасности не указан – всем пользователям. У себя мы решили задачу следующим образом: при импорте проектов автоматически закрывается доступ ко всем «новым» элементам репозитария (определенных типов). Также добавили пункт контекстного меню «убрать доступ» для объектов, которые создаются руками, если возникает такая необходимость.
Посмотреть/изменить права для конкретного объекта возможно (с ньюансами) с помощью формы от
Raven Melancholic:
установка прав
Права лежат в таблицах AccessRightsList, SysSecurityFormTable, SysSecurityFormControlTable. Работа с AccessRightsList через классы, как указано в
примере тут или напрямую. С SysSecurityFormTable, SysSecurityFormControlTable - через класс SysSecurityFormSetup.
P.S. SysSecurityFormTable + SysSecurityFormControlTable - права для контролов форм. AccessRightsList - для всего остального.