我有一些自定义表,该表是几年前由公司在我们的环境中实现的。
我需要列出用户及其对该表的权限。 我发现有关ACCESSRIGHTSLIST的表具有我想要的所有内容,例如组以及相关的用户。
问题在于此列表不完整,用户可以在ACCESSRIGHTSLIST找到的组之外修改/查看此表。
我知道dicttable.rights()会做的很好,但是我不能在此处指定用户,它仅对正在执行代码的用户进行验证。
我基本上需要的是dicttable.rights(someUserID),但是由于我看不到使用哪种机制可以被录音,所以我陷入了困境。
我在AX 2009中工作。
答案 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));