在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  數(shù)據(jù)庫/ 添加權(quán)限的問題?

添加權(quán)限的問題?

以前做過權(quán)限是寫死的,最近想了解一下可以添加權(quán)限的這個功能。
想問一下權(quán)限可以添加的問題。

  • 比如說,網(wǎng)站一開始的權(quán)限初始化好了,使用過程中,管理員添加了一個 編輯文章的 權(quán)限,這時候擁有這個權(quán)限才可以編輯文章,但是代碼是一開始就寫好的,開發(fā)者不可能想到管理員添加這個權(quán)限,那么這個新添加的權(quán)限有什么用呢?
  • 還是我理解錯了,可以動態(tài)添加權(quán)限并不是這么一回事?望解疑。 謝謝。
回答
編輯回答
逗婦乳
  1. 將需要/可能需要權(quán)限控制的路由存入數(shù)據(jù)庫路由表中(路由需要指定name)
  2. 為用戶/角色分配路由權(quán)限
  3. 添加路由權(quán)限驗證中間件
    a. 檢查路由是否存在于路由表中
    b. 存在則獲取當(dāng)前登錄用戶/角色是否有該路由權(quán)限(有則$next,無則響應(yīng)無權(quán)限提示)
    c. 不存在直接$next($req)

當(dāng)需要添加文章編輯權(quán)限時:

  1. 插入數(shù)據(jù)到路由表(post.edit)
  2. 為用戶分配路由post.edit

https://github.com/Sydney710/...

2017年9月7日 05:21
編輯回答
不討喜

你理解 錯了。如果一開始代碼里沒判斷 ,那添加權(quán)限 沒半毛錢的用。

添加權(quán)限 ,判斷權(quán)限 要一起才有用。

2018年2月21日 17:28
編輯回答
逗婦惱

權(quán)限添加的方式有很多,直接寫在業(yè)務(wù)代碼里面的權(quán)限判斷是最簡單明了的一種,但是會給開發(fā)造成負擔(dān),維護起來也不方便,就比如遇到題主描述里面的問題,基本只能交給開發(fā)來改。

我比較常用的權(quán)限控制,是寫一個中間件,或者控制器的構(gòu)造函數(shù)里,使用某些固定的格式來直接進行權(quán)限管理。舉個例子:
通常我們的控制器的命名是有規(guī)則的,xxxController
權(quán)限的格式是:控制器名 + 方法名
比如 文章相關(guān)的控制器: ArticleController 里面有個編輯的函數(shù):edit

那么 編輯文章的權(quán)限名就是字符串: ‘a(chǎn)rticlecontroller@edit’

某個請求到來的時候,在中間件或者構(gòu)造函數(shù)中,判斷這個用戶是否有相應(yīng)的權(quán)限。如果沒有,則中斷函數(shù),進行異常處理。如果有,則繼續(xù)執(zhí)行代碼。

2017年6月5日 14:26