AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.09.2010, 17:38   #1  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от IKA Посмотреть сообщение
Добавлена кнопка(именно button), на стандартной форме . К кнопке привязан ключ LedgerMisc и к MenuItemу, вызывающему форму, тоже. Можно ли как-нибудь сделать так, чтобы по умолчанию доступа к кнопке не было у юзеров, даже если есть все права на ключ LedgerMisc.
Сталкивались с аналогичной задачкой. Но не просто для кнопок, а для более общего случая – для таблиц, полей, пунктов меню и т.д. Ситуация была аналогичная – при создании нового элемента в репозитарии (например кнопки), к нему автоматически имели доступ (соответствующего уровня) все пользователи, которые имели доступ к ключу доступа, который был прописан для этого элемента. Происходит так, потому что в аксапте (при проверке прав) используется принцип: все что не запрещено - разрешено. Поэтому, если для пункта меню (кнопки, таблицы, ...) явно не прописать запрет доступа, то он будет доступным всем пользователям, у кого есть соответствующие права на ключ безопасности, указанный для пункта меню; если ключ безопасности не указан – всем пользователям. У себя мы решили задачу следующим образом: при импорте проектов автоматически закрывается доступ ко всем «новым» элементам репозитария (определенных типов). Также добавили пункт контекстного меню «убрать доступ» для объектов, которые создаются руками, если возникает такая необходимость.

Посмотреть/изменить права для конкретного объекта возможно (с ньюансами) с помощью формы от Raven Melancholic: установка прав

Права лежат в таблицах AccessRightsList, SysSecurityFormTable, SysSecurityFormControlTable. Работа с AccessRightsList через классы, как указано в примере тут или напрямую. С SysSecurityFormTable, SysSecurityFormControlTable - через класс SysSecurityFormSetup.

P.S. SysSecurityFormTable + SysSecurityFormControlTable - права для контролов форм. AccessRightsList - для всего остального.

Последний раз редактировалось vallys; 21.09.2010 в 17:59.
Старый 21.09.2010, 18:00   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от vallys Посмотреть сообщение
Происходит так, потому что в аксапте (при проверке прав) используется принцип: все что не запрещено - разрешено.
Не совсем так. Все разрешения наследуются от ключа, к которому относится данный элемент. Поэтому при добавлении нового пункта меню доступ на него наследуется от ключа, к которому настроен доступ. Т.е. если доступа не было - он и не появится. Если был - появится.
Но наследование можно разорвать, изменив уровень доступа вручную. В этом случае в таблице AccessRightsList создастся запись, относящаяся к данному элементу. В этом случае изменение доступа к ключу не повлияет на уровень доступа к элементу (пункту меню, таблице).
К сожалению, есть примеры, когда на ключ вешают контрольки или само меню - в результате чего - невозможно пользоваться функционалом без включения самого ключа. Но в целом этим не пользуются.
__________________
Возможно сделать все. Вопрос времени
Старый 21.09.2010, 18:12   #3  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Не совсем так. Все разрешения наследуются от ключа, к которому относится данный элемент. Поэтому при добавлении нового пункта меню доступ на него наследуется от ключа, к которому настроен доступ. Т.е. если доступа не было - он и не появится. Если был - появится.
Да, конечно. Видимо я не совсем понятно высказался. "Не запрещено" - не только для элемента, а в целом в соответствии с политикой проверки прав Аксаптой (см. рис., источник: Microsoft TechNet - Manage security permissions for user groups and domain combinations)
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Но наследование можно разорвать, изменив уровень доступа вручную. В этом случае в таблице AccessRightsList создастся запись, относящаяся к данному элементу. В этом случае изменение доступа к ключу не повлияет на уровень доступа к элементу (пункту меню, таблице).
Да. Именно потому что для новых объектов нет записей в AccessRightsList - для них используются права соответсвующего ключа доступа, если таковые имеются.
Миниатюры
Нажмите на изображение для увеличения
Название: Aa570104_MenuItemAccessFlow(en-US,AX_50).gif
Просмотров: 523
Размер:	13.8 Кб
ID:	6165  

Последний раз редактировалось vallys; 21.09.2010 в 18:25.
Теги
menuitem, security, права доступа

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Права доступа и переименование andriy_s DAX: Администрирование 2 20.07.2010 13:34
Права RLS и складские аналитики. Выбор партии вешает клиента bobski DAX: Функционал 4 22.09.2009 09:08
Права группы пользователей Apollon33 DAX: Администрирование 8 17.01.2008 14:16
Не сохраняются права группы madproger DAX: Администрирование 4 02.10.2006 01:14
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:26.