Xin chào các bạn, tôi đã thấy rất nhiều hướng dẫn về RBAC của Yii 2 nhưng tôi thực sự không thể đánh giá cao cách thực hiện các quy tắc. Trong hướng dẫn Yii 2, họ đã giới thiệu cách thức các quy tắc được thực hiện nhưng không thực sự làm thế nào nó có thể được thực hiện trong hành vi của bộ điều khiển hoặc ở một nơi khác. Tôi thực sự cần một số chứng ngộ về vấn đề này.Thực hiện Quy tắc RBII Yii2
Điều tôi hiện có là hệ thống tải lên tài liệu nơi tôi có hai vai trò là bộ mã hóa quản trị &. Về cơ bản, vai trò quản trị viên có thể thực hiện tất cả trong khi vai trò bộ mã hóa chỉ có thể tạo, xem riêng, cập nhật và xóa riêng. Tôi đã tạo một Rule có tên encodedBy.
Đây là mã của tôi trong EncoderRule tôi
namespace app\rbac; use yii\rbac\Rule;
/** * Checks if encoded_by matches user passed via params */ class EncoderRule extends Rule {
public $name = 'encodedBy';
/**
* @param string|integer $user the user ID.
* @param Item $item the role or permission that this rule is associated with
* @param array $params parameters passed to ManagerInterface::checkAccess().
* @return boolean a value indicating whether the rule permits the role or permission it is associated with.
*/
public function execute($user, $item, $params)
{
return isset($params['document']) ? $params['document']->encoded_by == $user : false;
} }
tôi lưu trữ dữ liệu trong bảng 'tài liệu' nơi tôi có một trường có tên là 'encoded_by' Tôi hy vọng bạn guys có thể giúp tôi về vấn đề này. Cảm ơn rất nhiều !!!
Video này thực sự là một công việc tốt để giải thích RBAC cho bất kỳ ai không chắc chắn về cách hoạt động: https://www.youtube.com/watch?v = vLb8YATO-HU – TheStoryCoder