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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.03.2022, 20:03   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,288 / 3495 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от DesparioN Посмотреть сообщение
Это как то можно реализовать с помощью настроек или только через код?
Для ответа мало входящих данных.
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Обычно это просто делают через метод .enabled() у контрола кнопки
В общем случае - только так.

Но ответ на конкретный вопрос зависит от того, что из себя представляет "способ открытия формы", от которого зависит доступность пункта меню.
1. Если один и тот же пользователь должен иметь доступ к пункту меню или не иметь в зависимости от "способа открытия формы" - то да, такой случай только программируется. Пример: Открытие справочника клиентов из меню или же из меню "Просмотр подробных сведений"
2. Если "способ открытия формы" четко разделен по пользователям и каждый конкретный пользователь имеет только "свой способ", в котором пункт меню либо доступен, либо недоступен - то доступность пункта меню можно настроить через привилегии без программирования. Пример: журнал ОС и общий журнал ГК. Технически - это разные пункты меню, но одна и та же форма. При этом кнопка "Строки" очевидно ссылается на разные пункты меню.
__________________
Возможно сделать все. Вопрос времени
Старый 18.03.2022, 20:13   #2  
DesparioN is offline
DesparioN
Участник
 
84 / 15 (1) ++
Регистрация: 21.10.2014
Наверное не корректно написал.
Чтобы было проще. У формы PriceDiscTableList есть 2 menuitem: PriceDiscTableList_Cust и PriceDiscTableList_Vend. Они добавлены в разные роли с разным уровнем доступа (Read и Correct)
На форме есть menuitem PriceDiscClose. Мне нужно дать доступ к функцию только если форма открыта c уровнем доступа Correct.

Я реализовал через securityRights.menuItemAccessRight(SecurableType::MenuItemDisplay, element.args().menuItemName()) >= AccessRight::Correction, но подумал можно ли сделать красивее настройками.
Старый 18.03.2022, 23:53   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,665 / 1172 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от DesparioN Посмотреть сообщение
Наверное не корректно написал.
Чтобы было проще. У формы PriceDiscTableList есть 2 menuitem: PriceDiscTableList_Cust и PriceDiscTableList_Vend. Они добавлены в разные роли с разным уровнем доступа (Read и Correct)
На форме есть menuitem PriceDiscClose. Мне нужно дать доступ к функцию только если форма открыта c уровнем доступа Correct.
А что не получается-то? У Вас же не вопрос разных уровней доступа, а просто отображать пункт меню на форме или нет.

1. Для пункта меню PriceDiscClose создаешь привилегию с уровнем доступа Correct
2. Включаешь эту привилегию в ту роль, которая открывает форму с уровнем доступа Correct. Я так понимаю, это роль PriceDiscTableList_Vend

Собственно, все. Если форма открыта через роль с уровнем доступа Read, то пункт меню вообще не будет отображаться на форме. Поскольку контролирующая этот пункт меню привилегия в роль на чтение не включена.

Могут быть накладки, если пункт меню включен в несколько привилегий или одна привилегия включена в несколько ролей. Но, насколько я понимаю, здесь такая задача не ставиться

PS: Я исхожу из предположения, что для пользователя назначена только какая-то одна роль. Или на чтение или на изменение. Если для одного и того же пользователя назначены обе роли, то без программирования не получится
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 18.03.2022 в 23:57.
За это сообщение автора поблагодарили: sukhanchik (4), Pandasama (2).
Старый 20.03.2022, 00:32   #4  
DesparioN is offline
DesparioN
Участник
 
84 / 15 (1) ++
Регистрация: 21.10.2014
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
PS: Я исхожу из предположения, что для пользователя назначена только какая-то одна роль. Или на чтение или на изменение. Если для одного и того же пользователя назначены обе роли, то без программирования не получится
Как раз второй вариант
Старый 21.03.2022, 10:52   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,665 / 1172 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от DesparioN Посмотреть сообщение
Как раз второй вариант
Т.е. у пользователь одновременно оба пункта меню для вызова формы доступны? С разным уровнем доступа? Тогда на уровне настроек прав доступа эту задачу не решить Только программировать

Уровень доступа - это некая константа. Определяется в момент открытия приложения как комбинация настроек по разным ролям и привилегиям для выбранного пользователя. Поэтому на всех формах будет одинаковый уровень доступа для тех или иных объектов. Играться с динамическим изменением уровня доступа - плохая идея. Очень сильно усложнит сопровождение приложение и изменение настроек

Если нужно именно менять уровень доступа, а не просто делать видимым/доступным пункт меню на форме, то я бы пошел по пути создания 2 пунктов меню с разными привилегиями и при открытии формы делать видимым нужный пункт меню (с нужным уровнем доступа). Ну, или подменять MenuItem.menuItemName(), хотя это хуже в сопровождении


PS: В общем случае, лучше вообще делать 2 разные формы. Со своим дизайном и своими пунктами меню. Одна форма на чтение, другая - на изменение. При дальнейшем развитии приложения сложность кода для сопровождения "единой" формы начнет расти очень сильно.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Теги
права доступа, привилегия

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Настройка прав доступа в DAX2009 raz DAX: Администрирование 6 03.11.2011 10:11
Настройка прав доступа только для чтения Kabardian DAX: Администрирование 3 22.06.2009 10:41
Настройка прав доступа на уровне записей Pan DAX: Администрирование 19 12.11.2006 11:10
Настройка прав доступа dinai DAX: Администрирование 7 18.08.2006 16:32
Настройка прав доступа к строкам журнала ордеров Valery DAX: Администрирование 14 20.05.2005 18:13

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:13.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.