Mặc dù các bảng cơ sở dữ liệu trước đó sẽ tổ chức các thông tin cơ bản để trả lời các câu hỏi như liệu người dùng được giao cho một vai trò trong bối cảnh của một dự án cụ thể, chúng ta vẫn cần hệ thống phân cấp ủy quyền RBAC của chúng tôi để trả lời các câu hỏi liên quan đến user có quyền hay không thực hiện chức năng nhất định. Mặc dù mô hình RBAC trong Yii không thiết lập về các dự án TrackStar của chúng tôi, nó có một tính năng rất mạnh mẽ mà chúng ta có thể tận dụng lợi thế. Khi bạn tạo các ủy quyền hoặc phân công một mục cho người sử dụng, bạn có thể kết hợp một đoạn mã PHP sẽ được thực hiện gọi Yii:: app() -> user-> checkAccess (). Khi định nghĩa, bit của mã này phải trả lại true trước khi user được cấp phép.
Một ví dụ về tính hữu ích của tính năng này là trong bối cảnh của các ứng dụng cho phép người sử dụng để duy trì thông tin hồ sơ cá nhân. Thông thường trong trường hợp này, các ứng dụng muốn đảm bảo rằng một người sử dụng có sự cho phép cập nhật thông tin hồ sơ cá nhân của riêng mình và không ai khác. Trong trường hợp này chúng ta có thể tạo ra một mục ủy quyền được gọi là
updateProfile, và sau đó kết hợp một quy tắc kinh doanh để kiểm tra xem ID của người sử dụng hiện tại cũng giống như ID người sử dụng kết hợp với thông tin hồ sơ.
Trong trường hợp này, chúng ta sẽ kết hợp một quy tắc kinh doanh với sự phân công vai trò. Khi chúng ta chỉ định một người sử dụng có một vai trò cụ thể, chúng ta cũng sẽ liên kết một quy tắc kinh doanh kiểm tra các mối quan hệ trong bối cảnh của dự án. CheckAccess () phương pháp cũng cho phép chúng ta vượt qua trong một loạt các thông số bổ sung cho các quy tắc kinh doanh sử dụng để thực hiện logic của nó. Chúng tôi sẽ sử dụng điều này để vượt qua trong bối cảnh dự án hiện tại để các quy tắc kinh doanh có thể gọi một phương thức trên lớp các dự án AR để xác định có hay không sử dụng được giao cho vai trò đó trong dự án đó.