2012-01-13 39 views
5

Tôi đang thực hiện kiểm soát truy cập dựa trên vai trò sử dụng khuôn khổ yii cho ứng dụng được đề cập trong phát triển ứng dụng web sử dụng Agile book.I khuôn khổ yii đã thực hiện tất cả mọi thứ lên đến số trang 189.Yii framework: kiểm soát dựa trên vai trò truy cập

số trang 189 nói rằng phương pháp sau đây có thể được sử dụng để kiểm tra xem người dùng có được phép thực hiện một số hành động hay không.

Nếu (Yii :: app() -> user-> checkAccess ('createIssue')) {// thực hiện logic cần thiết}

nhưng phương pháp này luôn trả về false cho những người dùng có được giao cho createIssue hoạt động

sau đây là sơ đồ cơ sở dữ liệu cho RBAC

enter image description here

tôi đang liên kết UserID và vai trò cho bảng xác thực bằng cách sử dụng lệnh sau.

$ auth = Yii :: app() -> authManager; $ auth-> assign ('member', 1);

Như bạn có thể thấy bảng người dùng và bảng ủy quyền không có mối quan hệ trực tiếp.

Và tôi đã cấu hình tập tin main.php trong thư mục cấu hình

Đây là những tất cả chúng tôi đã làm cho đến nay và có thể bất kỳ phần cơ thể kiến ​​thức của bạn với tôi nếu có điều là mất tích ở đây. Cảm ơn trước sự giúp đỡ nào.

Trả lời

6

Thôi nào, anh bạn! Tất nhiên phải có một mối quan hệ trực tiếp giữa người dùng và các xác nhận. Trong đoạn mã sau:

$auth=Yii::app()->authManager; $auth->assign('member',1) 

'thành viên' thuộc về xác thực và '1' là id của người dùng được chỉ định với vai trò đó. "userid", trong bảng "authassigment", phải trỏ tới bảng người dùng.

+0

vâng, tôi đã phạm sai lầm ngu ngốc. xin lỗi các bạn vì đã lãng phí thời gian của bạn, – KItis

+2

Đừng quá thô lỗ với bản thân bạn, loại sự giám sát đó khá phổ biến. Đó là niềm vui của tôi để giúp bạn. –

Các vấn đề liên quan