|  09.08.2010, 17:12 | #1 | 
| Участник |  Контроль дубликатов  по всем записям 
			
			CRM 4.0 Ситуация такая... Пользователи могут работать только со своими контактами и не могут лезть в чужие записи. Необходимо реализовать контроль дубликатов по полному совпадению ФИО. При обнаружении дубликатов нужно выводить информацию о том, кому принадлежат существующие записи, поэтому использовать плагин не получиться, с его помощью информацию по человечески не выведешь. Остается только вариант повесить JS-скрипт на OnSave, который, как вариант, будет вызывать кастомный сервис поиска дубликатов и отображать страничку с результатами поиска при необходимости. Но вот в чем вопрос - как искать по ВСЕМ контактам, а не только по тем, которые принадлежат пользователю. В плагине все просто, передаешь false методу CreateCrmService, а как быть с сервисом. Как то не хочется хранить в файле конфигурации логин и пароль пользователя со всеми правами что бы создавать экземпляр сервиса от его имени. | 
|  | 
|  09.08.2010, 17:17 | #2 | 
| Чайный пьяница | Цитата: 
		
			Сообщение от ZooY
			   CRM 4.0 Ситуация такая... Пользователи могут работать только со своими контактами и не могут лезть в чужие записи. Необходимо реализовать контроль дубликатов по полному совпадению ФИО. При обнаружении дубликатов нужно выводить информацию о том, кому принадлежат существующие записи, поэтому использовать плагин не получиться, с его помощью информацию по человечески не выведешь. Остается только вариант повесить JS-скрипт на OnSave, который, как вариант, будет вызывать кастомный сервис поиска дубликатов и отображать страничку с результатами поиска при необходимости. Но вот в чем вопрос - как искать по ВСЕМ контактам, а не только по тем, которые принадлежат пользователю. В плагине все просто, передаешь false методу CreateCrmService, а как быть с сервисом. Как то не хочется хранить в файле конфигурации логин и пароль пользователя со всеми правами что бы создавать экземпляр сервиса от его имени. 
				__________________ Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit | 
|  | |
| За это сообщение автора поблагодарили: ZooY (1). | |
|  09.08.2010, 17:36 | #3 | 
| Участник | 
			
			Слишком просто чтобы быть правдой   Затра попробую. Спасибо! | 
|  | 
|  10.08.2010, 12:36 | #4 | 
| Moderator | 
			
			У нас так интеграция работает: все запросы в сервис идут от пользовательской учетки CRM "Служба интеграции". Ей назначена урезанная роль безопасности, которая позволяет менять только необходимые записи. Очень удобно и не нужно заморачиваться с безопасностью.
		 
				__________________ http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.   MS Certified Dirty Magic Professional | 
|  | 
|  11.08.2010, 00:48 | #5 | 
| Участник | 
			
			Проверил, походу действительно работает. Но это же получается дырка в безопасности. То-есть если у пользователя пусть даже самые минимальные права в CRM, но есть небольшой опыт программирования, то он может получить из CRM все, что его интересует. Не то чтобы меня это парило, но сам факт   | 
|  | 
|  11.08.2010, 09:48 | #6 | 
| Moderator | 
			
			Ни в коем разе: http://msdn.microsoft.com/en-us/library/cc151052.aspx. Привилегией имперсонации обладают не все пользователи. По умолчанию в группе безопасности, для которой разрешены такие действия находятся только учетки самого сервера CRM и сервера электронной почты (если был указан при инсталляции). Так что если ваши пользователи не являются деплоймент админами/ администраторами IIS, которые могут поместить свой зловредный код в плагины, или в веб страницы которые выполняются в пуле CRM, или от имени привилегированной встроенной учетки сервера, то угроза безопасности минимальна.
		 
				__________________ http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.   MS Certified Dirty Magic Professional Последний раз редактировалось Артем Enot Грунин; 11.08.2010 в 10:00. | 
|  |