2012-02-20 19 views
8

Tôi đang đi sâu vào RBAC trong khi thiết kế trang web mới và khá lớn/phức tạp. Tôi đang cố gắng tìm ra cách để tạo một tác vụ hoặc chỉ đơn giản là hoạt động với quy tắc biz.Chính xác "nhiệm vụ" trong RBAC của Yii là gì?

Bây giờ, tôi đã đọc nhiều nhất nếu không phải tất cả tài liệu hiện có. Tài liệu hiện tại nói rằng "một nhiệm vụ bao gồm các hoạt động". This bài viết wiki nói rằng các thuật ngữ khác nhau chỉ đơn giản là đặt tên các quy ước và giới hạn duy nhất tồn tại là cấu trúc một vai trò phải bao gồm các nhiệm vụ (hoặc các vai trò khác); nhiệm vụ nên bao gồm các hoạt động (hoặc các nhiệm vụ khác) và các hoạt động là thuật ngữ nguyên tử không được các thực thể khác sáng tác thêm. Tôi cũng đọc các phần liên quan trong sách "Agile web dev ..." và sách "Yii cookbook" - cả hai đều không làm sáng tỏ thêm về vấn đề này (ít nhất là khi nhìn qua kính của tôi).

Cho phép chuyển đến ví dụ của tôi, nơi tôi sẽ trình bày câu hỏi. Trên thực tế, cho phép sử dụng một ví dụ tương tự như được thể hiện trong hầu hết các tài nguyên tài liệu được đề cập ở trên: Cho phép nói rằng tôi có một bài đăng blog và tôi muốn/cần phải có tác giả của nó có thể "cập nhật bài của riêng". Bây giờ, tại sao điều này nên là một nhiệm vụ như thường được thể hiện trong các tài nguyên tài liệu và không phải là một hoạt động với một quy tắc biz?

Tôi nghĩ rằng câu hỏi trên cho thấy định nghĩa bao hàm của một "nhiệm vụ" (trong ngữ cảnh RBAC tất nhiên).

Hãy giúp tôi chưng cất định nghĩa tốt hơn cho nhiệm vụ RBAC.

EDIT: Tôi đã đề xuất các định nghĩa sau đây của các thuật ngữ được đề cập để giúp khái niệm hóa chúng theo cách hữu ích. Nói tóm lại và ở dạng đơn giản nhất: các hoạt động là các khối xây dựng cơ bản. Họ là những nhà phát triển tài liệu làm việc với và chỉ họ. Nhà phát triển soạn các nhiệm vụ và hoạt động hàng đầu. Vai trò bao gồm các tác vụ, như một tập hợp các tác vụ. Vai trò và nhiệm vụ là những gì mà quản trị viên trang web nên chơi - chỉ định và thu hồi người dùng nhưng không phải là hoạt động. Đó là một cách hay để xem và nắm bắt các thực thể đó (vai trò, nhiệm vụ và hoạt động). Bạn có tùy chọn khác để khái niệm hóa khác nhau không? Bất kỳ nhận xét nào đều sẽ được đánh giá cao.

TIA! Bôô.

Trả lời

3

Tôi muốn nói giống như bạn đã làm trong chỉnh sửa câu hỏi của mình. Nhiệm vụ chỉ đơn giản là một thành phần của các hoạt động mà người dùng có thể thực hiện có điểm chung. Vì vậy, bạn có ví dụ về hoạt động oList, oView, oCreateoUpdate đây là các nhà phát triển hoạt động gán cho các hành động điều khiển để kiểm soát truy cập, trong đó hai người đầu tiên chỉ đọc và hai người thứ hai có quyền ghi vào dữ liệu (đó là những gì họ có chung). Vì vậy, bây giờ bạn muốn kết hợp chúng với các nhiệm vụ tInspecttManage mà cả hai đều giữ 2 hoạt động, cái đầu tiên có thể liệt kê và xem và cái thứ hai có thể tạo và cập nhật. Bạn có thể tùy chọn tInspect một nhiệm vụ phụ của tManage để người dùng có tManage có thể liệt kê, xem, cập nhật và tạo nhưng thông thường bạn chỉ cần cung cấp vai trò của mình cho cả hai nhiệm vụ.

1

nếu có hai người dùng 1) quản trị 2) sử dụng

vì vậy chúng tôi thiết lập vai trò updatePost cho trang cập nhật.
và quản trị viên là phụ huynh của updatePost để quản trị viên có thể cập nhật. người dùng có quyền cập nhậtOwnPost.updateOwnPost là cha mẹ của updatePost với bizrule.so nếu bizrule thỏa mãn anh ta có thể cập nhật

2

Về phân loại vai trò -> nhiệm vụ -> hoạt động, chúng về cơ bản giống nhau, như bạn thấy trong mã chúng thuộc lớp CAuthItem . Chúng tôi đặt tên cho chúng khác nhau chủ yếu từ quan điểm của người dùng.

  • Thao tác chỉ được các nhà phát triển sử dụng và chúng thể hiện mức độ cho phép tốt nhất.

  • Công việc được xây dựng dựa trên các hoạt động của nhà phát triển. Chúng đại diện cho các đơn vị xây dựng cơ bản được sử dụng bởi các quản trị viên RBAC.

  • Vai trò được xây dựng dựa trên các tác vụ của quản trị viên và có thể được chỉ định cho người dùng hoặc nhóm người dùng.

Ở trên là đề xuất, không bắt buộc. Nói chung, quản trị viên chỉ có thể xem các nhiệm vụ và vai trò, trong khi các nhà phát triển chỉ quan tâm đến các hoạt động và nhiệm vụ.

Kiểm tra này ra: http://www.yiiframework.com/forum/index.php/topic/2313-rbac-confusion/page_p_16035#entry16035

+0

là những cùng hai người :) http://www.yiiframework.com/forum/index.php/topic/2313-rbac-confusion/page__view__findpost__p__16035 –