Obtener el rol de un usuario de CRM 3.0 desde el cliente

function getUserId() {
    try
    {
        var command = new RemoteCommand("SystemUser", "WhoAmI", "/MSCRMServices/");
        var oResult = command.Execute();
        if (oResult.Success){
            return oResult.ReturnValue.UserId;
        }
    }
    catch(e){
        alert("Error al obtener el Id del usuario");
    }
    return null;
}

function getUserRoles(userId) {
    try
    {
        var command = new RemoteCommand("UserManager", "GetUserRoles");
        command.SetParameter("userIds", "<guid>" + userId + "</guid>");
        var oResult = command.Execute();
        if (oResult.Success){
            return oResult.ReturnValue;
        }
    }
    catch(e){
        alert("Erorr al obtener los roles del usuario" + userId.toString());
    }
    return null;
}

function userHasRole(userId, roleName){
    result = getUserRoles(userId);
    if (result != null){
        var oXml = new ActiveXObject("Microsoft.XMLDOM");
        oXml.resolveExternals = false;
        oXml.async = false;
        oXml.loadXML(result);
        roleNode = oXml.selectSingleNode("/roles/role[name='" + roleName + "']");
        if (roleNode != null){
            if (roleNode.selectSingleNode("roleid[@checked='true']") != null)
                return true;
        }
    }
    return false;
}

function currentUserHasRole(roleName){
    userId = getUserId();
    return userHasRole(userId, roleName);
}

if(currentUserHasRole('Administración de ventas')){
        crmForm.all.ks_prorroga.Disabled=false;
}
else{
    crmForm.all.ks_prorroga.Disabled=true;
}

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s