|
02.06.2020, 18:46 | #1 |
Участник
|
D365 security subrole X++
Задача: ограничить пользователя от ввода отрицательных сумм в платежном журнале с помощью роли или привилегии.
Подзадача: новая роль или привилегия должна быть автоматом включена в стандартную рол "менеджер". Решение: была создана новая роль "менеджер возврата", принадлежность к которой проверяется в ключевых моментах работы с платежным журналом. Однако возникла непредвиденная проблема: роль "менеджер возврата" была добавлена как sub-role к роли "менеджер", и вот оттуда она не видна. Так роль видна если она добавлена в роли пользователя: X++: select AotName from securityRole join securityUserRole where securityUserRole.User == axUserId && securityUserRole.SecurityRole == securityRole.RecId && securityRole.AotName == _roleName; 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; Исследования доступных таблиц и представлений показал, что таблица 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 |
Участник
|
Отбой. Все заработало после полного db sync (хотя могу поклясться. что он был не первый).
|
|
Теги |
d365, security role, securitysubrole, subrole |
|
|