Laravel的許可權管理(RBAC)

2021-08-09 14:23:43 字數 2373 閱讀 7841

1、安裝entrust

通過composer安裝擴充套件包 :composer require zizaco/entrust 5.2.x-dev

zizaco\entrust\entrustserviceprovider::class,

同時在該配置檔案中註冊相應門面到aliases陣列:

'entrust' => zizaco\entrust\entrustfacade::class,

'role' => \zizaco\entrust\middleware\entrustrole::class,

'permission' => \zizaco\entrust\middleware\entrustpermission::class,

'ability' => \zizaco\entrust\middleware\entrustability::class,

2、配置

在配置檔案config/auth.php中設定合適的值,entrust會使用這些配置值來選擇相應的使用者表和模型類。

php artisan vendor:publish

該命令會在config目錄下建立乙個entrust.php檔案。

3、使用者角色許可權表

使用entrust提供的遷移命令生成遷移檔案:

php artisan entrust:migration

然後通過以下命令生成相應的資料表:

php artisan migrate

最終會生成4張新表:

roles—— 儲存角色

permissions—— 儲存許可權

role_user—— 儲存角色與使用者之間的多對多關係

permission_role—— 儲存角色與許可權之間的多對多關係

4、模型類

role

use zizaco\entrust\entrustrole;

class role extends entrustrole{}

permission

use zizaco\entrust\entrustpermission;

class permission extends entrustpermission

user

接下來我們在user模型中使用entrustusertrait:

use illuminate\notifications\notifiable;

use illuminate\foundation\auth\user as authenticatable;

use zizaco\entrust\traits\entrustusertrait;

use illuminate\database\eloquent\model;

class user extends authenticatable

}

5.建立角色/許可權並進行分配

/**

* 新增角色

*/public function add_role()

/*** 給使用者分配角色

*/public function send_role()

/*** 新增許可權

*/public function add_permission()

/** * 分配許可權

*/public function send_permission()

6、檢查角色&許可權

//檢查使用者是否有admin的角色,成功返回true否則false 

$user->hasrole('admin');

//檢查使用者是否有login的許可權,成功返回true否則false,一下兩者皆可

$user->can("login");

$user->haspermission('login');

7.用中介軟體驗證使用者是否有當前路由的許可權

use closure;

class rbacmiddleware

return $next($request);

}

許可權管理 chattr許可權

1 chattr 許可權 對包括root在內的所有使用者都起作用 新增chattr許可權 chattr i abc 檢視chattr許可權 lsattr abc 取消chattr許可權 chattr i abc i 針對檔案 則完全不能修改該檔案,針對目錄 只能修改目錄下檔案的資料,但不允許建立和刪...

許可權管理 ACL許可權

acl許可權簡介 當要給乙個使用者與檔案屬主 屬組 其他人許可權都不相同的時候使用,也就是說,這個使用者對於這個檔案不屬於三種身份的任何一種,是屬於第四種身份,那麼我們就需要使用acl許可權去給他賦予單獨的許可權。檢視分割槽acl許可權是否開啟 dumpe2fs h dev sda3 dumpe2f...

許可權及許可權管理

許可權管理 u 檔案的屬主,g 屬組,o 其他使用者 r 檔案 cat less more檢視內容 目錄 可使用ls命令,但不能切換進此目錄,也不能使用ls l命令 w x 檔案 可執行 目錄 使用cd ls l命令 chown 改變檔案屬主 只有管理員可以使用此命令 chown jack file...