@tachybase/module-hera 1.9.22 → 1.9.40

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.
Files changed (118) hide show
  1. package/dist/client/index.js +15 -26
  2. package/dist/externalVersion.js +8 -10
  3. package/dist/node_modules/fs-extra/package.json +1 -1
  4. package/dist/server/actions/index.d.ts +0 -2
  5. package/dist/server/actions/index.js +1 -5
  6. package/dist/server/migrations/20250102010713-add-plugin-department.d.ts +6 -0
  7. package/dist/server/{middlewares/set-department-owners.js → migrations/20250102010713-add-plugin-department.js} +22 -41
  8. package/dist/server/plugin.js +0 -2
  9. package/package.json +14 -14
  10. package/dist/client/features/departments/common/DepartmentTable.schema.d.ts +0 -50
  11. package/dist/client/features/departments/common/DepartmentTable.view.d.ts +0 -4
  12. package/dist/client/features/departments/common/FilterKeys.context.d.ts +0 -10
  13. package/dist/client/features/departments/common/InternalDepartmentTable.d.ts +0 -5
  14. package/dist/client/features/departments/common/Request.povider.d.ts +0 -1
  15. package/dist/client/features/departments/common/UserDepartmentsFieldNotSupport.d.ts +0 -2
  16. package/dist/client/features/departments/common/scopes/useDepartmentFilterActionProps.d.ts +0 -5
  17. package/dist/client/features/departments/common/scopes/useFilterActionProps.d.ts +0 -5
  18. package/dist/client/features/departments/index.d.ts +0 -5
  19. package/dist/client/features/departments/main-tab/DepartmentIndex.d.ts +0 -5
  20. package/dist/client/features/departments/main-tab/DepartmentIndex.provider.d.ts +0 -3
  21. package/dist/client/features/departments/main-tab/DepartmentManagement.component.d.ts +0 -1
  22. package/dist/client/features/departments/main-tab/DepartmentManagement.schema.d.ts +0 -10
  23. package/dist/client/features/departments/main-tab/DepartmentManagement.view.d.ts +0 -1
  24. package/dist/client/features/departments/main-tab/collections/departments.collection.d.ts +0 -128
  25. package/dist/client/features/departments/main-tab/collections/users.collection.d.ts +0 -189
  26. package/dist/client/features/departments/main-tab/components/DepartmentSelect.d.ts +0 -1
  27. package/dist/client/features/departments/main-tab/components/InternalSuperiorDepartmentSelect.d.ts +0 -1
  28. package/dist/client/features/departments/main-tab/components/SuperiorDepartmentSelect.d.ts +0 -1
  29. package/dist/client/features/departments/main-tab/context/Department.context.d.ts +0 -23
  30. package/dist/client/features/departments/main-tab/context/DepartmentsExpanded.context.d.ts +0 -17
  31. package/dist/client/features/departments/main-tab/departments-block/AddNewDepartment.schema.d.ts +0 -67
  32. package/dist/client/features/departments/main-tab/departments-block/AddNewDepartment.view.d.ts +0 -1
  33. package/dist/client/features/departments/main-tab/departments-block/DepartmentOwnersField.component.d.ts +0 -5
  34. package/dist/client/features/departments/main-tab/departments-block/DepartmentsBlock.d.ts +0 -1
  35. package/dist/client/features/departments/main-tab/departments-block/DepartmentsSearch.component.d.ts +0 -1
  36. package/dist/client/features/departments/main-tab/departments-block/DepartmentsTree.component.d.ts +0 -8
  37. package/dist/client/features/departments/main-tab/departments-block/Request.provider.d.ts +0 -1
  38. package/dist/client/features/departments/main-tab/departments-block/UnknownOwerns.schema.d.ts +0 -136
  39. package/dist/client/features/departments/main-tab/departments-block/UnknownOwerns.view.d.ts +0 -1
  40. package/dist/client/features/departments/main-tab/departments-block/schemas/schemaDepartmentEdit.d.ts +0 -62
  41. package/dist/client/features/departments/main-tab/departments-block/schemas/schemaDepartmentNewSub.d.ts +0 -57
  42. package/dist/client/features/departments/main-tab/departments-block/scopes/useCreateDepartment.d.ts +0 -3
  43. package/dist/client/features/departments/main-tab/departments-block/scopes/useUpdateDepartment.d.ts +0 -3
  44. package/dist/client/features/departments/main-tab/departments-users-block/AddMembers.schema.d.ts +0 -148
  45. package/dist/client/features/departments/main-tab/departments-users-block/AddMembers.view.d.ts +0 -1
  46. package/dist/client/features/departments/main-tab/departments-users-block/DepartmentField.component.d.ts +0 -1
  47. package/dist/client/features/departments/main-tab/departments-users-block/DepartmentsUsersBlock.d.ts +0 -1
  48. package/dist/client/features/departments/main-tab/departments-users-block/DepartmentsUsersBlock.schema.d.ts +0 -676
  49. package/dist/client/features/departments/main-tab/departments-users-block/IsOwnerField.component.d.ts +0 -1
  50. package/dist/client/features/departments/main-tab/departments-users-block/MemberActions.schema.d.ts +0 -49
  51. package/dist/client/features/departments/main-tab/departments-users-block/MemberActions.view.d.ts +0 -1
  52. package/dist/client/features/departments/main-tab/departments-users-block/RowRemoveAction.schema.d.ts +0 -16
  53. package/dist/client/features/departments/main-tab/departments-users-block/RowRemoveAction.view.d.ts +0 -1
  54. package/dist/client/features/departments/main-tab/departments-users-block/UserDepartmentsField.component.d.ts +0 -1
  55. package/dist/client/features/departments/main-tab/departments-users-block/UserSelectDepartment.schema.d.ts +0 -42
  56. package/dist/client/features/departments/main-tab/departments-users-block/UserSelectDepartment.view.d.ts +0 -1
  57. package/dist/client/features/departments/main-tab/departments-users-block/scopes/useBulkRemoveMembersAction.d.ts +0 -3
  58. package/dist/client/features/departments/main-tab/departments-users-block/scopes/useDataSource.d.ts +0 -40
  59. package/dist/client/features/departments/main-tab/departments-users-block/scopes/useMembersDataSource.d.ts +0 -6
  60. package/dist/client/features/departments/main-tab/departments-users-block/scopes/usePropsAddMember.d.ts +0 -1
  61. package/dist/client/features/departments/main-tab/departments-users-block/scopes/useRefreshActionProps.d.ts +0 -3
  62. package/dist/client/features/departments/main-tab/departments-users-block/scopes/useRemoveMemberAction.d.ts +0 -3
  63. package/dist/client/features/departments/main-tab/departments-users-block/scopes/useShowTotal.d.ts +0 -1
  64. package/dist/client/features/departments/main-tab/hooks/useDeepTree.d.ts +0 -14
  65. package/dist/client/features/departments/main-tab/hooks/useGetDepTree.d.ts +0 -18
  66. package/dist/client/features/departments/main-tab/kit.d.ts +0 -4
  67. package/dist/client/features/departments/main-tab/providers/DepartmentsResource.provider.d.ts +0 -3
  68. package/dist/client/features/departments/main-tab/providers/UserResource.provider.d.ts +0 -3
  69. package/dist/client/features/departments/role-auth/DepartmentTitle.component.d.ts +0 -1
  70. package/dist/client/features/departments/role-auth/Departments.d.ts +0 -1
  71. package/dist/client/features/departments/role-auth/Departments.schema.d.ts +0 -227
  72. package/dist/client/features/departments/role-auth/kit.d.ts +0 -4
  73. package/dist/client/features/departments/role-auth/scopes/useAddDepartments.d.ts +0 -3
  74. package/dist/client/features/departments/role-auth/scopes/useBulkRemoveDepartments.d.ts +0 -3
  75. package/dist/client/features/departments/role-auth/scopes/useDataSource.d.ts +0 -40
  76. package/dist/client/features/departments/role-auth/scopes/useDisabled.d.ts +0 -3
  77. package/dist/client/features/departments/role-auth/scopes/useRemoveDepartment.d.ts +0 -3
  78. package/dist/client/features/departments/settings/DepartmentOwnersFieldSetting.d.ts +0 -2
  79. package/dist/client/features/departments/settings/UserDepartmentsFieldSetting.d.ts +0 -2
  80. package/dist/client/features/departments/settings/UserMainDepartmentFieldSetting.d.ts +0 -2
  81. package/dist/client/features/departments/settings/items/enableLinkItem.d.ts +0 -2
  82. package/dist/client/features/departments/settings/items/modeSelectItem.d.ts +0 -2
  83. package/dist/client/features/departments/settings/items/titleFieldItem.d.ts +0 -2
  84. package/dist/client/features/departments/utils/getDepartmentStr.d.ts +0 -1
  85. package/dist/client/features/departments/utils/getUserListByDepartment.d.ts +0 -1
  86. package/dist/server/actions/departments.d.ts +0 -5
  87. package/dist/server/actions/departments.js +0 -105
  88. package/dist/server/actions/users.d.ts +0 -4
  89. package/dist/server/actions/users.js +0 -142
  90. package/dist/server/collections/departmentRoles.d.ts +0 -2
  91. package/dist/server/collections/departmentRoles.js +0 -27
  92. package/dist/server/collections/departments.d.ts +0 -29
  93. package/dist/server/collections/departments.js +0 -162
  94. package/dist/server/collections/departmentsUsers.d.ts +0 -2
  95. package/dist/server/collections/departmentsUsers.js +0 -43
  96. package/dist/server/collections/roles.d.ts +0 -2
  97. package/dist/server/collections/roles.js +0 -39
  98. package/dist/server/collections/users.d.ts +0 -55
  99. package/dist/server/collections/users.js +0 -87
  100. package/dist/server/features/departments.d.ts +0 -7
  101. package/dist/server/features/departments.js +0 -132
  102. package/dist/server/middlewares/destroy-department-check.d.ts +0 -2
  103. package/dist/server/middlewares/destroy-department-check.js +0 -53
  104. package/dist/server/middlewares/index.d.ts +0 -6
  105. package/dist/server/middlewares/index.js +0 -31
  106. package/dist/server/middlewares/list-users-include-child-department.d.ts +0 -2
  107. package/dist/server/middlewares/list-users-include-child-department.js +0 -77
  108. package/dist/server/middlewares/reset-user-departments-cache.d.ts +0 -2
  109. package/dist/server/middlewares/reset-user-departments-cache.js +0 -39
  110. package/dist/server/middlewares/set-department-owners.d.ts +0 -2
  111. package/dist/server/middlewares/set-departments-roles.d.ts +0 -2
  112. package/dist/server/middlewares/set-departments-roles.js +0 -64
  113. package/dist/server/middlewares/set-main-department.d.ts +0 -2
  114. package/dist/server/middlewares/set-main-department.js +0 -105
  115. package/dist/server/middlewares/update-department-isleaf.d.ts +0 -2
  116. package/dist/server/middlewares/update-department-isleaf.js +0 -84
  117. package/dist/server/models/department.d.ts +0 -4
  118. package/dist/server/models/department.js +0 -38
@@ -1,87 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var users_exports = {};
19
- __export(users_exports, {
20
- default: () => users_default,
21
- departmentsField: () => departmentsField,
22
- mainDepartmentField: () => mainDepartmentField
23
- });
24
- module.exports = __toCommonJS(users_exports);
25
- var import_database = require("@tachybase/database");
26
- const departmentsField = {
27
- collectionName: "users",
28
- interface: "m2m",
29
- type: "belongsToMany",
30
- name: "departments",
31
- target: "departments",
32
- foreignKey: "userId",
33
- otherKey: "departmentId",
34
- onDelete: "CASCADE",
35
- sourceKey: "id",
36
- targetKey: "id",
37
- through: "departmentsUsers",
38
- uiSchema: {
39
- type: "m2m",
40
- title: '{{t("Departments")}}',
41
- "x-component": "UserDepartmentsField",
42
- "x-component-props": {
43
- multiple: true,
44
- fieldNames: {
45
- label: "title",
46
- value: "name"
47
- }
48
- }
49
- }
50
- };
51
- const mainDepartmentField = {
52
- collectionName: "users",
53
- interface: "m2m",
54
- type: "belongsToMany",
55
- name: "mainDepartment",
56
- target: "departments",
57
- foreignKey: "userId",
58
- otherKey: "departmentId",
59
- onDelete: "CASCADE",
60
- sourceKey: "id",
61
- targetKey: "id",
62
- through: "departmentsUsers",
63
- throughScope: {
64
- isMain: true
65
- },
66
- uiSchema: {
67
- type: "m2m",
68
- title: '{{t("Main department")}}',
69
- "x-component": "UserMainDepartmentField",
70
- "x-component-props": {
71
- multiple: false,
72
- fieldNames: {
73
- label: "title",
74
- value: "name"
75
- }
76
- }
77
- }
78
- };
79
- var users_default = (0, import_database.extendCollection)({
80
- name: "users",
81
- fields: [departmentsField, mainDepartmentField]
82
- });
83
- // Annotate the CommonJS export names for ESM import in node:
84
- 0 && (module.exports = {
85
- departmentsField,
86
- mainDepartmentField
87
- });
@@ -1,7 +0,0 @@
1
- import { InstallOptions, Plugin } from '@tachybase/server';
2
- export declare class DepartmentsPlugin extends Plugin {
3
- beforeLoad(): void;
4
- load(): Promise<void>;
5
- upgrade(): Promise<void>;
6
- install(options?: InstallOptions): Promise<void>;
7
- }
@@ -1,132 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var departments_exports = {};
19
- __export(departments_exports, {
20
- DepartmentsPlugin: () => DepartmentsPlugin
21
- });
22
- module.exports = __toCommonJS(departments_exports);
23
- var import_server = require("@tachybase/server");
24
- var import_actions = require("../actions");
25
- var import_users = require("../collections/users");
26
- var import_middlewares = require("../middlewares");
27
- var import_list_users_include_child_department = require("../middlewares/list-users-include-child-department");
28
- var import_department = require("../models/department");
29
- class DepartmentsPlugin extends import_server.Plugin {
30
- beforeLoad() {
31
- this.app.db.registerModels({ DepartmentModel: import_department.DepartmentModel });
32
- this.app.acl.addFixedParams("collections", "destroy", () => {
33
- return {
34
- filter: {
35
- "name.$notIn": ["departments", "departmentsUsers", "departmentsRoles"]
36
- }
37
- };
38
- });
39
- }
40
- async load() {
41
- this.app.resourcer.define({
42
- name: "users",
43
- actions: {
44
- listExcludeDept: import_actions.listExcludeDept,
45
- setMainDepartment: import_actions.setMainDepartment
46
- }
47
- });
48
- this.app.resourcer.define({
49
- name: "departments",
50
- actions: {
51
- aggregateSearch: import_actions.aggregateSearch,
52
- setOwner: import_actions.setOwner,
53
- removeOwner: import_actions.removeOwner
54
- }
55
- });
56
- this.app.acl.allow("users", ["setMainDepartment", "listExcludeDept"], "loggedIn");
57
- this.app.acl.registerSnippet({
58
- name: `pm.${this.name}.*`,
59
- actions: [
60
- "departments:*",
61
- "roles:list",
62
- "users:list",
63
- "users:listExcludeDept",
64
- "users:setMainDepartment",
65
- "roles.departments:add",
66
- "roles.departments:remove",
67
- "users.departments:add",
68
- "users.departments:remove"
69
- ]
70
- });
71
- this.app.resourcer.use(import_middlewares.setDepartmentsInfo, {
72
- tag: "setDepartmentsInfo",
73
- before: "setCurrentRole",
74
- after: "auth"
75
- });
76
- this.app.resourcer.use(import_middlewares.setDepartmentOwners, { tag: "setDepartmentOwners" });
77
- this.app.resourcer.use(import_middlewares.destroyDepartmentCheck, { tag: "destroyDepartmentCheck" });
78
- this.app.resourcer.use(import_middlewares.updateDepartmentIsLeaf, { tag: "updateDepartmentIsLeaf" });
79
- this.app.resourcer.use(import_middlewares.resetUserDepartmentsCache, { tag: "resetUserDepartmentsCache" });
80
- this.app.resourcer.use(import_middlewares.setMainDepartment, { tag: "setMainDepartment" });
81
- this.app.resourcer.use(import_list_users_include_child_department.listUsersIncludeChildDepartment, { tag: "listUsersIncludeChildDepartment" });
82
- this.app.db.on("departmentsUsers.afterSave", async (model) => {
83
- const cache = this.app.cache;
84
- await cache.del(`departments:${model.get("userId")}`);
85
- });
86
- this.app.db.on("departmentsUsers.afterDestroy", async (model) => {
87
- const cache = this.app.cache;
88
- await cache.del(`departments:${model.get("userId")}`);
89
- });
90
- this.app.on("beforeSignOut", ({ userId }) => {
91
- this.app.cache.del(`departments:${userId}`);
92
- });
93
- }
94
- async upgrade() {
95
- await this.install();
96
- }
97
- async install(options) {
98
- const collectionRepo = this.db.getRepository("collections");
99
- if (collectionRepo) {
100
- await collectionRepo.db2cm("departments");
101
- }
102
- const fieldRepo = this.db.getRepository("fields");
103
- if (fieldRepo) {
104
- const isDepartmentsFieldExists = await fieldRepo.count({
105
- filter: {
106
- name: "departments",
107
- collectionName: "users"
108
- }
109
- });
110
- if (!isDepartmentsFieldExists) {
111
- await fieldRepo.create({
112
- values: import_users.departmentsField
113
- });
114
- }
115
- const isMainDepartmentFieldExists = await fieldRepo.count({
116
- filter: {
117
- name: "mainDepartment",
118
- collectionName: "users"
119
- }
120
- });
121
- if (!isMainDepartmentFieldExists) {
122
- await fieldRepo.create({
123
- values: import_users.mainDepartmentField
124
- });
125
- }
126
- }
127
- }
128
- }
129
- // Annotate the CommonJS export names for ESM import in node:
130
- 0 && (module.exports = {
131
- DepartmentsPlugin
132
- });
@@ -1,2 +0,0 @@
1
- import type { Context, Next } from '@tachybase/actions';
2
- export declare const destroyDepartmentCheck: (ctx: Context, next: Next) => Promise<void>;
@@ -1,53 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var destroy_department_check_exports = {};
19
- __export(destroy_department_check_exports, {
20
- destroyDepartmentCheck: () => destroyDepartmentCheck
21
- });
22
- module.exports = __toCommonJS(destroy_department_check_exports);
23
- const destroyCheck = async (ctx) => {
24
- const { filterByTk } = ctx.action.params;
25
- const repo = ctx.db.getRepository("departments");
26
- const children = await repo.count({
27
- filter: {
28
- parentId: filterByTk
29
- }
30
- });
31
- if (children) {
32
- ctx.throw(400, ctx.t("The department has sub-departments, please delete them first", { ns: "departments" }));
33
- }
34
- const members = await ctx.db.getRepository("departmentsUsers").count({
35
- filter: {
36
- departmentId: filterByTk
37
- }
38
- });
39
- if (members) {
40
- ctx.throw(400, ctx.t("The department has members, please remove them first", { ns: "departments" }));
41
- }
42
- };
43
- const destroyDepartmentCheck = async (ctx, next) => {
44
- const { resourceName, actionName } = ctx.action.params;
45
- if (resourceName === "departments" && actionName === "destroy") {
46
- await destroyCheck(ctx);
47
- }
48
- await next();
49
- };
50
- // Annotate the CommonJS export names for ESM import in node:
51
- 0 && (module.exports = {
52
- destroyDepartmentCheck
53
- });
@@ -1,6 +0,0 @@
1
- export * from './destroy-department-check';
2
- export * from './reset-user-departments-cache';
3
- export * from './set-department-owners';
4
- export * from './update-department-isleaf';
5
- export * from './set-departments-roles';
6
- export * from './set-main-department';
@@ -1,31 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var middlewares_exports = {};
16
- module.exports = __toCommonJS(middlewares_exports);
17
- __reExport(middlewares_exports, require("./destroy-department-check"), module.exports);
18
- __reExport(middlewares_exports, require("./reset-user-departments-cache"), module.exports);
19
- __reExport(middlewares_exports, require("./set-department-owners"), module.exports);
20
- __reExport(middlewares_exports, require("./update-department-isleaf"), module.exports);
21
- __reExport(middlewares_exports, require("./set-departments-roles"), module.exports);
22
- __reExport(middlewares_exports, require("./set-main-department"), module.exports);
23
- // Annotate the CommonJS export names for ESM import in node:
24
- 0 && (module.exports = {
25
- ...require("./destroy-department-check"),
26
- ...require("./reset-user-departments-cache"),
27
- ...require("./set-department-owners"),
28
- ...require("./update-department-isleaf"),
29
- ...require("./set-departments-roles"),
30
- ...require("./set-main-department")
31
- });
@@ -1,2 +0,0 @@
1
- import type { Context, Next } from '@tachybase/actions';
2
- export declare const listUsersIncludeChildDepartment: (ctx: Context, next: Next) => Promise<any>;
@@ -1,77 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var list_users_include_child_department_exports = {};
19
- __export(list_users_include_child_department_exports, {
20
- listUsersIncludeChildDepartment: () => listUsersIncludeChildDepartment
21
- });
22
- module.exports = __toCommonJS(list_users_include_child_department_exports);
23
- function getChildIds(ids, departmentIds, departments) {
24
- const children = departments.filter((department) => ids.includes(department.parentId));
25
- const noLeaf = [];
26
- children.forEach((child) => {
27
- departmentIds.add(child.id);
28
- if (!child.isLeaf) {
29
- noLeaf.push(child.id);
30
- }
31
- });
32
- if (noLeaf.length) {
33
- getChildIds(noLeaf, departmentIds, departments);
34
- }
35
- }
36
- async function getAllDepartmentIds(repo, parentId) {
37
- const departments = await repo.find({
38
- fields: ["id", "parentId", "isLeaf"],
39
- raw: true
40
- });
41
- const departmentIds = /* @__PURE__ */ new Set([parentId]);
42
- getChildIds([parentId], departmentIds, departments);
43
- return [...departmentIds];
44
- }
45
- const listUsersIncludeChildDepartment = async (ctx, next) => {
46
- var _a, _b;
47
- const { filter, resourceName, actionName } = ctx.action.params;
48
- const repo = ctx.db.getRepository("departments");
49
- if (resourceName === "users" && actionName === "list") {
50
- if ((filter == null ? void 0 : filter.showChildren) !== void 0) {
51
- const showChildren = filter.showChildren;
52
- delete filter.showChildren;
53
- const departmentId = filter["departments.id"] || ((_a = filter == null ? void 0 : filter.departments) == null ? void 0 : _a.id);
54
- if (showChildren && departmentId) {
55
- const departmentIds = await getAllDepartmentIds(repo, departmentId);
56
- if (departmentIds.length > 1) {
57
- if ((_b = filter == null ? void 0 : filter.departments) == null ? void 0 : _b.id) {
58
- delete filter.departments.id;
59
- }
60
- delete filter["departments.id"];
61
- if (!filter.departments) {
62
- filter.departments = {};
63
- }
64
- filter.departments.id = {
65
- $in: departmentIds
66
- };
67
- }
68
- }
69
- }
70
- return next();
71
- }
72
- return next();
73
- };
74
- // Annotate the CommonJS export names for ESM import in node:
75
- 0 && (module.exports = {
76
- listUsersIncludeChildDepartment
77
- });
@@ -1,2 +0,0 @@
1
- import type { Context, Next } from '@tachybase/actions';
2
- export declare const resetUserDepartmentsCache: (ctx: Context, next: Next) => Promise<void>;
@@ -1,39 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var reset_user_departments_cache_exports = {};
19
- __export(reset_user_departments_cache_exports, {
20
- resetUserDepartmentsCache: () => resetUserDepartmentsCache
21
- });
22
- module.exports = __toCommonJS(reset_user_departments_cache_exports);
23
- const resetUserDepartmentsCache = async (ctx, next) => {
24
- await next();
25
- const { associatedName, resourceName, associatedIndex, actionName, values } = ctx.action.params;
26
- const cache = ctx.app.cache;
27
- if (associatedName === "departments" && resourceName === "members" && ["add", "remove", "set"].includes(actionName) && (values == null ? void 0 : values.length)) {
28
- for (const memberId of values) {
29
- await cache.del(`departments:${memberId}`);
30
- }
31
- }
32
- if (associatedName === "users" && resourceName === "departments" && ["add", "remove", "set"].includes(actionName)) {
33
- await cache.del(`departments:${associatedIndex}`);
34
- }
35
- };
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- resetUserDepartmentsCache
39
- });
@@ -1,2 +0,0 @@
1
- import type { Context, Next } from '@tachybase/actions';
2
- export declare const setDepartmentOwners: (ctx: Context, next: Next) => Promise<any>;
@@ -1,2 +0,0 @@
1
- import type { Context, Next } from '@tachybase/actions';
2
- export declare const setDepartmentsInfo: (ctx: Context, next: Next) => Promise<any>;
@@ -1,64 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var set_departments_roles_exports = {};
19
- __export(set_departments_roles_exports, {
20
- setDepartmentsInfo: () => setDepartmentsInfo
21
- });
22
- module.exports = __toCommonJS(set_departments_roles_exports);
23
- const setDepartmentsInfo = async (ctx, next) => {
24
- const currentUser = ctx.state.currentUser;
25
- if (!currentUser) {
26
- return next();
27
- }
28
- const cache = ctx.cache;
29
- const repo = ctx.db.getRepository("users.departments", currentUser.id);
30
- const departments = await cache.wrap(
31
- `departments:${currentUser.id}`,
32
- () => repo.find({
33
- // FIXME: 看下这个实际类型是啥?
34
- // @ts-expect-error
35
- appends: ["owners", "roles", "parent(recursively=true)"],
36
- raw: true
37
- })
38
- );
39
- if (!departments.length) {
40
- return next();
41
- }
42
- ctx.state.currentUser.departments = departments;
43
- ctx.state.currentUser.mainDeparmtent = departments.find((dept) => dept.isMain);
44
- const departmentIds = departments.map((dept) => dept.id);
45
- const roleRepo = ctx.db.getRepository("roles");
46
- const roles = await roleRepo.find({
47
- filter: {
48
- "departments.id": {
49
- $in: departmentIds
50
- }
51
- }
52
- });
53
- if (!roles.length) {
54
- return next();
55
- }
56
- const rolesMap = /* @__PURE__ */ new Map();
57
- roles.forEach((role) => rolesMap.set(role.name, role));
58
- ctx.state.attachRoles = Array.from(rolesMap.values());
59
- await next();
60
- };
61
- // Annotate the CommonJS export names for ESM import in node:
62
- 0 && (module.exports = {
63
- setDepartmentsInfo
64
- });
@@ -1,2 +0,0 @@
1
- import type { Context, Next } from '@tachybase/actions';
2
- export declare const setMainDepartment: (ctx: Context, next: Next) => Promise<void>;
@@ -1,105 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var set_main_department_exports = {};
19
- __export(set_main_department_exports, {
20
- setMainDepartment: () => setMainDepartment
21
- });
22
- module.exports = __toCommonJS(set_main_department_exports);
23
- const setMainDepartment = async (ctx, next) => {
24
- await next();
25
- const { associatedName, resourceName, associatedIndex, actionName, values } = ctx.action.params;
26
- if (associatedName === "departments" && resourceName === "members" && (values == null ? void 0 : values.length)) {
27
- const throughRepo = ctx.db.getRepository("departmentsUsers");
28
- const usersHasMain = await throughRepo.find({
29
- filter: {
30
- userId: {
31
- $in: values
32
- },
33
- isMain: true
34
- }
35
- });
36
- const userIdsHasMain = usersHasMain.map((item) => item.userId);
37
- if (actionName === "add" || actionName === "set") {
38
- await throughRepo.update({
39
- filter: {
40
- userId: {
41
- $in: values.filter((id) => !userIdsHasMain.includes(id))
42
- },
43
- departmentId: associatedIndex
44
- },
45
- values: {
46
- isMain: true
47
- }
48
- });
49
- return;
50
- }
51
- if (actionName === "remove") {
52
- const userIdsHasNoMain = values.filter((id) => !userIdsHasMain.includes(id));
53
- for (const userId of userIdsHasNoMain) {
54
- const firstDept = await throughRepo.findOne({
55
- filter: {
56
- userId
57
- }
58
- });
59
- if (firstDept) {
60
- await throughRepo.update({
61
- filter: {
62
- userId,
63
- departmentId: firstDept.departmentId
64
- },
65
- values: {
66
- isMain: true
67
- }
68
- });
69
- }
70
- }
71
- }
72
- }
73
- if (associatedName === "users" && resourceName === "departments" && ["add", "remove", "set"].includes(actionName)) {
74
- const throughRepo = ctx.db.getRepository("departmentsUsers");
75
- const hasMain = await throughRepo.findOne({
76
- filter: {
77
- userId: associatedIndex,
78
- isMain: true
79
- }
80
- });
81
- if (hasMain) {
82
- return;
83
- }
84
- const firstDept = await throughRepo.findOne({
85
- filter: {
86
- userId: associatedIndex
87
- }
88
- });
89
- if (firstDept) {
90
- await throughRepo.update({
91
- filter: {
92
- userId: associatedIndex,
93
- departmentId: firstDept.departmentId
94
- },
95
- values: {
96
- isMain: true
97
- }
98
- });
99
- }
100
- }
101
- };
102
- // Annotate the CommonJS export names for ESM import in node:
103
- 0 && (module.exports = {
104
- setMainDepartment
105
- });
@@ -1,2 +0,0 @@
1
- import type { Context, Next } from '@tachybase/actions';
2
- export declare const updateDepartmentIsLeaf: (ctx: Context, next: Next) => Promise<any>;