Giới thiệu
Quản lý tài khoản quản trị viên với vai trò, quyền hạn và kiểm soát truy cập.
🎯 Mô-đun này làm gì?
Mô-đun Admins cho phép bạn lấy thông tin ai có quyền truy cập vào bảng điều khiển quản trị OneEntry của bạn và họ có thể làm gì.
📖 Giải thích đơn giản
Hãy tưởng tượng bạn đang điều hành một trang web với một đội ngũ:
- 👑 Super Admin - Có thể làm mọi thứ (bạn, người sở hữu).
- 👨💼 Content Manager - Có thể chỉnh sửa các trang và sản phẩm.
- 📝 Editor - Có thể viết bài blog.
- 🎨 Designer - Có thể quản lý hình ảnh và các khối.
- 👀 Viewer - Chỉ có thể xem dữ liệu, không chỉnh sửa.
Thay vì cho mọi người quyền truy cập đầy đủ, bạn:
- Tạo tài khoản quản trị cho các thành viên trong đội.
- Gán vai trò và quyền hạn cụ thể.
- Kiểm soát những gì mỗi người có thể xem và chỉnh sửa.
- Theo dõi ai đã thực hiện thay đổi (dấu vết kiểm toán).
- Thu hồi quyền truy cập khi ai đó rời khỏi đội.
Ví dụ thực tế:
Without Admin Management:
- Everyone shares one account → Can't track who did what.
- Everyone has full access → Risky!
- No control over permissions.
With Admin Management:
- Each team member has their own account.
- Specific permissions per role.
- Full audit trail of changes.
- Easy to add/remove team members.
✨ Khái niệm chính
Quản trị viên là gì?
Một quản trị viên (admin) là người dùng có quyền truy cập cao hơn để quản lý dự án OneEntry của bạn:
- Quyền truy cập - Những phần nào của hệ thống họ có thể truy cập.
- Quyền hạn - Những hành động họ có thể thực hiện (tạo, chỉnh sửa, xóa).
- Vai trò - Vị trí/trách nhiệm của họ (ví dụ: "Content Manager").
- Thông tin tài khoản - Tên, email, trạng thái.
Quản trị viên và Người dùng thông thường
| Loại | Mục đích | Ví dụ |
|---|---|---|
| Quản trị viên | Quản lý hệ thống (backend) | Bạn, các thành viên trong đội của bạn |
| Người dùng thông thường | Sử dụng ứng dụng/trang web của bạn (frontend) | Khách hàng của bạn, người truy cập trang web |
Sự khác biệt chính: Quản trị viên quản lý nội dung, Người dùng tiêu thụ nội dung.
📋 Những điều bạn cần biết
Thuộc tính của Quản trị viên
Mỗi quản trị viên có những trường chính này:
{
id: 123, // Unique admin ID
attributeSetId: 27, // Unique attribute set ID
identifier: "admin", // Unique identifier
attributeSetIdentifier: "admins", // Unique attribute set identifier
position: 1, // Position
isSync: true, // Whether to sync with the backend
attributeValues: {} // Attribute values
}
Lọc Quản trị viên
Sử dụng bộ lọc để tìm các quản trị viên cụ thể:
Dấu hiệu điều kiện (giống như mô-đun Products):
| Dấu hiệu | Ý nghĩa | Ví dụ |
|---|---|---|
| eq | Bằng | statusId = 1 (chỉ hoạt động) |
| neq | Không bằng | role ≠ "Viewer" |
| in | Chứa (một trong số) | role in ["Editor", "Manager"] |
| nin | Không chứa | email not in ["@temp.com"] |
| exs | Tồn tại (có giá trị) | Có lastLogin |
| nexs | Không tồn tại | Chưa bao giờ đăng nhập |
Cân nhắc về bảo mật
Quan trọng:
- 🔒 Không bao giờ tiết lộ thông tin đăng nhập của quản trị viên trong mã frontend.
- 🔐 Sử dụng mã thông báo bảo mật cho các cuộc gọi API hoặc chứng chỉ mtls.
- 👤 Thực hiện quyền tối thiểu - cấp quyền tối thiểu cần thiết.
- 📝 Kiểm toán thay đổi - theo dõi ai đã làm gì.
- 🚪 Thu hồi quyền truy cập ngay lập tức khi ai đó rời đi.
❓ Câu hỏi thường gặp (FAQ)
Sự khác biệt giữa mô-đun Admins và Users là gì?
- Admins - Quản lý đội ngũ của bạn (người dùng backend quản lý hệ thống).
- Users - Quản lý khách hàng (người dùng frontend sử dụng ứng dụng/trang web của bạn).
Làm thế nào để tôi hạn chế những gì một quản trị viên có thể làm?
Sử dụng vai trò và quyền hạn.
🎓 Thực hành tốt nhất
- Thực hiện quyền tối thiểu (quyền hạn tối thiểu cần thiết).
- Theo dõi hành động của quản trị viên (ai đã làm gì, khi nào).
- Xem xét quyền hạn thường xuyên.
- Sử dụng chính sách mật khẩu mạnh.
- Cân nhắc sử dụng xác thực đa yếu tố.
- Thay đổi mật khẩu của quản trị viên thường xuyên.
Để biết thêm thông tin về giao diện người dùng của mô-đun, hãy truy cập https://doc.oneentry.cloud/docs/category/administrators
Định nghĩa của mô-đun 'Admins'
const { Admins } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
const { Admins } = defineOneEntry( "your-project-url", { "token": "your-app-token" });const body = [ { "attributeMarker": "num", "conditionMarker": "mth", "conditionValue": 1 }];
const response = await Admins.getAdminsInfo(body, "en_US", 0, 30);
Sơ đồ tham số
Sơ đồ: (body)
attributeMarker: string
Định danh văn bản thuộc tính
ví dụ: price
conditionMarker: string
Định danh văn bản điều kiện, các giá trị có thể: 'in' - chứa, 'nin' - không chứa, 'eq' - bằng, 'neq' - không bằng, 'mth' - lớn hơn, 'lth' - nhỏ hơn, 'exs' - tồn tại, 'nexs' - không tồn tại, 'pat' - mẫu, ví dụ -, nơi '' đại diện cho bất kỳ ký tự nào, 'same' - giá trị giống như thuộc tính đã chọn*
ví dụ: in
Enum: [ in, nin, eq, neq, mth, lth, exs, nexs, pat, same ]
conditionValue: number
Giá trị điều kiện
ví dụ: 1