Todos conocemos las facilidades que nos brinda Microsoft CRM para realizar distintas modificaciones, visuales y funcionales. En esta entrada me voy a centrar en una en particular... se trata de la entidad Mapa de Sitio (Site Map).
Pero que es el Site Map??.
Site Map es una entidad en CRM la cual nos permite definir la estructura del panel de navegación de nuestra aplicación. Es decir todo lo que se encuentra en el panel ubicado a la izquierda de nuestro CRM.
Para modificar el Site Map, lo que tenemos que hacer es simplemente exportar dicha entidad desde CRM, modificar el xml y volver a importarlo.
La estructura de los elementos del xml esta compuesta por:
SiteMap : Nodo principal
Area: Como su nombre lo indica representa un area.
Group: Representa un sub agrupamiento de los elementos principales (subarea).
SubArea: Elementos principales del panel de navegacion.
Privilege: Controla cuando un elemento principal del panel (SubArea) debe ser mostrado.
Por supuesto cada uno de estos elementos tienen sus atributos, pero no es mi intención definir cada uno de ellos, ni tampoco mostrar que efectos produce su molificación, simplemente me voy a centrar en contarles el elemento Privilege.
No esta de mas decir que para obtener información de la estructura del Site Map, como la de todos sus elementos y atributos no tienen mas que buscarlo en el SDK.
Bien comencemos entonces...
El elemento Privilege es uno de los mas interesantes por que gracias a el podemos definir si un elemento debe ser mostrado para un usuario (o rol) en particular o no. Cuando nosotros modificamos o creamos un nuevo rol de seguridad y en el definimos que no se tienen permisos sobre una determinada entidad, Microsoft CRM se encarga de "ocultar" los vínculos a esa entidad en el Site Map.
Pero que pasa si queremos ocultar un área por completo?... y esto nos pasa con el área de configuración. Mucha gente me ha consultado de como hacer para que esta área o sección no aparezca en el panel de navegación.
Pues bien lo que tenemos que hacer es utilizar el elemento Privilege, ya que cuando Microsoft CRM detecta que un rol no tiene permisos para visualizar todos los elementos SubArea de una Area, no muestra el área en cuestión.
En el SDK podemos encontrar el siguiente ejemplo:
<SubArea Id="nav_managekb" ResourceId="Homepage_KBManager" Icon="/_imgs/ico_18_126.gif" Url="/cs/home_managekb.aspx" Client="Web"> <Privilege Entity="kbarticle" Privilege="Read,Write,Create" /> lt;/SubArea>
En este caso podemos ver que el elemento Privilege afecta a la SubArea de la Kb del módulo de servicios, en el esta definiendo que el usuario para poder ver este elemento en el panel de navegación requiere de permisos para leer, escribir y crear sobre la entidad kbarticle.
Entonces si nosotros definimos que para poder ver todos los elementos SubArea de area de configuración el usuario .. por ejemplo.. debe tener permisos de creación de usuarios (los cuales generalmente tiene el administrador de la aplicación).. el área de configuración no se visualizará para quienes no lo posean.
Les dejo el codigo de como quedaría...
<Area Id="Settings" ResourceId="Area_Settings" Icon="/_imgs/settings_24x24.gif"> <Group Id="Settings"> <SubArea Id="nav_settings" ResourceId="Homepage_Settings" Icon="/_imgs/area/18_settings.gif" Url="/tools/home_tools.aspx" Client="Web" >
<Privilege Entity="systemuser" Privilege="Create" />
</SubArea> <SubArea Id="nav_syscust" ResourceId="Homepage_SystemCustomization" Icon="/_imgs/area/18_syscust.gif" Url="/tools/systemcustomization/systemcustomization.aspx" Client="Web" >
<Privilege Entity="systemuser" Privilege="Create" />
</SubArea> </Area>
Eso es todo, no duden en dejar sus comentarios o dudas sobre el artículo.
Saludos
6 comentarios:
14 de mayo de 2008, 11:54 a. m.
Hola como estas, soy Maxi nuevamente consultandote.
Como puedo hacer para hacer un area compras y logistica como figura ahi?
Muchas gracias.
15 de mayo de 2008, 5:30 p. m.
Maxi,
No tenes que hacer mas que lo que comente en la entrada.
Simplemente exporta el sitemap, modificalo agregando la areas que necesites y lo volves a importar.
ojo que si esta mal formado el xml se rompe la estructura del sitio!!!..Hace backup de la personalizacion
Te dejo paso con correo el sitemap completo
Saludos
7 de julio de 2008, 9:00 p. m.
Muy bueno su codigo. Lo aplique en CRM 4.0
Saludes
7 de julio de 2008, 9:02 p. m.
Buenas tardes Max. Mira en CRM 4.0 en la lista de precio, puede hacerse que cada nivel de precio que tiene el formulario, pueda ser visto por usuario q tengan roles para ver unicamente uno de los campos de venta, otro que pueda ver dos campos de ventas y un tercero q pueda accesar a los tres campos (atributos) de venta q tiene el formulario?. Puedes darme una idea, por favor. Gracias
9 de marzo de 2010, 2:55 a. m.
http://lumerkoz.edu Educational links, http://www.lovespeaks.org/profiles/blogs/buy-flagyl reportthe indications http://riderx.info/members/Buy-Meridia-Online.aspx morti http://soundcloud.com/buy-nifedipine towelettes http://www.comicspace.com/esomeprazole/ refunds http://soundcloud.com/acyclovir lipids
4 de agosto de 2010, 8:52 a. m.
Hola,
Pongo la entrada que has puesto de ejemplo para impedir que un usuario normal pueda entrar al apartado configuración y cuando intento cargar el archivo .xml me dice que esta mal y es debido a poner la sentencia privilege en el partado setting.
¿Alguna solución?
Publicar un comentario