成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

JackJiang / 1731人閱讀

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

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

需求場景

就是用戶組+權限節(jié)點,這個需求 laravel 有很多很好的第三方包實現。下面描述代碼不參與緩存機制純數據庫查詢,給大家提供一個思路。

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

數據表設計

其實這一塊我個人是參考的 Zizaco/entrust 因為我覺得,大多數情況下,我們要用的角色和權限節(jié)點都是真多用戶的。數據表設計如下:

可以看到關系如下 user -> role -> ability ,其中關系全部都是多對多關系。一個用戶可以擁有多個 role,一個 ability 可以被分配給多個 role 。

鏈式方法設計

其中調用 $user->ability()->all() 和 $user->ability()->all() 都是返回的 集合 可以鏈式調用集合下的所有方法進一步操作。

ability 用戶 Trait

Ability 實例


Role 模型所需代碼

使用

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

class User ...
{

use UserHasAbility;

}

總結

其實性狀在 User 模型中只暴露了 roles 和 ability 兩個公開方法。但是已經足以勝任用戶組權限判斷邏輯了。

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

以上代碼是在開發(fā)ThinkSNS+中的實際真實代碼。具體的實現可參考項目。

以上代碼都來自于ThinkSNS Plus,看完整的開發(fā)代碼可以看倉庫:

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

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

轉載請注明本文地址:http://systransis.cn/yun/25762.html

相關文章

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

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

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

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

    Flands 評論0 收藏0

發(fā)表評論

0條評論

JackJiang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<