Bỏ qua, đến nội dung

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...).

  1. Mở Collection Manager → chọn field cần mask (ví dụ: field phone).
  2. Trong settings của field, bật tùy chọn Mask component.
  3. Cấu hình mask rule — quy tắc che dấu ký tự.
  4. 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ốcMask ruleKết quả
0912345678Hiện 4, ẩn 3, hiện 30912***678
nguyen@email.comHiện 3, ẩn 3, giữ domainngu***@email.com
001234567890Hiện 3, ẩn 3, hiện 4001***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 fieldVí dụ
PhoneSố điện thoại
EmailĐịa chỉ email
Text/InputHọ tên, số CMND/CCCD
DateNgà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.