# Phân quyền và vai trò

> Hướng dẫn quản lý vai trò và phân quyền truy cập trong hệ thống Noova Manage.

**Quyền truy cập:** Cần quyền **admin** hoặc quyền quản lý vai trò **Điều hướng:** `Tài khoản > Vai trò và Phân quyền` hoặc `/manage/account/role-permission`

***

## Tổng quan

Hệ thống phân quyền trong Noova Manage hoạt động dựa trên vai trò (role-based access control). Mỗi người dùng được gán một hoặc nhiều vai trò, mỗi vai trò chứa một tập hợp quyền (permissions) xác định những thao tác mà người dùng có thể thực hiện. Quản trị viên có thể tạo vai trò tùy chỉnh và phân quyền chi tiết cho từng module.

***

## Các vai trò hệ thống mặc định

Hệ thống cung cấp ba vai trò mặc định không thể chỉnh sửa hoặc xóa:

| Vai trò   | Mô tả                                           |
| --------- | ----------------------------------------------- |
| **admin** | Toàn quyền truy cập mọi module và tính năng     |
| **staff** | Nhân viên nội bộ, có quyền truy cập cổng Manage |
| **user**  | Người dùng cơ bản                               |

***

## Giao diện quản lý vai trò

Trang **Vai trò và Phân quyền** hiển thị danh sách tất cả vai trò trong hệ thống. Mỗi vai trò hiển thị tên và số lượng quyền đã được gán.

***

## Quản lý quyền cho vai trò

### Các bước

1. Điều hướng đến `Tài khoản > Vai trò và Phân quyền`.
2. Nhấp vào vai trò cần phân quyền.
3. Trang **Quản lý Phân quyền** hiển thị với danh sách các nhóm quyền (permission groups) theo module.
4. Mỗi module hiển thị dưới dạng một nhóm có thể mở rộng/thu gọn.
5. Bật/tắt từng quyền bằng cách đánh dấu checkbox.
6. Nhấp **Lưu** để áp dụng thay đổi.

### Công cụ hỗ trợ

* **Mở rộng tất cả / Thu gọn tất cả** -- Nhanh chóng xem toàn bộ quyền hoặc thu gọn.
* **Tìm kiếm** -- Nhập từ khóa để tìm module hoặc quyền cụ thể.
* **Hiển thị** -- Chọn số lượng module hiển thị: 10, 20, 50 hoặc tất cả.

***

## Cấu trúc quyền theo module

Quyền được tổ chức theo từng module chức năng. Dưới đây là một số nhóm quyền phổ biến:

### Tổ chức

| Quyền                                | Mô tả                         |
| ------------------------------------ | ----------------------------- |
| **Xem danh sách Nhân sự**            | Xem danh sách nhân viên       |
| **Thêm Nhân sự vào tổ chức**         | Tạo nhân viên mới             |
| **Cập nhật danh sách Nhân sự**       | Chỉnh sửa thông tin nhân viên |
| **Xoá Nhân sự**                      | Xóa nhân viên                 |
| **Xem danh sách Đơn vị, Phòng, Ban** | Xem cơ cấu tổ chức            |
| **Tạo Đơn vị, Phòng, Ban**           | Tạo đơn vị mới                |
| **Cập nhật Đơn vị, Phòng, Ban**      | Chỉnh sửa/di chuyển đơn vị    |
| **Xoá Đơn vị, Phòng, Ban**           | Xóa đơn vị                    |
| **Xem danh sách Chức danh**          | Xem danh sách chức danh       |
| **Tạo Chức danh**                    | Tạo chức danh mới             |
| **Cập nhật Chức danh**               | Chỉnh sửa chức danh           |
| **Xoá Chức danh**                    | Xóa chức danh                 |

### Năng lực và kỹ năng

| Quyền                      | Mô tả                                    |
| -------------------------- | ---------------------------------------- |
| **Xem danh sách Năng lực** | Xem khung năng lực                       |
| **Quản lý Năng lực**       | Tạo, sửa, xóa năng lực và khung năng lực |

### Nhóm nhân sự

| Quyền                    | Mô tả                |
| ------------------------ | -------------------- |
| **Xem nhóm nhân sự**     | Xem nhóm nhân sự     |
| **Quản lý nhóm nhân sự** | Quản lý nhóm nhân sự |

### Hệ thống

| Quyền                    | Mô tả                                                        |
| ------------------------ | ------------------------------------------------------------ |
| **Xem toàn bộ tổ chức**  | Quyền quản trị toàn bộ (tương đương admin cho một số module) |
| **Xem nhật ký hệ thống** | Xem nhật ký hệ thống                                         |
| **Xem cài đặt LDAP**     | Xem cài đặt LDAP/Active Directory                            |

***

## Phụ thuộc quyền

Một số quyền có mối quan hệ phụ thuộc. Khi bật một quyền, hệ thống có thể yêu cầu bật thêm các quyền phụ thuộc. Ví dụ: quyền **Chỉnh sửa nhân viên** yêu cầu quyền **Xem nhân viên** phải được bật.

Nếu phát hiện thiếu quyền phụ thuộc khi lưu, hệ thống sẽ hiển thị hộp thoại xác nhận và tự động thêm các quyền cần thiết.

***

## Kiểm tra quyền trong giao diện

Hệ thống kiểm tra quyền tại hai mức:

1. **Mức menu** -- Module chỉ hiển thị trong sidebar nếu người dùng có quyền truy cập. Một số module có yêu cầu `requiredRoles` riêng.
2. **Mức trang** -- Các nút hành động (Tạo, Sửa, Xóa) chỉ hiển thị khi người dùng có quyền tương ứng. Ví dụ, nút "Tạo nhân sự" chỉ hiện khi có quyền **Thêm Nhân sự vào tổ chức**.

***

## Lưu ý

* Vai trò hệ thống mặc định (admin, staff, user) không thể chỉnh sửa phân quyền.
* Thay đổi quyền có hiệu lực ngay lập tức sau khi lưu, không cần người dùng đăng nhập lại.
* Nên tạo vai trò riêng cho từng nhóm chức năng thay vì gán quyền admin cho tất cả.
* Khi tạo vai trò mới, mặc định không có quyền nào được bật.

***

## Xem thêm

* [Đăng nhập và Giao diện](https://docs.noova.vn/bat-dau/dang-nhap-va-giao-dien) -- Hướng dẫn đăng nhập hệ thống
* [Điều hướng](https://docs.noova.vn/bat-dau/dieu-huong) -- Cách sử dụng menu và di chuyển giữa các module
