Показать сообщение отдельно
Старый 27.10.2008, 08:13   #13  
Артем 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
Решил не создавать еще одну тему с названием вроде "система безопасности CRM или что курили разработчики", а продолжить эту... Не судите за флуд, просто в очередной раз наболело, да полезно будет многим узнать про "тонкости и колкости" системы безопасности CRM (опробовано на 3.0, но думаю справедливо будет и для 4.0).

Итак речь в ней в очередной раз об тонкостях виденья и влияния на объекты системы. Рассмотрим типовой пример: в организации есть ряд продающих или просто работающих с заказчиком подразделений. Все они должны хранить историю работы с клиентом, но было бы не предусмотрительно показывать её всем пользователям, ибо информация может быть конфиденциальна. Типовая ситуация - ограничить права на видение действий пределами подразделения. Типовая проблема - как теперь совместно работать? Ибо назначенные пользователям другого подразделения задачи тут же исчезают - перестают быть видимыми? Типовое решение - предоставлять доступ на видение сделки. Так вот этот вопрос я бы и хотел тут обсудить.
И где собственно тонкость? А тонкость в том, что если дать самому себе права на чтение данных возможной сделки, то можно увидеть все связанные с ней действия! Если потом отобрать их, то видимость тех действий, что уже созданы сохранится, а видимость новых будет в соответствии с ролями безопасности.
Что будет если не расшаривать сделку для себя, а только для 2ого менеджера? Он будет видеть все действия, а вы только в соответствии с ролью. Впрочем, если вы будете создавать действия сразу назначенные другим ползователям, то их видимость при этом сохранится.
Почему все это так? Вопрос с одной стороны риторический, с другой могу на него ответить: связь между основным объектом и действиями по умолчанию родительская, а этот тип поведения предусматривает касадное правило "Каскад для всех" на операцию "Общий доступ" (даже, если вы не видите все объекты к которым он применится). Таким образом вы можете использовать этот приём, в тех случаях, когда важно, чтобы создатель был "вторым владельцем".

Второй типовой вопрос - как связаны уровни доступа с привилегиями на создание и назначение? А связаны следующим образом: можно создавать объект сразу же назначенный кому-то. Вот тут-то и проверяется уровень доступа - если уровень подразделения - то можно создавать задачу назначенную любому пользователю вашего подразделения. Если на уровне организации, то назначай кому хочешь, хоть генеральному. События назначения при этом не происходит, срабатывает только создание. А что же тогда уровень доступа при привилегии Назначения? А вот он как раз таки определяет к каким записям, вы можете применять данную привилегию!!! Иными словами, если у вас есть права на переназначение собственных задач, то вы можете назначать их кому угодно, и даже все тому же генеральному! Как запретить подобное хамство? Вообще не давать пользователю права на назначение таких объектов. Пусть заново создает и назначает уже на этом этапе, если, конечно хватит прав и нет необходимости прикреплять связанные объекты...

Всем кто не сломал моск, удачи!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: AlekseyS (1).