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 ...
随机推荐
- C/C++代码静态分析插件 SourceInsight_Scan
sourceinsight-scan 是一款集成在 SourceInsight 中的c/c++代码静态分析插件,集成了cppcheck,coverity,pclint等业界优秀的静态分析工具的优点. ...
- CSU 1803 2016(数论)
2016 Problem Description: 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量: 1≤a≤n,1≤b≤m; a×b 是 2016 的倍数. Input: 输 ...
- Python基础05 缩进和选择
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例. ...
- arm-linux-objdump
一.arm-linux-objdump常用来显示二进制文件信息,常用来查看反汇编代码二.常用选项:1.-b bfdname 指定目标码格式2.—disassemble或者-d 反汇编可执行段3.—di ...
- java程序内存使用
一.内存使用示意图 二.java运行时数据区域 1.程序计数器: 当前线程所执行字节码的行号提示器. 2.java虚拟机栈: 线程私有,与线程生命周期相同,保存基本数据类型,如果线程所请求的栈深度大于 ...
- Servlet中的配置 web.xml
url-pattern配置 可以为同一个Servlet配置多个url-pattern: <servlet> <servlet-name>DoGetPostDemo</se ...
- [SQL]开启事物,当两条插入语句有出现错误的时候,没有错误的就插入到表中,错误的语句不影响到正确的插入语句
begin transaction mustt insert into student values(,'kkk','j大洒扫','j','djhdjh') insert into student v ...
- archlinux log 文件查看
# pacman -S gnome-system-log gnome-logsextra/gnome-logs 3.12.1-1 (gnome-extra) A log viewer for the ...
- locals()函数访问当前还在作用范围内的局部变量
>>> element = 'silver' >>> number = 47 >>> 'Element {number} is {element} ...
- Kendo UI - Observable
在 Kendo 中,基类 Class 第一个重要的派生类就是 Observable, 顾名思义,就是一个可观察的对象,也就是观察者模式的基础. 对于观察者模式来说,应该有主题和观察者,这里我们讨论的其 ...