@goplusvn/core 0.1.25 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.27 — Live permissions + MultiSelect hết tràn badge
4
+
5
+ Cơ chế "phiên bản bộ quyền" (đúc từ vinhhoa): admin sửa vai trò/phân quyền →
6
+ mọi user đang đăng nhập nhận quyền mới trong ≤60s (tức thì khi focus lại tab).
7
+ - `@goerp/core/rbac/permissions-version`: `getPermissionsVersion(db)` /
8
+ `bumpPermissionsVersion(db)` — lưu SystemConfig key `rbac-permissions-version`,
9
+ schema-tolerant (thử cột audit createdBy/updatedAt/updatedBy → fallback tối
10
+ giản), best-effort không bao giờ throw.
11
+ - Route-handlers factory TỰ bump sau POST/PUT/DELETE role; thêm
12
+ `createPermissionsVersionHandler({ prisma, getSession })` cho endpoint
13
+ GET /api/rbac/permissions-version.
14
+ - `<PermissionsVersionWatcher />` (@goerp/core/ui): poll version + focus;
15
+ đổi → clear tab-content-cache + session.update() (jwt trigger="update" →
16
+ app forceRefresh quyền từ DB — vá cả đa instance vì cache in-memory
17
+ per-process) + router.refresh() + toast (tắt bằng silent).
18
+ App cần: mount watcher trong providers, route dùng handler factory, và jwt
19
+ callback xử lý trigger="update" bằng forceRefresh (vinhhoa đã có sẵn).
20
+
21
+ MultiSelect (tham khảo sersavan/shadcn-multi-select-component):
22
+ - Chip trên trigger WRAP xuống dòng mặc định khi chọn nhiều — trigger cao lên,
23
+ KHÔNG tràn ngang đè component bên cạnh; prop mới `singleLine` giữ 1 dòng
24
+ (chip co + cắt overflow) cho toolbar chật.
25
+ - Dropdown TỰ MỞ LÊN TRÊN khi sát đáy viewport (trước luôn mở xuống → bị cắt).
26
+ - Backspace khi ô tìm kiếm rỗng = bỏ chip cuối (chuẩn combobox).
27
+ - Props mới: `closeOnSelect` (đóng sau mỗi lần chọn), `deduplicateOptions`
28
+ (lọc option trùng value), `chipColor: "colorful" | "neutral"` (chip trầm
29
+ secondary cho form nghiêm túc; mặc định giữ bảng màu xoay vòng).
30
+ - Hardening: container `min-w-0 max-w-full`, trigger `overflow-hidden`,
31
+ chip max-w 8.5rem. Lưu ý chỗ dùng trong flex-row: ô bọc cần `min-w-0`.
32
+
33
+ ## 0.1.26 — Bộ 3 trang RBAC redesign hoàn chỉnh (bar navy + thẻ + full width)
34
+
35
+ Thiết kế duyệt qua preview vinhhoa, đồng bộ ngôn ngữ trang chi tiết đơn bán hàng:
36
+ - CHUNG: bar navy `bg-sidebar` 1 dòng (full-bleed mobile `-mx-4 -mt-4 md:-mx-8`,
37
+ nổi bo góc `lg:mx-3 lg:rounded-xl`), nút chính trắng-trên-navy
38
+ (`bg-primary-foreground text-primary`), khối trắng `rounded-xl` + toolbar
39
+ sticky, toggle List/Grid (GRID thẻ kiểu thẻ vai trò là mặc định).
40
+ - `RoleFormPage`: header 1 dòng (← tên inline · chip mã + copy · CHIP TRẠNG
41
+ THÁI màu getStatusMeta bấm-đổi · mô tả · Hủy/Lưu), đếm x/y quyền realtime,
42
+ chip quyền = checkbox + icon lucide theo loại action (ACTION_VISUAL_RULES).
43
+ - `ActionListPage`: thẻ = icon loại + badge "Mặc định" + khối số liệu 3 cột
44
+ (tài nguyên/vai trò/người dùng) + nút Sửa vàng/Xóa đỏ; chi tiết sử dụng =
45
+ chip màu theo loại + "+n khác"/Thu gọn (hết "ma trận chữ"); dòng có #stt.
46
+ - `ResourceListPage`: nhóm = dòng mảnh, thẻ = icon nhóm màu + preview chip
47
+ quyền + khối Đã cấp/Chưa cấp + Sửa/Xóa (xóa trực tiếp từ thẻ);
48
+ `ResourceActionsEditor` dùng chung cho dòng/thẻ.
49
+ Props cả 3 trang KHÔNG đổi so với 0.1.25.
50
+
3
51
  ## 0.1.25 — RoleFormPage bố cục "một khối liền" (gọn)
4
52
 
5
53
  Trang chi tiết vai trò trước đây phình: header chiếm 1/3 màn, mỗi nhóm là card
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@goplusvn/core",
3
3
  "description": "GoPlusVN Platform Kit - ERP kernel: layout, RBAC, CRUD, multi-tenant, system pages",
4
- "version": "0.1.25",
4
+ "version": "0.1.27",
5
5
  "private": false,
6
6
  "publishConfig": {
7
7
  "registry": "https://registry.npmjs.org",
@@ -38,6 +38,7 @@
38
38
  "./styles/*": "./src/styles/*",
39
39
  "./auth/proxy-gate": "./src/auth/proxy-gate.ts",
40
40
  "./rbac/route-handlers": "./src/rbac/route-handlers.ts",
41
+ "./rbac/permissions-version": "./src/rbac/permissions-version.ts",
41
42
  "./ui/shared/table-styles": "./src/ui/shared/table-styles.ts",
42
43
  "./errors/app-error": "./src/errors/app-error.ts",
43
44
  "./errors/error-handler": "./src/errors/error-handler.ts",
package/src/rbac/index.ts CHANGED
@@ -131,6 +131,7 @@ export {
131
131
  isAdmin,
132
132
  } from "../auth";
133
133
 
134
+ export * from "./permissions-version";
134
135
  export * from "./permission-service";
135
136
  export * from "./role-service";
136
137
  export * from "./resource-service";