Phân Quyền
Lấy danh sách chức vụ
Để lấy tất cả các cấu hình chức vụ trong cms bạn sử dụng method all
của class SKD_Roles
Role::make()->all();
//hoặc
$role = Role::make();
$role->all();
//Kết quả
[
"root" => SKD_Role {
#key: "root"
#name: "Root"
#capabilities: [
"loggin_admin" => true
"switch_themes" => true
"edit_themes" => true
...
]
#roles: SKD_Roles {
roles: array:4 [▶]
roleObjects: array:4 [▶]
roleNames: array:4 [▶]
roleKey: "user_roles"
useDb: true
}
}
"administrator" => SKD_Role {
...
}
"subscriber" => SKD_Role {
...
}
]
Mặt định cms skilldo cung cấp các role
- administrator
- subscriber : chức vụ mặc định của khách hàng đăng ký khi website không có thương mại
- customer: chức vụ mặc định của khách hàng đăng ký khi website có mua bán
Để lấy tất cả tên chức vụ trong cms bạn sử dụng method getNames
của class SKD_Roles
Role::make()->getNames();
//Kết quả
[
"root" => "Root"
"administrator" => "Administrator"
"subscriber" => "Subscriber"
"customer" => "Khách hàng"
]
Thêm chức vụ
Để thêm một chức vụ mới trong cms bạn sử dụng method add
của class SKD_Roles
Role::add($roleKey1, $roleName1);
Role::add($roleKey2, $roleName2);
//hoặc
$role = Role::make();
$role->add($roleKey1, $roleName1);
$role->add($roleKey2, $roleName2);
method nhận vào 2 tham số, role key là id của chức vụ và role name là tên hiển thị của chức vụ
Cập nhật chức vụ
Để cập nhật thông tin một chức vụ trong cms bạn sử dụng method update
của class SKD_Roles
Role::update($roleKey, $roleName, $capabilities);
//hoặc
$role = Role::make();
$role->update($roleKey, $roleName, $capabilities);
method nhận vào 3 tham số,
- $roleKey là id của chức vụ muốn cập nhật
- $roleName là tên hiển thị mới của chức vụ
- $capabilities là danh sách quyền hạn của chức vụ
Xóa chức vụ
Để xóa một chức vụ trong cms bạn sử dụng method remove
của class SKD_Roles
Role::remove($roleKey1);
Role::remove($roleKey2);
//hoặc
$role = Role::make();
$role->remove($roleKey1);
$role->remove($roleKey2);
method nhận vào role key là id của chức vụ muốn xóa
Thao tác với chức vụ
Lấy chức vụ
Để thao tác với chức vụ bạn cần lấy chức vụ đó bằng method get
$role = Role::get('customer');
Kiểm tra quyền
Để kiểm tra một chức vụ có một quyền nào đó chưa bạn sử dụng method has
if(Role::get('customer')->has('loggin_admin')) {
//
}
Lấy danh sách quyền
Để lấy danh sách quyền của một chức vụ bạn sử dụng method getCapabilities
$capabilities = Role::get('customer')->getCapabilities();
Thêm quyền vào chức vụ
Để thêm quyền của một chức vụ bạn sử dụng method add
Role::get('customer')->add('loggin_admin');
Xóa quyền của chức vụ
Để xóa quyền của một chức vụ bạn sử dụng method remove
Role::get('customer')->remove('loggin_admin');
Quyền hạn thành viên
UserRole::hasCap
Method UserRole::hasCap
kiểm tra user có quyền sử dụng chức năng không, nếu có quyền trả về true ngược lại là false
if(UserRole::hasCap($userId, 'edit_post')) {
//permission successfully
}
UserRole::getCap
Method UserRole::getCap
trả về các quyền user có thể sử dụng
dd(UserRole::getCap($userId))
/**
"loggin_admin" => true
"switch_themes" => true
"edit_themes" => true
...
*/
UserRole::get
Method UserRole::get
trả về key nhóm (chức vụ) của user
dd(UserRole::get($userId))
//["customer"]
UserRole::getName
Method UserRole::getName
trả về tên nhóm (chức vụ) của user
dd(UserRole::getName($userId))
//Khách hàng
UserRole::add
Method UserRole::add
set user vào nhóm (chức vụ) mới
dd(UserRole::add($userId, 'administrator'))
UserRole::remove
Method UserRole::remove
xóa nhóm (chức vụ) khỏi user
dd(UserRole::remove($userId, 'administrator'))