之后我會(huì)再開專題分析我這個(gè)項(xiàng)目峻厚,目前只寫一下debug霞玄。骤铃。。
更多技術(shù)文章請(qǐng)?jiān)L問我的博客園賬戶:點(diǎn)擊這里
那邊會(huì)更新有關(guān)生物信息學(xué)坷剧,java Web惰爬,統(tǒng)計(jì)學(xué)理論和一些雜七雜八的記錄:)
leetcode刷題記錄爭(zhēng)取日更(github):點(diǎn)擊這里
問題描述:登錄后,不同角色應(yīng)該展示不同菜單听隐。例如我的一個(gè)用戶cc补鼻,屬于RD(研發(fā)部門),他擁有查看所有訂單權(quán)限,所以登錄后應(yīng)該在主頁看到风范,他所創(chuàng)建的所有訂單的列表咨跌。而我的另一個(gè)用戶admin,屬于管理員硼婿,他在登錄后只需要看到歡迎頁面(或者統(tǒng)計(jì)頁面)锌半。
知識(shí)總結(jié):
1.善用freemaker的include標(biāo)簽,將與權(quán)限相關(guān)的ftl模塊單獨(dú)放置寇漫,通過@shiro.hasPermission來引用刊殉。
2.if標(biāo)簽用來隱藏不需要展示在頁面中的資源。
3.ShiroFilterFactoryBean 處理攔截資源文件問題州胳。不過這次沒有用到记焊。
解決方案:
1.在主頁(index.ftl)中合適位置添加
2.按鈕放置在菜單上,sidebar.ftl通過sys_resources表查找資源并列舉(包括其child)栓撞,那么表中應(yīng)該保存資源的父子關(guān)系遍膜,至于顯示的時(shí)候,只需要用if標(biāo)簽控制該父級(jí)是否顯示即可瓤湘。
if標(biāo)簽示例:
<#if node.id!=48>
</#if>
3.本來考慮過對(duì)不同的角色設(shè)置不同的successUrl瓢颅,后來覺得不合適。