Giao diện
Cài đặt và sử dụng
Kích hoạt plugin
Vào Settings → Plugin Manager, bật @digiforce-nc/plugin-field-component-mask. Plugin phụ thuộc plugin-acl để kiểm tra quyền xem dữ liệu gốc.
Bật Mask cho field cơ bản
Plugin không tạo field type mới. Thay vào đó, nó patch thêm tùy chọn Mask vào các field interface đã có sẵn (input, phone, email, date...).
- Mở Collection Manager → chọn field cần mask (ví dụ: field phone).
- Trong settings của field, bật tùy chọn Mask component.
- Cấu hình mask rule — quy tắc che dấu ký tự.
- Lưu — field sẽ hiển thị giá trị đã che trên giao diện.
Cấu hình Mask Rules
Mask rule xác định phần nào của giá trị bị che:
| Ví dụ gốc | Mask rule | Kết quả |
|---|---|---|
0912345678 | Hiện 4, ẩn 3, hiện 3 | 0912***678 |
nguyen@email.com | Hiện 3, ẩn 3, giữ domain | ngu***@email.com |
001234567890 | Hiện 3, ẩn 3, hiện 4 | 001***7890 |
15/03/1990 | Ẩn ngày/tháng, hiện năm | **/**/1990 |
typescript
const phoneSchema = {
type: 'string',
title: 'Số điện thoại',
'x-component': 'Mask',
'x-component-props': {
maskPattern: '****###***',
},
};Kiểm soát quyền xem dữ liệu gốc
Plugin tích hợp plugin-acl để phân quyền:
- Người dùng không có quyền unmask: chỉ thấy giá trị đã che (
0912***678). - Người dùng có quyền unmask: có thể click nút "Hiện" để xem giá trị đầy đủ.
- Cấu hình quyền unmask trong ACL → Roles → Field permissions.
Các loại field hỗ trợ
| Loại field | Ví dụ |
|---|---|
| Phone | Số điện thoại |
| Địa chỉ email | |
| Text/Input | Họ tên, số CMND/CCCD |
| Date | Ngày sinh, ngày cấp |
Lưu ý
- Plugin client-only — dữ liệu gốc vẫn lưu đầy đủ trong database, mask chỉ ở tầng hiển thị.
- Nếu người dùng có quyền đọc API trực tiếp, họ vẫn thấy dữ liệu gốc. Mask chỉ bảo vệ ở tầng UI.
- Để mã hóa thực sự trong DB, sử dụng plugin-field-encryption thay vì mask.