Показать сообщение отдельно
Старый 23.07.2009, 16:27   #16  
echo_igor is offline
echo_igor
Участник
Аватар для echo_igor
 
116 / 10 (1) +
Регистрация: 09.06.2009
Адрес: Ростов-на-Дону
Цитата:
Сообщение от slivka_83 Посмотреть сообщение
ссылки выше
Попробовал поддерживаемым способом, с Вашего блога( http://mmcrm.ru/?p=291 ).
Пытаюсь скрыть поле "Согласование" new_coordination для объекта Возможная сделка. После опубликования. Скрипт почему то не срабатывает под другими пользователями.
Вот код.

Код:
//Если у пользователя есть роль Системный администратор, то скрываем поле Основной телефон вместе с отображаемой подписью
if(UserHasRole("Системный администратор")) 
{
	crmForm.all.new_coordination.parentElement.parentElement.style.display='none';
}
//Проверяем, есть ли у пользователя запрашиваемая роль
function UserHasRole(roleName) {
	//get Current User Roles, oXml is an object
	var oXml = GetCurrentUserRoles();
	if(oXml != null) {
		//select the node text
		var roles = oXml.selectNodes("//BusinessEntity/q1:name");
		if(roles != null) {
			for( i = 0; i < roles.length; i++) {
				if(roles[i].text == roleName) {
					//return true if user has this role
					return true;
				}
			}
		}
	}
	//otherwise return false
	return false;
}
//Выцепляем все роли пользователя
function GetCurrentUserRoles() {
	var xml = "" +
	"<!--l version=\"1.0\" encoding=\"utf-8\-->" +
	"" +
	GenerateAuthenticationHeader() +
	" " +
	" " +
	" " +
	" role" +
	" " +
	" " +
	" name" +
	" " +
	" " +
	" false" +
	" " +
	" " +
	" roleid" +
	" role" +
	" systemuserroles" +
	" roleid" +
	" Inner" +
	" " +
	" " +
	" systemuserid" +
	" systemuserroles" +
	" systemuser" +
	" systemuserid" +
	" Inner" +
	" " +
	" And" +
	" " +
	" " +
	" systemuserid" +
	" EqualUserId" +
	" " +
	" " +
	" " +
	" " +
	" " +
	" " +
	" " +
	" " +
	" " +
	" " +
	"" +
	"";

	var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");

	xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
	xmlHttpRequest.setRequestHeader("SOAPAction"," http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");
	xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
	xmlHttpRequest.send(xml);

	var resultXml = xmlHttpRequest.responseXML;
	return(resultXml);
}