99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

SentCMS 權(quán)限管理指南

2021-09-14 17:55 更新

權(quán)限擴(kuò)展

sentCMS權(quán)限判斷流程按順序如下:

1.IP 權(quán)限檢測(cè),如果配置了IP白名單(ADMIN_ALLOW_IP),則僅有白名單的IP可以通過(guò)這一步檢測(cè)。其他IP被直接拒絕。

2.特殊節(jié)點(diǎn)檢測(cè),特殊節(jié)點(diǎn)有兩種。一種是任何管理員都可以訪問(wèn)的節(jié)點(diǎn)(ALLOW_VISIT),例如修改密碼; 一種是除超級(jí)管理員外,任何管理員都不能訪問(wèn)的節(jié)點(diǎn)(DENY_VISIT), 例如僅供超級(jí)管理員使用的功能或者某些不提供外部訪問(wèn)但因?yàn)榫幋a需要不得不定義為public的方法。

如果ALLOW_VISIT檢測(cè)通過(guò),直接放行訪問(wèn)。如果DENY_VISIT檢測(cè)通過(guò),直接拒絕。如果二者都未通過(guò),則會(huì)進(jìn)入下一步權(quán)限檢測(cè)。

PS:在二次開(kāi)發(fā)完成后,應(yīng)仔細(xì)檢查每個(gè)控制的公共方法,包括繼承的公共方法。確保每個(gè)公共方法,出現(xiàn)在菜單,ALLOW_VISIT,DENY_VISIT之一。

3.動(dòng)態(tài)檢測(cè),即有些url是后來(lái)動(dòng)態(tài)的,例如分類(lèi),不可能我們每創(chuàng)建一個(gè)分類(lèi)就為這個(gè)分類(lèi)添加一個(gè)節(jié)點(diǎn),更不可能每添加一篇文檔就為這篇文檔添加一個(gè)節(jié)點(diǎn),這樣不僅管理麻煩而且節(jié)點(diǎn)數(shù)量也會(huì)爆炸性增長(zhǎng)。因此,需要寫(xiě)一段程序來(lái)檢測(cè)此類(lèi)url,詳細(xì)擴(kuò)展方法見(jiàn)下文。

4.菜單節(jié)點(diǎn)檢測(cè),即通過(guò)菜單”管理配置“的節(jié)點(diǎn),在”權(quán)限管理->訪問(wèn)授權(quán)“進(jìn)行設(shè)置控制。檢測(cè)通過(guò)后放行,否則拒絕。

動(dòng)態(tài)權(quán)限檢測(cè)擴(kuò)展

相關(guān)數(shù)據(jù)表
auth_extend

group_id 保存用戶(hù)組id

type 權(quán)限擴(kuò)展類(lèi)型,"分類(lèi)授權(quán)"的type為1,如果要擴(kuò)展授權(quán),您要為您的擴(kuò)展權(quán)限類(lèi)型規(guī)定一個(gè)type值,與其他類(lèi)型的擴(kuò)展授權(quán)區(qū)分。

extend_id 保存用戶(hù)組關(guān)聯(lián)的擴(kuò)展數(shù)據(jù)的id,對(duì)"分類(lèi)授權(quán)"而言,該字段保存的自然就是分類(lèi)的id了

模型代碼編寫(xiě)

您需要在 AuthGroupModel 模型中定義一個(gè)靜態(tài)方法,供控制器查詢(xún)某個(gè)用戶(hù)對(duì)某個(gè)類(lèi)型的擴(kuò)展權(quán)限擁有權(quán)限的數(shù)據(jù)id。

以"分類(lèi)授權(quán)"為例,AuthGroupModel::getAuthCategories(UID) 方法做了如下事情:

1.根據(jù)用戶(hù)id,查出用戶(hù)所屬用戶(hù)組group_id
2.根據(jù)group_id,從auth_extend表以type=1為條件查出了extend_id,即用戶(hù)擁有權(quán)限的分類(lèi).

另外,您需要定義一個(gè)方法,用來(lái)保存權(quán)限設(shè)定。

以"分類(lèi)授權(quán)"為例,AuthGroupModel::addToCategory($category_id,$uid) 即用來(lái)把分類(lèi)的權(quán)限設(shè)定寫(xiě)入auth_extend表

控制器代碼編寫(xiě)

用來(lái)執(zhí)行動(dòng)態(tài)檢測(cè)的程序代碼,定義在相應(yīng)控制器的 checkDynamic方法,因此,需要擴(kuò)展動(dòng)態(tài)權(quán)限檢測(cè)時(shí),只需要在你的控制器中創(chuàng)建checkDynamic方法,并在其中實(shí)現(xiàn)檢測(cè)業(yè)務(wù)邏輯。sentCMS的分類(lèi)和文檔的權(quán)限控制即通過(guò)在ArticleController中定義checkDynamic方法實(shí)現(xiàn)。

與模板有關(guān)的控制器代碼編寫(xiě)就不再介紹。

以"分類(lèi)授權(quán)"為例,相關(guān)方法如下:
1.addToCategory() 為用戶(hù)授權(quán)某個(gè)分類(lèi)
2.category() 輸出分類(lèi)授權(quán)設(shè)定頁(yè)面

模板代碼編寫(xiě)

1.修改View/AuthManager/index.html,增加一個(gè)鏈接,指向具體的權(quán)限設(shè)定頁(yè)面

例如:"分類(lèi)授權(quán)"的代碼:分類(lèi)授權(quán)

2.創(chuàng)建您的授權(quán)設(shè)定頁(yè)模板,分類(lèi)授權(quán)設(shè)置頁(yè)模板位于 View/AuthManager/category.html

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)