Nhảy tới nội dung
Phiên bản: 7.3.2

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'))