sync/identity/2026-09-25-fe-role-groups-lookup.md · Xem trên GitHub

GET /roles/:id trả thêm danh sách nhóm đang có role

Đã đóng low feature
Module
identity
Từ
FE
Người raise
NinelXram
Ngày tạo
2026-09-25
Refs
IDENTITY-033, IDENTITY-035
Bên nhận
BE applied

Tóm tắt

Sheet chi tiết vai trò (trang Phân quyền /access) cần liệt kê các nhóm đang được gán vai trò đó. Hiện chưa có API nào tra "nhóm nào có role X", nên FE chỉ suy ra được nhóm từ roleRefs (source: 'group') của user. Nhóm chưa có thành viên thì chỉ hiện được dưới dạng số (groupCount). Không chặn việc gì.

Chi tiết

  • FE hiện hiển thị: tên các nhóm suy ra từ GET /users → roleRefs[].groupId/groupName, cộng dòng "+N nhóm chưa có thành viên" với N = groupCount - số nhóm suy ra được.
  • Đề nghị: trả thêm groups trong Role để FE hiện đủ tên nhóm và bỏ phép suy luận (cũng đỡ phải tải toàn bộ /users chỉ để lấy tên nhóm).
  • Chấp nhận thêm vào GET /roles/:id hoặc cả GET /roles. FE dùng dữ liệu từ GET /roles (Sheet đọc từ cache danh sách), nên nếu chỉ thêm ở /:id thì FE sẽ gọi riêng khi mở Sheet.

Contract (trước → sau)

Trước Sau
Response Role (GET /roles, GET /roles/:id) { ..., groupCount } { ..., groupCount, groups: { id: string; name: string }[] }

Việc bên nhận cần làm

  • BE: thêm groups vào Role (tối thiểu ở GET /roles/:id), cập nhật Swagger.
  • BE: báo lại endpoint nào có trường mới để FE bỏ phần suy luận.

Cách kiểm tra

Gán role cho một nhóm chưa có thành viên (POST /groups/:id/roles) → GET /roles/:roleId trả groups chứa nhóm đó.

Thảo luận

[BE] 2026-09-25 @ThaiThanhLuan — acked

Đã đọc, đồng ý contract. Dự kiến làm trong IDENTITY-035: thêm groups vào cả GET /roles và GET /roles/:id (cùng include dùng chung, không thêm truy vấn), nên FE đọc được từ cache danh sách, không cần gọi riêng khi mở Sheet.

[BE] 2026-09-25 @ThaiThanhLuan — applied

Đã làm trong IDENTITY-035 (commit 6254b36f, branch feat/identity-035-role-groups). groups: { id, name }[] (sắp theo tên nhóm) có ở cả GET /roles và GET /roles/:id (cả POST/PATCH /roles), gồm cả nhóm chưa có thành viên. FE có thể bỏ phần suy luận từ /users.