Vai trò & phân quyền

Ai thấy gì, ai làm được gì trong labo — không dựa vào lời hứa, mà dựa vào một bộ role rõ ràng gán cho từng người.

Mọi người trong labo đăng nhập bằng loginId (tên đăng nhập), không bằng email. Mỗi user thuộc đúng một labo và mang một hoặc nhiều labo role; quyền thao tác của họ được hệ thống giải ra từ tập labo permission của các role đó. DentIQ Lab seed sẵn một bộ role mặc định khớp với các vị trí thật trong labo, để bạn dùng ngay mà không phải tự dựng quyền từ đầu.

Bảng điều khiển của một technician: thanh điều hướng bên trái chỉ hiện các mục thuộc quyền của họ, ít hơn so với chủ labo
Điều hướng theo quyền: một technician chỉ thấy các mục thuộc role của mình (ít hơn hẳn chủ labo). Mặc định là từ chối — không có quyền thì không thấy mục.

Đăng nhập bằng loginId

Danh tính đăng nhập là loginId (tên đăng nhập), lưu chuẩn hoá chữ thường và duy nhất toàn hệ thống. Email là tuỳ chọn. Vì loginId là duy nhất nên đăng nhập không nhập nhằng, và labo VN không bắt buộc mọi kỹ thuật viên phải có email riêng.

  • Một user → đúng một labo. Không có thành viên đa-labo, không chuyển labo: mỗi user được cấp loginId để đăng nhập vào labo duy nhất của mình.
  • Handle bị cấm bị từ chối. Các tên nhạy cảm (vd admin, owner, support) bị chặn ngay khi tạo tài khoản.
  • Một user mang một hoặc nhiều role. Ví dụ một người vừa làm điều phối vừa kiêm QC ở labo nhỏ — quyền hiệu lực là hợp của các role.

Bộ role mặc định

Mỗi labo được seed sẵn sáu role, khớp với các vị trí thật trong xưởng. Mỗi role có code (định danh máy, cố định — dùng để gác vòng đời case) và name (nhãn hiển thị).

RoleLà aiQuyền chính
lab_adminChủ laboToàn quyền — không sửa/xoá được (systemProtected). Cấu hình bảng giá, vật liệu, người dùng, xem doanh thu/công nợ/năng suất.
coordinatorQuản lý / điều phốiTiếp nhận work order, phân technician, đặt hạn, chuyển trạng thái case, điều phối sản xuất.
technicianKỹ thuật viênCập nhật tiến độ công đoạn được giao (milling/sinter/polish…). Không thấy giá vốn, công nợ.
qcKiểm định (QC)Chấm cổng QC, ghi pass/fail + ảnh bằng chứng, ghi phôi/lô trước khi cho case đi giao.
shipperGiao nhậnCập nhật trạng thái giao, xác nhận đã giao (delivered).
accountantKế toán laboQuản công nợ, chốt kỳ, phát hành sao kê / hoá đơn điện tử, ghi nhận thanh toán.

Role chủ lab_admin không sửa được: nó được cấp toàn bộ labo permission liệt kê tường minh (không dùng wildcard). Năm role còn lại sửa được — bạn có thể chỉnh tập quyền của từng role theo cách labo mình vận hành.

Quyền được giải ra từ labo permission

Một labo role thực chất là một tập labo permission — đơn vị cấp quyền nhỏ nhất, mỗi mã khoá một thao tác cụ thể. Quyền hiệu lực của một user là hợp của permission từ mọi role họ mang. Danh mục quyền phạm vi labo gồm 14 mã, nhóm theo mảng chức năng:

NhómLab permission (mã)Cho phép
Casecase.read, case.create, case.transition, case.assign, case.sample, case.material, case.depositXem/tạo case, chuyển trạng thái, phân công, ghi mẫu/ảnh, ghi material, ghi đặt cọc.
Clinicclinic.read, clinic.manageXem và quản lý quan hệ với phòng khám (cạnh clinic↔labo).
Catalogcatalog.material.manage, catalog.price.manageQuản lý danh mục vật liệu và bảng giá.
Accessroles.manage, users.manageQuản lý role và người dùng của labo.
Settingslab.settings.manageChỉnh cấu hình chung của labo.

Quyền phạm vi nền tảng (scope='system', dành cho superadmin) không bao giờ lộ cho một labo — đây là cơ chế ẩn: một labo không thể thấy, xin, hay được cấp quyền nền tảng. Bạn chỉ làm việc với các quyền scope='lab' ở trên.

Role nào chạm quyền nào (tham khảo)

Bảng dưới là gợi ý tập quyền hợp lý của mỗi role mặc định (chủ labo có tất cả); bạn có thể chỉnh 5 role sửa được cho khớp thực tế labo mình:

Permissionlab_admincoordinatortechnicianqcshipperaccountant
case.read
case.create
case.transition
case.assign
case.material
catalog.price.manage
catalog.material.manage
roles.manage / users.manage
lab.settings.manage

Lưu ý: code của các role khớp với ROLE trong máy trạng thái case + bảng giá, nên vòng đời case và gác giá vẫn giải đúng dù bạn đổi name hiển thị. Các dấu ✓/— ở đây là mặc định gợi ý, không phải luật cứng — chủ labo tinh chỉnh được cho 5 role sửa được.

Lưu ý

Một người dùng "không thấy" một màn hình thường không phải lỗi — đó là quyền hoạt động đúng (mặc định từ chối). Muốn họ thấy thêm, gán role phù hợp hoặc bổ sung permission cho role đó. Chỉ lab_admin quản lý được role và người dùng. Riêng lab_admin không sửa/xoá được để labo không bao giờ mất đường vào toàn quyền.