Skip to content

ConfigDevelopment/rbac-dynamic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

🔐 RBAC Dynamic – Phân quyền động

Hệ thống RBAC (Role-Based Access Control) động cho phép quản lý quyền người dùng một cách linh hoạt, có thể mở rộng theo Module → Subsystem → Function → Command mà không cần hard-code trong code.
Quyền được lưu trong DB, admin có thể thêm mới hoặc chỉnh sửa trực tiếp mà không phải build lại ứng dụng.


📑 Mục lục


📖 Giới thiệu

Trong hệ thống lớn (ERP, HRM, CRM…), số lượng chức năng và hành động rất nhiều.
RBAC động giúp:

  • Tách rời phần định nghĩa quyền khỏi source code.
  • Cho phép thêm mới Function, Command, Permission mà không cần build lại.
  • Hỗ trợ đa chi nhánh (Branch).
  • Vẫn tương thích với ASP.NET Identity.

⚙️ Cơ chế phân quyền động

  1. Xác thực (Authentication)
    Người dùng đăng nhập qua User (IdentityUser<Guid>).

  2. Phân quyền (Authorization)
    Khi người dùng gọi API hoặc truy cập UI:

    • Hệ thống lấy danh sách Permission từ:
      • Quyền trực tiếp (UserPermission)
      • Quyền theo nhóm (UserPermissionGroup)
    • Kiểm tra xem user có quyền với Function + Command trong Branch hay không.
  3. Quản trị động

    • Có thể thêm mới Subsystem, Module, Function, Command mà không cần sửa code.
    • Admin chỉ cần định nghĩa Permission và gán cho PermissionGroup hoặc User.

📌 Ví dụ luồng phân quyền

  • Subsystem: Kế toán
  • Module: Quản lý hóa đơn
  • Function: Danh sách hóa đơn (FunctionCode = InvoiceList)
  • Command: View, Create, Delete
  • PermissionGroup: "Nhân viên kế toán" có quyền View, Create
  • User A thuộc chi nhánh Hà Nội, nằm trong nhóm "Nhân viên kế toán"

👉 Khi User A đăng nhập tại chi nhánh Hà Nội:

  • ✅ Có thể xemtạo mới hóa đơn
  • ❌ Không thể xóa hóa đơn

🚀 Ưu điểm

  • Linh hoạt: Không cần hard-code quyền.
  • Quản trị động: Admin quản lý trực tiếp từ DB/UI.
  • Đa chi nhánh: Hỗ trợ quyền tách biệt theo chi nhánh.
  • Tích hợp sẵn Identity: Sử dụng ASP.NET Identity cho xác thực, RBAC cho phân quyền chi tiết.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published