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
Старый 02.06.2020, 20:09   #2  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Отбой. Все заработало после полного db sync (хотя могу поклясться. что он был не первый).
Теги
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:20.