MVC与单元测试实践之健身网站(三)-角色与权限
?
管理員的維護(hù)功能完成后,還有權(quán)限和角色,三者構(gòu)成權(quán)限系統(tǒng)。這里采用的RBAC是最經(jīng)典、最簡(jiǎn)單的一種,權(quán)限-角色-管理員只能層層傳遞,并不能直接為管理員分配權(quán)限。
?
一 權(quán)限、角色管理
a) 權(quán)限
之前編寫好了分頁(yè)組件,在權(quán)限列表直接用起來(lái)了,可惜假數(shù)據(jù)只有一頁(yè)
?
?
視圖背后對(duì)應(yīng)的Action是PermissionController.List。List方法獲取分頁(yè)數(shù)據(jù),默認(rèn)取第一頁(yè)不用多說。
?
?
權(quán)限、角色、管理員的添加、編輯界面都比較類似。
?
?
新增、編輯、刪除使用異步提交。新增、編輯的異步提交使用上一篇學(xué)到的方法,刪除直接在列表界面操作,使用普通的ajax請(qǐng)求方式
?
?
?
二 權(quán)限的分配
a) 權(quán)限的分配在角色、管理員的新增和編輯界面進(jìn)行
?
?
不得不說,自我感覺這套模板真是很舒服的,連勾選框的對(duì)勾都做的這么用心。但我不會(huì)用,導(dǎo)致權(quán)限列表過于靠左了,這塊還得想辦法調(diào)節(jié)一下。這塊使用了BootStrap的特色布局,經(jīng)過多次試驗(yàn),col-sm-3最適合了,再大則會(huì)過早地觸發(fā)自適應(yīng)。
?
b) 在cshtml頁(yè)面中可以自動(dòng)循環(huán)來(lái)創(chuàng)建權(quán)限列表,通過這種html與C#代碼混合的方式,生成每行三列的權(quán)限列表。但有一段@Html.Raw(@"</div><br /><div class='row'>")是因?yàn)?lt;/div>找不到匹配的標(biāo)簽,rzaor無(wú)法處理,需要用Raw方法來(lái)輸出。這類模板引擎很強(qiáng)大。
?
?
c) 一個(gè)關(guān)于數(shù)據(jù)操作的問題
權(quán)限操作設(shè)計(jì)到兩張中間表,權(quán)限-角色表、角色-管理員表,在寫入這些表時(shí),直接使用封裝好的repository方法是不行的,比如下面的做法,會(huì)因?yàn)椴辉谝粋€(gè)上下文(Context)而報(bào)錯(cuò)。
?
?
正確的做法是使用與roleRepository系統(tǒng)的上下文類,然后便開始改造,接口中增加了屬性。第一次在接口中使用屬性,不過屬性本來(lái)就是方法,今天被逼出來(lái)了哈哈。
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhixin9001/p/6965152.html
總結(jié)
以上是生活随笔為你收集整理的MVC与单元测试实践之健身网站(三)-角色与权限的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【线性代数】向量空间
- 下一篇: 学习笔记26_MVC前台强类型参数