Перечислите всех пользователей, которые имеют разрешение для данной таблицы в Dynamics Axe 2009 - PullRequest
0 голосов
/ 26 октября 2018

У меня есть несколько пользовательских таблиц, которые были внедрены в нашей среде несколько лет назад.

Мне нужно перечислить пользователей и их разрешения для этой таблицы. Я нашел таблицу ACCESSRIGHTSLIST, в которой есть все, что я хочу, например, группы и, следовательно, связанные пользователи.

Проблема в том, что этот список неполон, пользователи могут изменять / просматривать эту таблицу за пределами групп, которые я нашел по ACCESSRIGHTSLIST.

Я знаю, что dicttable.rights () подойдет, но я не могу указать здесь пользователя, он проверяется только для пользователя, который выполняет код.

Что мне в основном нужно, так это dicttable.rights (someUserID), но, поскольку я не могу понять, какой механизм используется для диктовки, я застрял.

Я работаю в AX 2009.

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

У меня сейчас нет доступа к AX 2009, но, насколько я помню, вы сможете использовать системный класс SecurityKeySet.Проверьте, работает ли следующее:

SecurityKeySet  securityKeySet; 
AccessType      accessType;
UserId          userId      = curUserId();
TableId         tableId     = tableNum(CustTable);
;

securityKeySet = new SecurityKeySet(); 
securityKeySet.loadUserRights(userId);

accessType = securityKeySet.tableAccess(tableId);

info(strFmt('%1', accessType));
0 голосов
/ 26 октября 2018

Вместо этого создайте метод static server и используйте команду runas для его вызова, где вы runas нужных вам пользователей.

См .:

Или найдите в системе образец кода.

...