사용자에게 연결된 Role과 Task 정보를 파일로 저장

Posted by Alvin You
2013. 11. 18. 13:21 Dynamics AX

static void UserRolesAndTasks(Args _args)

{

    System.IO.StreamWriter sw;

    InteropPermission perm = new InteropPermission(InteropKind::ClrInterop);

    SecurityTask            securityTask            ;

    SecurityRole            securityRole            ;

    SecurityUserRole        securityUserRole        ;

    SecurityRoleTaskGrant   securityRoleTaskGrant   ;

    UserInfo                userInfo                ;

    str                     outputText              ;

    ;

 

    perm.assert();

 

    sw = new System.IO.StreamWriter(@"C:\RolesAndTasks.txt");

    CodeAccessPermission::revertAssert();

 

    info( "User|Role|Task");

    while select securityUserRole

            join securityRole           where securityRole.RecId                    == securityUserRole.SecurityRole

            join securityRoleTaskGrant  where securityRoleTaskGrant.SecurityRole    == securityRole.RecId

            join securityTask           where securityRoleTaskGrant.SecurityTask    == securityTask.RecId

            join userInfo               where userInfo.id                           == securityUserRole.User

                                           && userInfo.enable                       == NoYes::Yes

    {

        outputText = strFmt("%1 |%2 | %3" , securityUserRole.User, SysLabel::labelId2String2(securityRole.Name), SysLabel::labelId2String(securityTask.Name));

        sw.WriteLine(outputText);

    }

   

    sw.Flush();

    sw.Close();

    sw.Dispose();

   

    info( "done");

}