Tôi đang trong quá trình xây dựng hệ thống kiểm soát truy cập như là một phần của khung công tác web mà tôi đang phát triển. Tôi muốn làm cho nó trở nên siêu linh hoạt và tuyệt vời. Bạn có thể giúp tôi bằng cách cung cấp đầu vào và thông tin chi tiết về thiết kế của tôi không? Đây là công việc của tôi cho đến nay (câu hỏi cụ thể của tôi là ở phía dưới):Xây dựng Hệ thống Kiểm soát Truy cập Tốt hơn
Người dùng
- Người dùng có một tên người dùng (32 ký tự, không có khoảng trắng) và mật khẩu
- Người dùng đã một hoặc nhiều địa chỉ e-mail mà phải được xác nhận
- người dùng có thể đăng nhập bằng cách sử dụng tên đăng nhập hoặc bất kỳ địa chỉ e-mail của họ
- người dùng có thể liên quan đến số không hoặc nhiều tài khoản của họ
Accounts
- Accounts đại diện cho một hoặc nhiều người dùng hơn
- Mỗi người dùng có thể có quyền cụ thể hoặc vai trò một tài khoản (ví dụ, chủ sở hữu tài khoản hoặc "có thể thêm người dùng mới")
- Tất cả tài khoản được liên kết với một loại tài khoản
Loại tài khoản
- loại tài khoản không có hay có nhiều vai trò loại tài khoản
- loại tài khoản không có hay có nhiều loại tài khoản tính năng
Loại tài khoản Vai trò
- Ví dụ, "Chủ đầu tư", "Quản trị viên", "Người dùng điện", "Khách", v.v.
- Vai trò loại tài khoản là tập hợp các quyền loại tài khoản
Loại tài khoản Quyền
- Loại tài khoản cho phép những hành động cụ thể trong hệ thống mà ứng dụng logic sẽ xác minh chống lại
- Họ có thể tham khảo một phụ huynh, để họ có thể được nhóm theo thứ bậc
- Ví dụ:
- "Quản lý người dùng"
- "Add User"
- "Xóa người dùng"
- "Quản lý người dùng"
- Những điều khoản có thể đặc biệt cho một loại tài khoản tính năng
Đặc điểm loại tài khoản
- tính năng Loại tài khoản chưa được kích hoạt trên một tài khoản để cho nó thêm quyền
- Ví dụ, "Tài khoản Tiêu chuẩn" hoặc "Premium Account"
- Những tính năng này, nếu được kích hoạt trên một tài khoản, sẽ cung cấp cho các truy cập tài khoản của chủ sở hữu lớn hơn cho hệ thống
- họ được theo dõi khi chúng được kích hoạt hoặc ngừng hoạt động và có thể được lập hoá đơn chống lại định kỳ hoặc theo yêu cầu
Quest ions
Cách tốt nhất để kiểm tra logic ứng dụng dựa trên hành động của người dùng là gì? Tôi đã nghĩ đến việc lưu trữ tất cả quyền của người dùng trong đối tượng cho phiên của họ (yêu cầu đăng xuất/đăng nhập để làm mới quyền, mà tôi không phải là người hâm mộ - bất kỳ ý tưởng nào về quản lý quyền trong thời gian thực?):
{
"All Permissions": {
"User Management": {
"Add User",
"Delete User"
},
"Premium Account": {
"Download Files",
"Upload Files"
},
}
}
Sau đó tôi sẽ khai báo các quyền được yêu cầu cho một hành động cụ thể trong hệ thống. Có thể một cái gì đó như:
Permission::require('Add User');
Nếu quyền được khai báo không nằm trong đối tượng quyền người dùng, yêu cầu sẽ không thành công. Tuy nhiên, điều này có vẻ căng thẳng đối với mỗi hành động của người dùng. Ngoài ra, điều gì sẽ xảy ra nếu một tập con khác của quyền có chuỗi "Thêm người dùng"?
Cảm ơn trước vì đã giúp bạn với điều này!
Đó là video tôi cũng liên kết trong câu trả lời của tôi –
có rất hạn chế tôi cần thêm điều khiển. –