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...