这里是一个项目的日志备份,有很多bug,只是为本人做个记录。供以后参考。
mainmenu是主菜单,submen是每个主菜单对应的子菜单,purview是每个角色对菜单的访问权限,细分到对每个子菜单的权限。
通过下面的sql,并使用in(purview中的roleid对应的pmenuid)关键字可以找到某个角色对应的子菜单项,也就是某个人对菜单的访问权限。
mainmenu:

submenu:

菜单的权限资源表:

sql:
SELECT SubMenu.id AS Id, TopMenu.MName AS TMname, MainMenu.Mname AS MMname, SubMenu.Mname AS SMname, SubMenu.Murl AS Murl
FROM (TopMenu LEFT JOIN MainMenu ON TopMenu.id=MainMenu.MParent) LEFT JOIN SubMenu ON MainMenu.id=SubMenu.MParent
WHERE SubMenu.id in (1,2,3,4,5,6,7,8,9,28,11,12,14,15,17,18,20,21,22,26,27) ORDER BY MainMenu.id
asp:
Do While not rs.eof
strtopmenu(i)=rs.fields("TMName")
strmainmenu(i)=rs.fields("MMName")
strsubmenu(i)=rs.fields("SMName")
submenuurl(i)=rs.fields("MUrl")
i=i+1
rs.movenext
loop

Write("<script type='text/javascript'>")
Write("var outlookbar=new outlook();var t;")
for j = 1 to i-1
if strmainmenu(j) <>temp then
temp=strmainmenu(j)
write("t=outlookbar.addtitle('" & strmainmenu(j) & "','" & strtopmenu(j) & "',1);"&vbcrlf)
end if
write("outlookbar.additem('"& strsubmenu(j) & "',t,'" & submenuurl(j) & "');"&vbcrlf)
next
Write("</script>")
结果:
