zoukankan      html  css  js  c++  java
  • 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.pack(), groupDest, domainId );//复制到新组Test2

    扩展一下,可以得到某对象所有用户组的权限,并导出到Excel,以供IT审计。这在权限检查中非常有用,节省一个个打开看的时间了。

    另,在后头涉及到权限的tableAccessRightsList, 同时我们可以做一个hotfix,加一个新的tableAccessRightsListLog,记录用户对权限的修改,以便后面追查。

    tableAccessRightsListLog表结构。

    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
    )

    附AccessRightsListRecordType的枚举值列表。

    附AccessRightsListAccessType的枚举值列表。

  • 相关阅读:
    JAVA实现微信支付功能
    avue设置表格显示图片
    职工管理系统----删除职工
    职工管理系统---显示职工
    职工管理系统---读文件
    职工管理系统---写文件
    职工管理系统-------添加职工
    职工管理系统-----实现职工类
    职工管理系统-------实现退出功能
    职工管理系统-------菜单功能
  • 原文地址:https://www.cnblogs.com/sxypeace/p/5439825.html
Copyright © 2011-2022 走看看