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

資訊專欄INFORMATION COLUMN

Laravel5.1基于Entrust擴(kuò)展包實(shí)現(xiàn)的RBAC權(quán)限控制模塊(遷移到其他項(xiàng)目中的方法)

li21 / 1135人閱讀

摘要:基于擴(kuò)展包實(shí)現(xiàn)的權(quán)限控制模塊遷移到其他項(xiàng)目中的方法大部分的項(xiàng)目中,都需要權(quán)限控制,我們的項(xiàng)目用的是的框架,基于擴(kuò)展包,寫了一個(gè)通用的權(quán)限控制模塊,方便后續(xù)其他項(xiàng)目需要時(shí)可用直接遷移使用。拷貝權(quán)限控制中間件。

Laravel5.1基于Entrust擴(kuò)展包實(shí)現(xiàn)的RBAC權(quán)限控制模塊(遷移到其他項(xiàng)目中的方法)

大部分的項(xiàng)目中,都需要權(quán)限控制,我們的項(xiàng)目用的是Laravel5.1的框架,基于Entrust擴(kuò)展包,寫了一個(gè)通用的RBAC權(quán)限控制模塊,方便后續(xù)其他項(xiàng)目需要時(shí)可用直接遷移使用。

github地址:https://github.com/NancyLin/l...
項(xiàng)目地址:git@github.com:NancyLin/laravel-rbac.git

注意,如果要把項(xiàng)目下到自己的電腦上測(cè)試,修改.env的數(shù)據(jù)庫(kù)設(shè)置,將storage和bootstrap/cache 目錄更改為可讀寫可執(zhí)行的權(quán)限。

要把RBAC模塊遷移到自己的項(xiàng)目中方法如下: (1)安裝配置Entrust擴(kuò)展包

具體的安裝配置方法請(qǐng)看以下鏈接,這里不做說(shuō)明

https://github.com/Zizaco/entrust

(2)安裝配置好后,根據(jù)我們自己的實(shí)際需求,更改相關(guān)的數(shù)據(jù)表字段。
# 用戶表增加是否超級(jí)管理員
ALTER TABLE `users` ADD COLUMN `is_super` TINYINT(1) NOT NULL DEFAULT 0 COMMENT "是否超級(jí)管理員";

# 權(quán)限表增加父類菜單顯示、
ALTER TABLE `permissions` ADD COLUMN `p_id` INT(10) NOT NULL DEFAULT 0  COMMENT "父類菜單ID" AFTER `id`;
# 權(quán)限表增加是否菜單顯示
ALTER TABLE `permissions` ADD COLUMN `is_menu` TINYINT(1) NOT NULL DEFAULT 0  COMMENT "是否菜單顯示" AFTER `description`;
# 權(quán)限表增加是否菜單顯示
ALTER TABLE `permissions` ADD COLUMN `sort` TINYINT(4) NOT NULL DEFAULT 0  COMMENT "排序" AFTER `is_menu`;

# 權(quán)限表中display_name字段不允許為空
ALTER TABLE `permissions` Modify COLUMN `display_name` VARCHAR(255) NOT NULL DEFAULT ""  COMMENT "顯示名稱";
# 權(quán)限表中description字段不允許為空
ALTER TABLE `permissions` Modify COLUMN `description` VARCHAR(255) NOT NULL DEFAULT ""  COMMENT "描述";
(3)更改配置文件

config/entrust.php,指定相應(yīng)的 role 和 permission 的 model。

"role" => "AppModelsRole",

"permission" => "AppModelsPermission",

.env, 更改CACHE_DRIVER

CACHE_DRIVER=array
(4)注冊(cè)權(quán)限控制中間件

此份demo中,我們對(duì)于需要進(jìn)行權(quán)限控制的控制器都采用中間件方式,需要在 app/Http/Kernel.php 的 $routeMiddleware 中注冊(cè)中間件。

$routeMiddleware = [
 ....
  //權(quán)限中間件
  "permission" => AppHttpMiddlewareAuthPermission::class,
]
(5)在 User 模型中引入EntrustUserTrait

在此demo中,在 appUser.php 中增加以下代碼:

use ZizacoEntrustTraitsEntrustUserTrait;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    ...
    use EntrustUserTrait;
    ...
}
(6)注冊(cè)相關(guān)模塊的路由

在appHttproutes.php 中注冊(cè)相關(guān)的路由

Route::group(["middleware" => ["auth"]], function(){
    Route::get("home", "HomeController@index");
    Route::controller("check", "CheckController");
    Route::controller("load", "LoadBaseDataController");

    Route::get("user", "RbacUserController@index");
    Route::controller("user", "RbacUserController");

    Route::get("role", "RbacRoleController@index");
    Route::controller("role", "RbacRoleController");

    Route::get("permission", "RbacPermissionController@index");
    Route::controller("permission", "RbacPermissionController");
});
(7)將RBAC相關(guān)模塊的代碼文件或文件夾對(duì)應(yīng)地拷貝到自己的項(xiàng)目中

具體相關(guān)模塊文件或文件夾如下:

拷貝 ==appHttpControllersRbac== 下的所有相關(guān)模塊控制器。

拷貝 ==appHttpControllersAdminController.php== 管理通用控制器,要走權(quán)限控制中間件的控制器,都可以繼承該類。

拷貝 ==appHttpControllersCheckController.php== 驗(yàn)證數(shù)據(jù)控制器。

拷貝 ==appHttpControllersLoadBaseDataController.php== 加載基礎(chǔ)數(shù)據(jù)控制器。

拷貝 ==appHttpMiddlewareAuthPermission.php== 權(quán)限控制中間件。

拷貝 ==appModelsRole.php== 角色model。

拷貝 ==appModelsPermission.php== 權(quán)限model。

拷貝 ==appPresentersRbacPresenter.php== Rbac視圖邏輯處理類。

拷貝 ==appRepositoriesRepository.php== 數(shù)據(jù)model基礎(chǔ)邏輯處理類。

拷貝 ==appRepositoriesUserRepository.php== 用戶model基礎(chǔ)邏輯處理類。

拷貝 ==appRepositoriesRoleRepository.php== 角色model基礎(chǔ)邏輯處理類。

拷貝 ==appRepositoriesPermissionRepository.php== 權(quán)限model基礎(chǔ)邏輯處理類。

拷貝 ==publiccss== 下的所有文件和文件夾,前臺(tái)使用的插件的一些css文件(有些直接使用插件的官網(wǎng)地址,如果加載太慢,可將其下載到本地項(xiàng)目)。

拷貝 ==publicjs== 下的所有文件和文件夾,前臺(tái)使用的插件的一些js文件(有些直接使用插件的官網(wǎng)地址,如果加載太慢,可將其下載到本地項(xiàng)目)以及相關(guān)模塊的js文件。

拷貝 ==resourcesviewsrbac== 文件夾,里面包含相關(guān)模塊的view模板文件。

拷貝 ==resourcesviewserrors== 文件夾,里面包含相關(guān)模塊沒有權(quán)限時(shí)跳轉(zhuǎn)的view模板文件。

拷貝 ==resourcesviewslayouts== 文件夾,里面包含相關(guān)模塊的通用模塊的view模板文件。

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

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

相關(guān)文章

  • 人人必備10個(gè) Laravel 4 擴(kuò)展

    摘要:更多擴(kuò)展包中有豐富的擴(kuò)展包來(lái)幫你完成幾乎任何你想實(shí)現(xiàn)的功能。我們不能把所有的擴(kuò)展包都整理出來(lái),然而,這里還是列出了一些很有用的。總之,你幾乎總是能夠找到一個(gè)擴(kuò)展包可以解決你當(dāng)前的問(wèn)題。 Laravel 是一個(gè)非常流行且簡(jiǎn)單易用的PHP框架,它提供了很多基礎(chǔ)的工具(如 RESTful 路由、內(nèi)置的ORM、模版等)使你能夠快速的創(chuàng)建應(yīng)用。這意味著你可以花費(fèi)更少的時(shí)間來(lái)建立應(yīng)用程序的模版,給...

    darkbug 評(píng)論0 收藏0
  • laravel package收集

    摘要:查找保存下載用搭建自己的緩存?zhèn)}庫(kù)權(quán)限管理的好選擇基于封裝的后臺(tái)管理系統(tǒng),支持手機(jī)和端訪問(wèn)支付寶風(fēng)格的驗(yàn)證器后臺(tái)系統(tǒng)微信接口的部署腳本開發(fā)的博客系統(tǒng)百度推送自動(dòng)記錄用戶行為擴(kuò)展一個(gè)項(xiàng)目管理系統(tǒng)根據(jù)生成對(duì)應(yīng)導(dǎo)航的狀態(tài) 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...

    psychola 評(píng)論0 收藏0
  • RBAC-基于角色權(quán)限管理

    摘要:基于角色的權(quán)限管理權(quán)限管理,基于角色的訪問(wèn)控制,就是用戶通過(guò)角色與權(quán)限進(jìn)行關(guān)聯(lián)。這樣,就構(gòu)造成用戶角色權(quán)限的授權(quán)模型。角色可以理解為一定數(shù)量的權(quán)限的集合,權(quán)限的載體。版主可管理版內(nèi)的帖子可管理版內(nèi)的用戶等,這些是權(quán)限。 RBAC-基于角色的權(quán)限管理 RBAC權(quán)限管理 RBAC(Role-Based Access Control,基于角色的訪問(wèn)控制),就是用戶通過(guò)角色與權(quán)限進(jìn)行關(guān)聯(lián)。簡(jiǎn)...

    dingding199389 評(píng)論0 收藏0
  • Think-Casbin:一個(gè)專為ThinkPHP打造輕量級(jí)訪問(wèn)控制庫(kù),支持RBAC/ACL等權(quán)限

    摘要:是一個(gè)用語(yǔ)言打造的輕量級(jí)開源訪問(wèn)控制框架,目前在開源。采用了元模型的設(shè)計(jì)思想,支持多種經(jīng)典的訪問(wèn)控制方案,如基于角色的訪問(wèn)控制基于屬性的訪問(wèn)控制等。一個(gè)專為定制的的擴(kuò)展包。 PHP-Casbin 是一個(gè)用 PHP 語(yǔ)言打造的輕量級(jí)開源訪問(wèn)控制框架( https://github.com/php-casbin... ),目前在 GitHub 開源。PHP-Casbin 采用了元模型的設(shè)計(jì)...

    lieeps 評(píng)論0 收藏0
  • RBAC權(quán)限模型初步理解

    摘要:近來(lái)部門接到一個(gè)外包項(xiàng)目,是基于現(xiàn)有的系統(tǒng)做一個(gè)知識(shí)文檔庫(kù),類似于百度網(wǎng)盤一樣的功能,只是在角色和權(quán)限上與網(wǎng)盤不同,這個(gè)項(xiàng)目我們部門稱為,,難點(diǎn)就在于文件的權(quán)限管理。 ??近來(lái)部門接到一個(gè)外包項(xiàng)目,是基于現(xiàn)有的系統(tǒng)做一個(gè)知識(shí)文檔庫(kù),類似于百度網(wǎng)盤一樣的功能,只是在角色和權(quán)限上與網(wǎng)盤不同,這個(gè)項(xiàng)目我們部門稱為KM,Knowledge Manager ,難點(diǎn)就在于文件的權(quán)限管理。 ??以下...

    2shou 評(píng)論0 收藏0

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

0條評(píng)論

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