|
![]() |
#1 |
Участник
|
Цитата:
менюайтем функции, доступ к которому нужно параметризировать в зависимости от способа открытия формы
|
|
![]() |
#2 |
Administrator
|
Цитата:
В общем случае - только так. Но ответ на конкретный вопрос зависит от того, что из себя представляет "способ открытия формы", от которого зависит доступность пункта меню. 1. Если один и тот же пользователь должен иметь доступ к пункту меню или не иметь в зависимости от "способа открытия формы" - то да, такой случай только программируется. Пример: Открытие справочника клиентов из меню или же из меню "Просмотр подробных сведений" 2. Если "способ открытия формы" четко разделен по пользователям и каждый конкретный пользователь имеет только "свой способ", в котором пункт меню либо доступен, либо недоступен - то доступность пункта меню можно настроить через привилегии без программирования. Пример: журнал ОС и общий журнал ГК. Технически - это разные пункты меню, но одна и та же форма. При этом кнопка "Строки" очевидно ссылается на разные пункты меню.
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#3 |
Участник
|
Наверное не корректно написал.
Чтобы было проще. У формы PriceDiscTableList есть 2 menuitem: PriceDiscTableList_Cust и PriceDiscTableList_Vend. Они добавлены в разные роли с разным уровнем доступа (Read и Correct) На форме есть menuitem PriceDiscClose. Мне нужно дать доступ к функцию только если форма открыта c уровнем доступа Correct. Я реализовал через securityRights.menuItemAccessRight(SecurableType::MenuItemDisplay, element.args().menuItemName()) >= AccessRight::Correction, но подумал можно ли сделать красивее настройками. |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от 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). |
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Участник
|
Т.е. у пользователь одновременно оба пункта меню для вызова формы доступны? С разным уровнем доступа? Тогда на уровне настроек прав доступа эту задачу не решить
![]() Уровень доступа - это некая константа. Определяется в момент открытия приложения как комбинация настроек по разным ролям и привилегиям для выбранного пользователя. Поэтому на всех формах будет одинаковый уровень доступа для тех или иных объектов. Играться с динамическим изменением уровня доступа - плохая идея. Очень сильно усложнит сопровождение приложение и изменение настроек Если нужно именно менять уровень доступа, а не просто делать видимым/доступным пункт меню на форме, то я бы пошел по пути создания 2 пунктов меню с разными привилегиями и при открытии формы делать видимым нужный пункт меню (с нужным уровнем доступа). Ну, или подменять MenuItem.menuItemName(), хотя это хуже в сопровождении PS: В общем случае, лучше вообще делать 2 разные формы. Со своим дизайном и своими пунктами меню. Одна форма на чтение, другая - на изменение. При дальнейшем развитии приложения сложность кода для сопровождения "единой" формы начнет расти очень сильно.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#7 |
Участник
|
|
|