Today we would like to share How to copy roles from one user to another in Dynamics AX2012.
Code example:
#static void assignRolesFromUserToUser(Args _args)
#{
# #define.fromUserId('Kudryavc')
# #define.toUserId('ax12test')
#
# SecurityRole securityRole;
# SecurityUserRole securityUserRoleFrom,securityUserRoleTo;
# ;
# while select securityUserRoleFrom
# where securityUserRoleFrom.User == #fromUserId
# && securityUserRoleFrom.AssignmentStatus == RoleAssignmentStatus::Enabled
# join securityRole
# where securityRole.RecId == securityUserRoleFrom.SecurityRole
# {
# select securityUserRoleTo
# where securityUserRoleTo.SecurityRole == securityUserRoleFrom.SecurityRole &&
# securityUserRoleTo.User == #toUserId;
#
# if (!securityUserRoleTo || securityUserRoleTo.AssignmentStatus != RoleAssignmentStatus::Enabled)
# {
# SysSecHelper::log('Adding ' + securityRole.Name);
#
# securityUserRoleTo.User = #toUserId;
# securityUserRoleTo.SecurityRole = securityRole.RecId;
# securityUserRoleTo.AssignmentMode = RoleAssignmentMode::Manual;
# securityUserRoleTo.AssignmentStatus = RoleAssignmentStatus::Enabled;
#
# if (SecuritySegregationOfDuties::assignUserToRole(securityUserRoleTo, null) )
# {
# EePersonalDataAccessLogging::logUserRoleChange(securityRole.RecId,0, #toUserId, AddRemove::Add);
# }
# else
# {
# SysSecHelper::log('Skipping ' + securityRole.Name);
# }
# }
# else
# {
# SysSecHelper::log('Skipping ' + securityRole.Name);
# }
# }
#
#}
Leave a Reply
You must be logged in to post a comment.