Кастомизация
25
Сен
0

Скрытие пунктов в области навигации

Пункты в области навигации можно скрыть двумя способами:

  • Они скрываются сами, если у пользователя нет никаких прав ни на какой объект входящих в этот пункт области навигации;
  • С помощью специального атрибута Privilege в SiteMap’е.

Первый способ довольно не «стабильны» поскольку приходится учитывать много факторов при его задействовании. Поэтому сосредоточимся на втором. С ним тоже вроде все просто: нужно подобрать объекты/права, которые есть у пользователя и с помощью них и атрибута Privilege управлять доступом к отдельным SubArea. И если все SubArea будут скрыты в какой-либо области навигации, то и сам пункт в области навигации будет скрыт! Но данный способ тоже хранит в себе изъян – права на объекты постоянно выдаются/отбираются, поэтому зайдя в один прекрасный день в CRM Вы можете обнаружить что пользователь видит область навигации, которую не должен видеть!

Поэтому можно второй способ несколько унифицировать. А именно создать специальный объект, например, «new_sitemap», и выдавай какой-либо реальной Роли права на этот объект, управлять отображением пунктов областей навигации:

<Area Id="SFA" ResourceId="Area_Sales" Icon="/_imgs/sales_24x24.gif" DescriptionResourceId="Sales_Description">
  <Group Id="SFA">
    <SubArea Id="nav_leads" Entity="lead">
      <Privilege Entity="new_sitemap" Privilege="Read" />
    </SubArea>
    <SubArea Id="nav_oppts" Entity="opportunity">
      <Privilege Entity="new_sitemap" Privilege="Read" />
    </SubArea>
    <SubArea Id="nav_accts" Entity="account">
      <Privilege Entity="new_sitemap" Privilege="Read" />
    </SubArea>
  </Group>
</Area>

Из этого отрывка следует, что если у Пользователя не будет полномочий на чтение объекта «new_sitemap», то он не увидит как ни одной из SubArea, так и всю Area «SFA»!



Комментарии (0)

*

code