列出在Dynamics ax 2009中具有给定表权限的所有用户

时间:2018-10-26 11:52:01

标签: axapta dynamics-ax-2009

我有一些自定义表,该表是几年前由公司在我们的环境中实现的。

我需要列出用户及其对该表的权限。 我发现有关ACCESSRIGHTSLIST的表具有我想要的所有内容,例如组以及相关的用户。

问题在于此列表不完整,用户可以在ACCESSRIGHTSLIST找到的组之外修改/查看此表。

我知道dicttable.rights()会做的很好,但是我不能在此处指定用户,它仅对正在执行代码的用户进行验证。

我基本上需要的是dicttable.rights(someUserID),但是由于我看不到使用哪种机制可以被录音,所以我陷入了困境。

我在AX 2009中工作。

2 个答案:

答案 0 :(得分:1)

相反,创建一个static server方法并使用runas命令来调用它,在这里runas您想要的其他用户。

请参阅:

或在系统中搜索示例代码。

答案 1 :(得分:1)

我现在没有访问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));