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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.06.2020, 18:46   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
D365 security subrole X++
Задача: ограничить пользователя от ввода отрицательных сумм в платежном журнале с помощью роли или привилегии.
Подзадача: новая роль или привилегия должна быть автоматом включена в стандартную рол "менеджер".

Решение: была создана новая роль "менеджер возврата", принадлежность к которой проверяется в ключевых моментах работы с платежным журналом.

Однако возникла непредвиденная проблема: роль "менеджер возврата" была добавлена как sub-role к роли "менеджер", и вот оттуда она не видна.

Так роль видна если она добавлена в роли пользователя:
X++:
select AotName from securityRole
            join securityUserRole
            where securityUserRole.User == axUserId
            && securityUserRole.SecurityRole == securityRole.RecId
            && securityRole.AotName == _roleName;
А вот так роль видна в AX2012 если она добавлена как под-роль в одну из уже назначенных ролей:
X++:
select  securityUserRole
				where securityUserRole.User == axUserId
			join securityRole   //manager
			join securitySubRole
				where securitySubRole.SecurityRole == securityRole.RecId
				&& securityUserRole.SecurityRole == securityRole.RecId
                              
            join securityRole_subrole  //return manager
				where  securitySubRole.SecuritySubRole == securityRole_subrole.RecId
                && securityRole_subrole.AotName == _roleName;
А вот в D365 запрос ничего не находит!!!!

Исследования доступных таблиц и представлений показал, что таблица SecuritySubRoles содержит только стандартные под-роли, и отображаются они по-другому, например, system user роль имеет под-роль office integration power user - это можно увидеть в списке ролей юзера в выпадающем из роли списке.

Однако из формы security configuration роль system user не имеет ничего в subroles.

Для моей кастомной роли "менеджер" все наоборот - он отображается одной строкой в ролях пользователя, несмотря на то, что он имеет под-роль, и в security configuration под-роль видна.

В АОТ обе роли выглядят одинаково.

Вопрос следующий - как найти является ли заданная роль подролью одной из уже назначенных ролей пользователя.

Update: SysUserManagement::userHasRole(curUserId(), #Role) тоже ненаходит подроль.

Последний раз редактировалось alicedr; 02.06.2020 в 19:38. Причина: update
Теги
d365, security role, securitysubrole, subrole

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
patrickmouwen: How to Unlock Many Hidden D365 Retail Features! Blog bot DAX Blogs 0 13.05.2020 22:13
patrickmouwen: D365 Retail APIs Part III: How to use the Retail APIs from Power Automate (Flow) and Logic App Blog bot DAX Blogs 0 28.01.2020 02:15
patrickmouwen: D365 Retail APIs Part II: How to know exactly what happens inside D365 Retail Blog bot DAX Blogs 0 14.12.2019 01:17
stoneridgesoftware: Core Differences in Security Implementation between Dynamics AX and Dynamics 365 for Operations Blog bot DAX Blogs 0 01.04.2017 02:17
Inside Dynamics AX 4.0: The Security Framework Blog bot DAX Blogs 0 31.10.2007 11:40

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

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

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