Dynamic AX 4.0 用户组权限SecurityKey

 1 UserId              _userId = "IT001";
 2 UserGroupId      _userGroupId = "ABC_1";
 3 DomainId          _domainId="DH";
 4 DataAreaId        _companyId = "CG";
 5 SecurityKeyset    _SecurityKeyset;
 6 AccessType        _newAccessType = AccessType::Edit;
 7 AccessType        _curAccessType;
 8 str                    _MenuItemName = "SalesTable";
 9 ;
10
11 _SecurityKeyset = new SecurityKeyset();
12 //begin user group security set
13 _SecurityKeyset .loadGroupRights(_userGroupId ,_domainId);
14 //获取销售单画面的访问权限
15 _curAccessType = _SecurityKeyset.menuItemAccess(_MenuItemName , AccessRecordType::MenuItemDisplay);
16
17 //给销售单画面赋权限
18 _SecurityKeyset.menuItemAccess(_MenuItemName , AccessRecordType::MenuItemDisplay,_newAccessType ); //带第三个参数表示修改权限。
19 //Save 权限
20 xAccessRightsList::saveSecurityRights(se.packTouched(),_userGroupId , _domainId);
21
22 //begin user group security set
23 _SecurityKeyset .loadUserRights(_userId,_companyId );
24 //获取用户销售单画面的访问权限
25 _curAccessType = _SecurityKeyset.menuItemAccess(_MenuItemName , AccessRecordType::MenuItemDisplay);
26  

若想将一个用户组的权限完全复制给另外一个用户组。

 1 SecurityKeyset    seSource;
 2
 3 UserGroupId      groupSource,groupDest;
 4 DomainId          domainId = "DH";
 5 ;
 6 groupSource = "Test1";
 7 groupDest ="Test2";
 8 seSource = new SecurityKeyset();
 9 seSource.loadGroupRights(groupSource,domainId);
10
11 xAccessRightsList::saveSecurityRights(seSource.packTouched(), 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的枚举值列表。

时间: 2024-10-29 19:11:25

Dynamic AX 4.0 用户组权限SecurityKey的相关文章

linux用户组权限

            用户组权限 1解释Linux的安全模型 2解释用户帐号和组群帐号的目的 3用户和组管理命令 4理解并设置文件权限 5默认权限 6特殊权限 一: 介绍3A 资源分派: Authentication:认证(确认身份) Authorization:授权(给你权限不给你权限) Accouting|Audition:审计(就是监控) 用户user 管理员:root:uid:0 普通用户:1-65535 Uid: 系统用户: centos6是1-499|centos7是1-999 对

用户与用户组权限管理详解

用户及用户组权限管理    Linux是一个多任务多用户的系统,多用户可以同时登陆同一台主机.为了考虑到每个人的隐私权和工作空间,这时候文件所有者(owner)就是即用户的角色就变得尤为重要了,同时为了用户与用户之间方便合作,共享一些公共资源,这时,为了实现资源的快速分配,我们把多个用户放在一个公共的空间,分别赋予他们不同的读写执行等操作的权限,这些用户共同组成的一个整体,就是所谓的用户组(group). 第一部分 Linux权限管理 用命令ls -l可以列出用户的权限. #ls -l 这里我们

修改webserver站点用户组权限

例如webserver站点目录为webtest 搭建nginxwebserver服务器的时候,默认的用户和用户组权限为nginx:nginx, 即nginx.conf 和php-frm.conf 中默认用户为 webtest :nginx:nginx nginx.conf: user  nginx nginx;  php-frm.conf:  Unix user of processes <value name="user">nginx</value>  Uni

Android6.0获取权限

照着<第一行代码>打代码,然并卵,感叹技术进步的神速.最后提醒一点:IT类的书籍一定要注意出版时间!出版时间!出版时间!重要的事情说三遍 问题出在android6.0的权限获取问题上,以前只要在Manifest.xml一次性获取便可以了,android6.0之后要手动去获得运行时权限才行. 1. 新增的api ContextCompact.checkSelfPermission()--->检查是否有权限 ActivityCompat.requestPermission()--->去

Android 6.0 - 动态权限管理的解决方案(转)

转自:http://www.cnblogs.com/dubo-/p/6018262.html Android 6.0 - 动态权限管理的解决方案 转载请标注 Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担. 动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应用权限. 时代总是不断发展, 程序总是以人为本, 让我们为应用添加动态权限管理吧! 这里提供了一个非常不错的解决方案, 提供源码, 项目可以直

Android开发之深入理解Android 7.0系统权限更改相关文档

摘要: Android 6.0之后的版本增加了运行时权限,应用程序在执行每个需要系统权限的功能时,需要添加权限请求代码(默认权限禁止),否则应用程序无法响应:Android 7.0在Android 6.0的基础上,对系统权限进一步更改,这次的权限更改包括三个方面: APP应用程序的私有文件不再向使用者放宽 Intent组件传递file://URI的方式可能给接收器留下无法访问的路径,触发FileUriExposedException异常,推荐使用FileProvider DownloadMana

mongoDB 3.0 安全权限访问控制

mongoDB 3.0 安全权限访问控制 MongoDB3.0权限,啥都不说了,谷歌百度出来的全是错的.先安装好盲沟,简单的没法说. 首先,不使用 –auth 参数,启动 mongoDB: mongodb-linux-i686-3.0.0/bin/mongod -f mongodb-linux-i686-3.0.0/mongodb.conf 此时你 show dbs 会看到只有一个local数据库,那个所谓的admin是不存在的. mongoDB 没有炒鸡无敌用户root,只有能管理用户的用户 

Report processing of Microsoft Dynamic AX

Report processing of Microsoft Dynamic AX The implementation of a general electronic report usually has four classes. Contract: Comment: Contract class is data contract class for SSRS report . Intent: Gets or sets the value of the data contract param

Android 6.0的权限问题

Android 6.0的权限获取不同于别的版本,具体的实例如下: if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { //申请READ_CONTACTS权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_