問:比如我定義了一個(gè)數(shù)據(jù)島: ?
? <xml ? id=menuXML> ?
? <?xml ? version="1.0" ? encoding="GB2312"?> ?
? <DSTreeRoot ? text="根節(jié)點(diǎn)" ? open="true" ? href="http://" ? treeId="123"> ?
? <DSTree ? text="技術(shù)論壇" ? open="false" ? treeId=""> ?
? <DSTree ? text="5DMedia" ? open="false" ? href="http://" ? target="box" ? treeId="12"> ?
? <DSTree ? text="網(wǎng)頁編碼" ? href="http://" ? target="box" ? treeId="4353" ? /> ?
? <DSTree ? text="手繪" ? href="http://" ? target="box" ? treeId="543543" ? /> ?
? <DSTree ? text="灌水" ? href="http://" ? target="box" ? treeId="543543" ? /> ?
? </DSTree> ?
? <DSTree ? text="BlueIdea" ? open="false" ? href="http://" ? target="box" ? treeId="213"> ?
? <DSTree ? text="DreamWeaver ? & ? JS" ? href="http://" ? target="box" ? treeId="4353" ? /> ?
? <DSTree ? text="FlashActionScript" ? href="http://" ? target="box" ? treeId="543543" ? /> ?
? </DSTree> ?
? <DSTree ? text="CSDN" ? open="false" ? href="http://" ? target="box" ? treeId="432"> ?
? <DSTree ? text="JS" ? href="http://" ? target="box" ? treeId="4353" ? /> ?
? <DSTree ? text="XML" ? href="http://" ? target="box" ? treeId="543543" ? /> ?
? </DSTree> ?
? </DSTree> ?
? <DSTree ? text="資源站點(diǎn)" ? open="false" ? treeId=""> ?
? <DSTree ? text="素材屋" ? href="http://" ? target="box" ? treeId="12" ? /> ?
? <DSTree ? text="桌面城市" ? open="false" ? href="http://" ? target="box" ? treeId="213"> ?
? <DSTree ? text="壁紙" ? href="http://" ? target="box" ? treeId="4353" ? /> ?
? <DSTree ? text="字體" ? href="http://" ? target="box" ? treeId="543543" ? /> ?
? </DSTree> ?
? <DSTree ? text="MSDN" ? open="false" ? href="http://" ? target="box" ? treeId="432"> ?
? <DSTree ? text="DHTML" ? href="http://" ? target="box" ? treeId="4353" ? /> ?
? <DSTree ? text="HTC" ? href="http://" ? target="box" ? treeId="543543" ? /> ?
? <DSTree ? text="XML" ? href="" ? target="box" ? treeId="2312" ? /> ?
? </DSTree> ?
? </DSTree> ?
? </DSTreeRoot> ?
? </xml> ?
? 現(xiàn)在我想寫程序來控制這個(gè)數(shù)據(jù)島的權(quán)限,應(yīng)該要怎么做呀?
答:
?用XSL解析? ? ? 根據(jù)新增屬性給相應(yīng)權(quán)限
建表: ?
? 角色:role_id,role_name ?
? 角色對應(yīng)節(jié)點(diǎn):role_id,tree_id ?
? 工號(hào)對應(yīng)角色:staff_id,role_id ?
? 樹形表:tree_id,ptree_id,url,title ?
? ?
? 然后每次樹形節(jié)點(diǎn)展開通過和本人登錄的session("staff_id")關(guān)聯(lián),查詢所有具備權(quán)限的子節(jié)點(diǎn)。展開只顯示子節(jié)點(diǎn)。 ?
? 子節(jié)點(diǎn)連接的URL為了防止未授權(quán)打開,可以加入判斷:判斷referer_url是否是來自樹形節(jié)點(diǎn)的頁面。如果不是就不讓訪問。