AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.05.2016, 14:59   #1  
Eugene.Ostroukhov is offline
Eugene.Ostroukhov
Участник
 
149 / 11 (1) +
Регистрация: 22.02.2013
фильтрация в лукапе через плагин: показать всё, что скрыто :)
Приветы.

Задача - в лукапе показывать весь список записей, независимо от того, есть ли права у пользователя на записи или нет (в ролях секьюрити настроено на чтение как подразделение и дочерние, а не организация: соотв. записи соседних подразделения не видятся, а хотелось бы)
Список поиска дополнительно фильтруется через настройки формы ("фильтрация связанных записей"), как раз по подразделению, в котором хотим поискать связанные записи.

Как думаю должно быть реализовано - плагин на RetrieveMultiple (https://blogs.msdn.microsoft.com/ukc...-modify-views/)
только изменять queryExpression не надо, нам надо чтобы сам запрос выполнился из-под пользователя с ролью "сисадмин". чтобы безусловно видеть все записи, а не через всякие OwningBusinessUnit и fn_POARetrieveMultiple(@SystemUserId0, @ObjectTypeCode0)) процедуру.

установил этот плагин (он по сути пустой - без кода, пре-степ, синхронный) - сделал Impersonating User у Step-а - на чувака, с сисадмин ролью.

Под "урезанным" пользователем - все равно ничего не показывается.
Плагин в executionContext + factory/IOrgService показывает правильный гуид в UserId (т.е. имперсонация сработала)

Почему так? чего то не догоняю.
Может в плагине надо как-то контекст или фактори сервиса изменить ?

или может я вообще не в ту степь поехал, и можно сделать как-то попроще?

Последний раз редактировалось Eugene.Ostroukhov; 10.05.2016 в 15:02.
Старый 10.05.2016, 15:06   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Плагин без кода, если вы ничего не подменяете - бесполезен. Хотите решить задачу быстро и малой кровью - выполните запрос, который приходит в контексте и подмените результат. Рекомендую также не забывать, что RetrieveMultiple используется не только из лукапа.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 10.05.2016, 15:13   #3  
Eugene.Ostroukhov is offline
Eugene.Ostroukhov
Участник
 
149 / 11 (1) +
Регистрация: 22.02.2013
Цитата:
Сообщение от a33ik Посмотреть сообщение
Плагин без кода, если вы ничего не подменяете - бесполезен. Хотите решить задачу быстро и малой кровью - выполните запрос, который приходит в контексте и подмените результат.
как подменить?
отправить в postOperation ?

Цитата:
Сообщение от a33ik Посмотреть сообщение
Рекомендую также не забывать, что RetrieveMultiple используется не только из лукапа.
да, фильтров я потом навешаю, если найду достаточно ограничений, кроме ApplicationOrigin того же
Старый 10.05.2016, 15:16   #4  
Eugene.Ostroukhov is offline
Eugene.Ostroukhov
Участник
 
149 / 11 (1) +
Регистрация: 22.02.2013
Цитата:
Сообщение от Eugene.Ostroukhov Посмотреть сообщение
как подменить?
отправить в postOperation ?
ага, вижу BusinessEntityCollection в post-operation

остается вопрос как точно определить лукап ли это.
было бы вообще здорово различать урлы (где вызывается лукап) , ибо не на всех формах нужно, а в паре мест всего
Старый 10.05.2016, 15:18   #5  
Eugene.Ostroukhov is offline
Eugene.Ostroukhov
Участник
 
149 / 11 (1) +
Регистрация: 22.02.2013
Цитата:
Сообщение от Eugene.Ostroukhov Посмотреть сообщение
ага, вижу BusinessEntityCollection в post-operation

остается вопрос как точно определить лукап ли это.
было бы вообще здорово различать урлы (где вызывается лукап) , ибо не на всех формах нужно, а в паре мест всего
урл сгодится через HttpContext.Current.
всем спасибо
Старый 11.05.2016, 09:33   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Вы решаете довольно странную задачу. Почему бы просто не дать пользователю соответствующие права? Технически можно настроить роль, где права на AppendTo будут выше чем Read для связываемой записи, но что-то мне подсказывает, это будет часто приводить к ошибкам доступа.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 11.05.2016, 11:12   #7  
Eugene.Ostroukhov is offline
Eugene.Ostroukhov
Участник
 
149 / 11 (1) +
Регистрация: 22.02.2013
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Вы решаете довольно странную задачу. Почему бы просто не дать пользователю соответствующие права? Технически можно настроить роль, где права на AppendTo будут выше чем Read для связываемой записи, но что-то мне подсказывает, это будет часто приводить к ошибкам доступа.
логика такая, что люди работают в своем подразделении и ничего другое их касаться не должно. как обычно, т.е.
кроме одного момента: они связывают свои данные, с related данными соседних отделов.
так, чтобы в итоге получилась паутина связей между данными разрозненных объектов.
Старый 12.05.2016, 18:58   #8  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
В диалоге лукапа они могут использовать личные представления. Это позволит пользователю увидеть все данные связанного объекта не попадая на карточку. Будете скрывать поля из поиска?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 12.05.2016, 18:59   #9  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
p.s. Можно запретить менять представление в настройках лукапа.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 12.05.2016, 19:50   #10  
Eugene.Ostroukhov is offline
Eugene.Ostroukhov
Участник
 
149 / 11 (1) +
Регистрация: 22.02.2013
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
В диалоге лукапа они могут использовать личные представления. Это позволит пользователю увидеть все данные связанного объекта не попадая на карточку. Будете скрывать поля из поиска?
не совсем понял, к чему речь
к тому, что кроме представления поиска еще свои может использовать и видеть чужие при этом?
1) они вряд ли когда-то до этого догадаются
2) они не умеют делать свои представления

Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
p.s. Можно запретить менять представление в настройках лукапа.
знаю, а вот кроме своих представлений надо запретить другие, эт точно)
спасибо!
Старый 16.05.2016, 13:42   #11  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Да, я говорил о возможной утечке безопасности, которая возможна при попытке ограничить доступ средствами UI или "поднимать" привилегии при выполнении определенной операции
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтрация лукапа через addCustomView spectr Dynamics CRM: Разработка 7 27.12.2013 17:26
Настройка авторизации CRM 2011 через проверку подлинности windows Arhiskorpion Dynamics CRM: Администрирование 1 15.03.2013 18:03
Плагин Nvovka Dynamics CRM: Разработка 3 14.10.2011 23:46
Тип сущности, использующей плагин Казарин Александр Dynamics CRM: Разработка 2 02.04.2009 20:29

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:17.