亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

不使用三方包時(shí),如何在社交系統(tǒng)ThinkSNS中建立優(yōu)雅的用戶權(quán)限管理【研發(fā)日記13】

JackJiang / 1761人閱讀

摘要:本文主要全面講解在不適用第三方包的情況下,如何在基于框架上,研發(fā)社交系統(tǒng)時(shí),簡(jiǎn)歷一套優(yōu)雅而不失性價(jià)比的用戶權(quán)限管理體系功能,內(nèi)含真實(shí)代碼。需求場(chǎng)景就是用戶組權(quán)限節(jié)點(diǎn),這個(gè)需求有很多很好的第三方包實(shí)現(xiàn)。但是已經(jīng)足以勝任用戶組權(quán)限判斷邏輯了。

本文主要全面講解在不適用第三方包的情況下,如何在基于Laravel框架上,研發(fā)社交系統(tǒng)ThinkSNS+時(shí),簡(jiǎn)歷一套優(yōu)雅而不失性價(jià)比的用戶權(quán)限管理體系功能,【內(nèi)含ThinkSNS真實(shí)代碼】。

需求場(chǎng)景

就是用戶組+權(quán)限節(jié)點(diǎn),這個(gè)需求 laravel 有很多很好的第三方包實(shí)現(xiàn)。下面描述代碼不參與緩存機(jī)制純數(shù)據(jù)庫(kù)查詢,給大家提供一個(gè)思路。

下面的代碼都是來(lái)自于ThinkSNS+,是基于 Laravel 全新開(kāi)發(fā)的 ThinkSNS 社交開(kāi)源項(xiàng)目,遵循 Apache-2.0 開(kāi)源協(xié)議。歡迎 Star 哦。

數(shù)據(jù)表設(shè)計(jì)

其實(shí)這一塊我個(gè)人是參考的 Zizaco/entrust 因?yàn)槲矣X(jué)得,大多數(shù)情況下,我們要用的角色和權(quán)限節(jié)點(diǎn)都是真多用戶的。數(shù)據(jù)表設(shè)計(jì)如下:

可以看到關(guān)系如下 user -> role -> ability ,其中關(guān)系全部都是多對(duì)多關(guān)系。一個(gè)用戶可以擁有多個(gè) role,一個(gè) ability 可以被分配給多個(gè) role 。

鏈?zhǔn)椒椒ㄔO(shè)計(jì)

其中調(diào)用 $user->ability()->all() 和 $user->ability()->all() 都是返回的 集合 可以鏈?zhǔn)秸{(diào)用集合下的所有方法進(jìn)一步操作。

ability 用戶 Trait

Ability 實(shí)例


Role 模型所需代碼

使用

然后我們打開(kāi) User 模型wen jia文件添加如下代碼:

class User ...
{

use UserHasAbility;

}

總結(jié)

其實(shí)性狀在 User 模型中只暴露了 roles 和 ability 兩個(gè)公開(kāi)方法。但是已經(jīng)足以勝任用戶組權(quán)限判斷邏輯了。

整個(gè) ability 都是結(jié)合在集合之上的一些封裝,這樣是的代碼調(diào)用更加優(yōu)雅。

以上代碼是在開(kāi)發(fā)ThinkSNS+中的實(shí)際真實(shí)代碼。具體的實(shí)現(xiàn)可參考項(xiàng)目。

以上代碼都來(lái)自于ThinkSNS Plus,看完整的開(kāi)發(fā)代碼可以看倉(cāng)庫(kù):

GitHub: https://github.com/slimkit/th...(開(kāi)源不易,求 Star )
ThinkSNS官網(wǎng):http://www.thinksns.com/

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/25762.html

相關(guān)文章

  • 基于 Laravel Route 社交系統(tǒng)ThinkSNS+ Component【研發(fā)日記系列三

    摘要:在社交系統(tǒng)中有這樣一個(gè)命令主要是用作包的安裝,升級(jí),卸載。這在開(kāi)發(fā)過(guò)程中很有用。內(nèi)測(cè)申請(qǐng)方式提供個(gè)人企業(yè)聯(lián)系方式及認(rèn)證信息實(shí)名企業(yè)營(yíng)業(yè)執(zhí)照照片或掃描件及申請(qǐng)說(shuō)明,發(fā)送郵件至將有機(jī)會(huì)獲得首批內(nèi)測(cè)資格,名額有限,申請(qǐng)從速。 在前面,我介紹了拓展類型,分別有 plus-compnent 和 plus-plugin 兩個(gè),這里重點(diǎn)講以下如何實(shí)現(xiàn) plus-component 的。 plus-c...

    pf_miles 評(píng)論0 收藏0
  • 如何 Laravel “規(guī)范” 開(kāi)發(fā)驗(yàn)證碼發(fā)送功能【社交系統(tǒng)ThinkSNS研發(fā)日記十一】

    摘要:需求場(chǎng)景發(fā)送驗(yàn)證碼或者消息通知,可發(fā)送到手機(jī)或郵箱中。完成首先,在中的規(guī)范就是使用的消息通知,這里基于場(chǎng)景為驗(yàn)證碼。所以我們?cè)隍?yàn)證碼模型中添加是完全符合通知的正確使用的。 順便發(fā)個(gè)小通知:7月15日ThinkSNS+開(kāi)源版發(fā)布,同時(shí)非開(kāi)源的APP也走出內(nèi)測(cè)階段,體驗(yàn)二維碼也全面發(fā)布體驗(yàn)。 什么是ThinkSNS ? ThinkSNS(簡(jiǎn)稱TS),一款全平臺(tái)綜合性社交系統(tǒng),為國(guó)內(nèi)外大中小...

    Flands 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<