Showing posts with label Customize Menu. Show all posts
Showing posts with label Customize Menu. Show all posts

Tuesday, March 26, 2013

วิธีการซ่อนและปรับ Menu ตาม Roles ที่ Assign ให้

วิธีการซ่อนและปรับ Menu ตาม Roles ที่ Assign ให้



ใน File “SiteMap-Extensions.xml” นั้นถูกใช้ในการกำหนด Menu ให้แตกต่างไปตามความต้องการของ Role ที่ Assign ให้แต่ละ User โดยใน Default ของระบบ จะไปดู Configuration มาตราฐานใน Path
Prodika Home> Config>Core>Reference>SiteMap-NPD.xml
ซึ่งถ้าเราต้องการให้มีการ แสดง Menu ตาม Role Assign นั้น แนะนำว่าไม่สมควรแก้ไขที่ Standard SiteMap โดยตรง ขอให้ใช้ SiteMap-Extensions.xml ที่อยู่ใน Path: Prodika Home> Config>Extensions แทน
โดยครั้งนี้เราต้องแก้ไขให้ Menu Template นั้นแสดงแค่เฉพาะ Role [NPDADMIN] เท่านั้น โดยให้เรานำชื่อของ Role ใส่มาที่หลัง Parameter  SecurityProfileRef” เพื่อเป็นการบอกว่า Menu นี้จะแสดงให้ก็ต่อเมื่อมีการ Assign Role ที่ระบุตามที่ระบุไว้ใน User Profile

<MenuItem ID="lblTemplates" DisplayText="--Templates" SecurityProfileRef="NpdAdmin" SkinRef="DefaultWithChildren" TranslationRef="NDPSideBar" Target="" NavigateUrl="" Expanded="false" >
<MenuItem ID="lblActivityTemplates" DisplayText="--Activity Templates" SecurityProfileRef="" SkinRef="DefaultSkin"  NavigateUrl="${dc:NPD}/MainPage/NPD.aspx?ContentKey=ActivityTemplateSearch" />
<MenuItem ID="lblProjectTemplates" DisplayText="--Project Templates" SecurityProfileRef="" SkinRef="DefaultSkin"  NavigateUrl="${dc:NPD}/MainPage/NPD.aspx?ContentKey=ProjectTemplateSearch" />
<MenuItem ID="lblSBTemplates" DisplayText="--Strategic Brief Templates" SecurityProfileRef="" SkinRef="DefaultSkin"  NavigateUrl="${dc:NPD}/MainPage/NPD.aspx?ContentKey=StrategicBriefTemplateSearch" />
<MenuItem ID="lblIdeaTemplates" DisplayText="--Idea Templates" SecurityProfileRef="" SkinRef="DefaultSkin"  NavigateUrl="${dc:NPD}/MainPage/NPD.aspx?ContentKey=IdeaTemplateSearch" Visible="${fc:Portal.SideNav.NPD.Idea.Enabled}" />
<MenuItem ID="lblTemplateMaintenance" DisplayText="--Template Maintenance" SecurityProfileRef="" SkinRef="DefaultSkin"  NavigateUrl="${dc:NPD}/MainPage/NPD.aspx?ContentKey=TemplateMaintenance" />
</MenuItem>

หลังจากนั้น ต้องทำการ Restart IIS Service และทดสอบผลต่อไป