Dynamic AX 4.0 用户组权限SecurityKey
UserId _userId = "IT001";
UserGroupId _userGroupId = "ABC_1";
DomainId _domainId="DH";
DataAreaId _companyId = "CG";
SecurityKeyset _SecurityKeyset;
AccessType _newAccessType = AccessType::Edit;
AccessType _curAccessType;
str _MenuItemName = "SalesTable";
; _SecurityKeyset = new SecurityKeyset();
//begin user group security set
_SecurityKeyset .loadGroupRights(_userGroupId ,_domainId);
//获取销售单画面的访问权限
_curAccessType = _SecurityKeyset.menuItemAccess(_MenuItemName , AccessRecordType::MenuItemDisplay); //给销售单画面赋权限
_SecurityKeyset.menuItemAccess(_MenuItemName , AccessRecordType::MenuItemDisplay,_newAccessType ); //带第三个参数表示修改权限。
//Save 权限
xAccessRightsList::saveSecurityRights(se.packTouched(),_userGroupId , _domainId); //begin user group security set
_SecurityKeyset .loadUserRights(_userId,_companyId );
//获取用户销售单画面的访问权限
_curAccessType = _SecurityKeyset.menuItemAccess(_MenuItemName , AccessRecordType::MenuItemDisplay);
若想将一个用户组的权限完全复制给另外一个用户组。
SecurityKeyset seSource; UserGroupId groupSource,groupDest;
DomainId domainId = "DH";
;
groupSource = "Test1";
groupDest ="Test2";
seSource = new SecurityKeyset();
seSource.loadGroupRights(groupSource,domainId); xAccessRightsList::saveSecurityRights(seSource.pack(), groupDest, domainId );//复制到新组Test2
扩展一下,可以得到某对象所有用户组的权限,并导出到Excel,以供IT审计。这在权限检查中非常有用,节省一个个打开看的时间了。
另,在后头涉及到权限的table\AccessRightsList, 同时我们可以做一个hotfix,加一个新的table\AccessRightsListLog,记录用户对权限的修改,以便后面追查。
table\AccessRightsListLog表结构。
CREATE TABLE [dbo].[ACCESSRIGHTSLISTLOG](
[GROUPID] [nvarchar](10) NULL,
[DOMAINID] [nvarchar](10) NULL,
[RECORDTYPE] [int] NULL,
[PARENTID] [int] NULL,
[ID] [int] NULL,
[ELEMENTNAME] [nvarchar](40) NULL,
[ACCESSTYPE] [int] NULL,
[ACCESSTYPEFKEYUSE] [int] NULL,
[MODIFIEDDATE] [datetime] NULL,
[MODIFIEDTIME] [int] NULL,
[MODIFIEDBY] [nvarchar](5) NULL,
[CREATEDDATE] [datetime] NULL,
[CREATEDTIME] [int] NULL,
[CREATEDBY] [nvarchar](5) NULL,
[RECVERSION] [int] NULL,
[RECID] [bigint] NULL,
[USERID] [nvarchar](10) NULL,
[LOGTYPE] [nvarchar](3) NULL,
[LOGDATE] [datetime] NULL
)
附AccessRightsList\RecordType的枚举值列表。
附AccessRightsList\AccessType的枚举值列表。
Dynamic AX 4.0 用户组权限SecurityKey的更多相关文章
- 20140425 malloc和new不同 dynamic何时返回0
1.malloc/free和new/delete区别 http://blog.csdn.net/hackbuteer1/article/details/6789164 相同点:都可用于申请动态内存和释 ...
- 修改webserver站点用户组权限
例如webserver站点目录为webtest 搭建nginxwebserver服务器的时候,默认的用户和用户组权限为nginx:nginx, 即nginx.conf 和php-frm.conf 中默 ...
- Android 6.0 - 动态权限管理的解决方案
Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担. 动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应 ...
- Report processing of Microsoft Dynamic AX
Report processing of Microsoft Dynamic AX 版权声明:本文为博主原创文章,未经博主允许不得转载. The implementation of a general ...
- Android6.0获取权限
照着<第一行代码>打代码,然并卵,感叹技术进步的神速.最后提醒一点:IT类的书籍一定要注意出版时间!出版时间!出版时间!重要的事情说三遍 问题出在android6.0的权限获取问题上,以前 ...
- xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题)
xcode7.3 升级 xcode8.0 后权限设置问题(升级xcode 8.0 后构建版本不显示问题) 前两天为了适配 iOS10 的系统 我将xcode 7.3 升级到了 xcode 8.0 但是 ...
- MongoDB 3.0安全权限访问控制(Windows版)
MongoDB 3.0安全权限访问控制(Windows版) 1.首先,不使用 –auth 参数,启动 mongoDB: mongod --dbpath "d:\mongodb\data\db ...
- Android 6.0之权限管理
安卓6.0的权限体系分为非敏感权限和敏感权限,非敏感权限默认获取,可以手动关闭. 敏感权限必须由app在运行时动态申请.而存储读写空间权限是一个敏感权限,不是一个“很正常的必须权限”. 安卓并不是想要 ...
- Android 6.0的权限问题
Android 6.0的权限获取不同于别的版本,具体的实例如下: if (ContextCompat.checkSelfPermission(this, Manifest.permission.REA ...
随机推荐
- RMQ问题(线段树+ST算法)
转载自:http://kmplayer.iteye.com/blog/575725 RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ ...
- ADO.NET基础(增删改查)
ADO.NET是一种数据访问技术,就是将C#和MSSQL连接起来的一个纽带.可以通过ADO.NET将内存中的临时数据写入到数据库中,也可以将数据库中的数据提取到内存中供程序调用. ADO.NET是所有 ...
- centos nginx环境下删除CI框架Index.php入口遇到404问题
今天在网上百度看了很多文章,想要去掉index.php入口文件有好多方法,自己也照着在网站到根目录下新建了一个.htaccess文件,内容如下: RewriteEngine On RewriteCon ...
- 转-- WebView使用实例(html5、文件下载和远程URL)
在Android中有WebView Widget,它内置了WebKit引擎,同时,WebKit也是Mac OS X的Safari网页浏览器的基础.WebKit是一个开源的浏览器引擎,Chrome浏览器 ...
- BloomFilter–大规模数据处理利器(转)
BloomFilter–大规模数据处理利器 Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法.通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求1 ...
- mysql索引之四(索引使用注意规则:索引失效--存在索引但不使用索引)
但是如果是同样的sql如果在之前能够使用到索引,那么现在使用不到索引,以下几种主要情况: 1. 随着表的增长,where条件出来的数据太多,大于15%,使得索引失效(会导致CBO计算走索引花费大于走全 ...
- df、du、fdisk:Linux磁盘管理三板斧的使用心得(转载)
From:http://os.51cto.com/art/201012/240726_all.htm 作者介绍:李洋(博客),博士毕业于中科院计算所.10多年来一直从事计算机网络信息安全研发工作,曾主 ...
- [ActionScript 3.0] LocalConnection示例
下例包含两个 ActionScript 类,这两个类应当编译到两个单独的 SWF 文件中: 在 LocalConnectionSenderExample SWF 文件中,将创建 LocalConnec ...
- mysql 怎么登录
mysql -uroot -p回车后,输入密码,再回车即可.如果自己没有修改的话,默认密码为空.
- c# WinForm加载焦点
1.c# WinForm在加载时把焦点设在按钮上 this.AcceptButton = button1; 这样在WinForm窗口中, 按钮的状态会变成窗口的默认按钮, 只要按下Enter键,就会触 ...