adsenseheader

Thursday, September 26, 2024

Check if user is assigned with privilege in D365 FO

public static boolean checkIfUserAssignedWithPrivilege(str _privilege)
    {
        UserInfo userInfo;
        SecurityUserRole securityUserRole;
        SecurityPrivilege securityPrivilege;
        SecurityRolePrivilegeExplodedGraph securityRolePrivilegeExplodedGraph;

        select firstonly Id, RecId from userInfo
            exists join securityUserRole
                where securityUserRole.User         == userInfo.Id
            exists join securityRolePrivilegeExplodedGraph 
                where securityRolePrivilegeExplodedGraph.SecurityRole == securityUserRole.SecurityRole
            exists join securityPrivilege 
                where securityPrivilege.RecId       == securityRolePrivilegeExplodedGraph.SecurityPrivilege
                    && securityPrivilege.Identifier == _privilege 
                    && userInfo.id                  == curUserId();
        return userInfo.RecId;
    }

No comments:

Post a Comment