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 ...
随机推荐
- Filter 过滤器
1. config in web.xml 2. @Component 3. @WebFilter (filterName="LoginFilter", url-patterns= ...
- spark基础练习(未完)
1.filterval rdd = sc.parallelize(List(1,2,3,4,5))val mappedRDD = rdd.map(2*_)mappedRDD.collectval fi ...
- 文件 FIFO队列
<?php /** * Filefifo.php 文件型FIFO队列 */ class Filefifo { /** * $_file_data, 数据文件的路径 */ private $_fi ...
- MYSQL中replace into的用法以及与inset into的区别
在向表中插入数据时,我们经常会遇到这样的情况:1.首先判断数据是否存在:2.如果不存在,则插入:3.如果存在,则更新. 在SQL Server中可以这样处理: if not exists (selec ...
- Yii 框架ajax搜索分页
要想实现ajax搜索分页 其实很简单 第一步:在 Yii 框架自带的搜索和分页正常运行的情况下,在视图层
- 【收藏用】--切勿转载Java处理XML的三种主流技术及介绍
原帖地址 : http://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Markup Language) 意为可扩展标记 ...
- 日期选择控件-laydate
laydate控件非常简单易用,只需要调用一个个函数就可以轻松实现日期时间选择. <%@ page language="java" import="java.uti ...
- [SQL]声明触发器 <待整理>
./*声明触发器 create trigger dl_stu_mess4 on student for delete as declare @name_id int select @name_id=s ...
- poj 1860 Currency Exchange :bellman-ford
点击打开链接 Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16635 Accept ...
- [ZOJ 1009] Enigma (模拟)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1009 题目大意:给你三个转换轮,只有当第一个转换轮转动一圈后第二 ...