@yongdall/organization-rbac 0.6.6 → 0.7.0

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/index.d.mts CHANGED
@@ -1,14 +1,11 @@
1
- import * as imodel20 from "imodel";
2
- import * as _yongdall_model3 from "@yongdall/model";
3
-
4
1
  //#region plugins/organization-rbac/models/CompositeRole.d.mts
5
- declare const CompositeRole: _yongdall_model3.ModelTable<{
6
- id: imodel20.FieldDefine<"uuid", false, false>;
7
- label: imodel20.FieldDefine<"string", false, false>;
8
- organizationId: imodel20.FieldDefine<"uuid", false, true>;
9
- description: imodel20.FieldDefine<"text", false, true>;
10
- createdAt: imodel20.FieldDefine<"date", false, false>;
11
- updatedAt: imodel20.FieldDefine<"date", false, false>;
2
+ export declare const CompositeRole: import("@yongdall/model").ModelTable<{
3
+ id: import("imodel").FieldDefine<"uuid", false, false>;
4
+ label: import("imodel").FieldDefine<"string", false, false>;
5
+ organizationId: import("imodel").FieldDefine<"uuid", false, true>;
6
+ description: import("imodel").FieldDefine<"text", false, true>;
7
+ createdAt: import("imodel").FieldDefine<"date", false, false>;
8
+ updatedAt: import("imodel").FieldDefine<"date", false, false>;
12
9
  }, "compositeRole">;
13
10
  //#endregion
14
11
  //#region plugins/organization-rbac/models/OrganizationCompositeRole.d.mts
@@ -20,11 +17,11 @@ declare const CompositeRole: _yongdall_model3.ModelTable<{
20
17
  * @property {string} roleId - 角色ID,主键第三部分
21
18
  * @property {number} no - 编号
22
19
  */
23
- declare const OrganizationCompositeRole: _yongdall_model3.ModelTable<{
24
- compositeRoleId: imodel20.FieldDefine<"uuid", false, false>;
25
- organizationId: imodel20.FieldDefine<"uuid", false, false>;
26
- roleId: imodel20.FieldDefine<"uuid", false, false>;
27
- createdAt: imodel20.FieldDefine<"date", false, false>;
20
+ export declare const OrganizationCompositeRole: import("@yongdall/model").ModelTable<{
21
+ compositeRoleId: import("imodel").FieldDefine<"uuid", false, false>;
22
+ organizationId: import("imodel").FieldDefine<"uuid", false, false>;
23
+ roleId: import("imodel").FieldDefine<"uuid", false, false>;
24
+ createdAt: import("imodel").FieldDefine<"date", false, false>;
28
25
  }, "organizationCompositeRole">;
29
26
  //#endregion
30
27
  //#region plugins/organization-rbac/models/OrganizationUserCompositeRole.d.mts
@@ -36,60 +33,49 @@ declare const OrganizationCompositeRole: _yongdall_model3.ModelTable<{
36
33
  * @property {string} roleId - 角色ID,主键第三部分
37
34
  * @property {number} no - 编号
38
35
  */
39
- declare const OrganizationUserCompositeRole: _yongdall_model3.ModelTable<{
40
- userId: imodel20.FieldDefine<"uuid", false, false>;
41
- organizationId: imodel20.FieldDefine<"uuid", false, false>;
42
- compositeRoleId: imodel20.FieldDefine<"uuid", false, false>;
43
- createdAt: imodel20.FieldDefine<"date", false, false>;
44
- updatedAt: imodel20.FieldDefine<"date", false, false>;
36
+ export declare const OrganizationUserCompositeRole: import("@yongdall/model").ModelTable<{
37
+ userId: import("imodel").FieldDefine<"uuid", false, false>;
38
+ organizationId: import("imodel").FieldDefine<"uuid", false, false>;
39
+ compositeRoleId: import("imodel").FieldDefine<"uuid", false, false>;
40
+ createdAt: import("imodel").FieldDefine<"date", false, false>;
41
+ updatedAt: import("imodel").FieldDefine<"date", false, false>;
45
42
  }, "organizationUserCompositeRole">;
46
43
  //#endregion
47
44
  //#region plugins/organization-rbac/models/OrganizationAppointment.d.mts
48
- declare const OrganizationAppointment: _yongdall_model3.ModelTable<{
49
- id: imodel20.FieldDefine<"uuid", false, false>;
50
- label: imodel20.FieldDefine<"string", false, false>;
51
- description: imodel20.FieldDefine<"string", false, true>;
52
- createdAt: imodel20.FieldDefine<"date", false, false>;
53
- updatedAt: imodel20.FieldDefine<"date", false, false>;
45
+ export declare const OrganizationAppointment: import("@yongdall/model").ModelTable<{
46
+ id: import("imodel").FieldDefine<"uuid", false, false>;
47
+ label: import("imodel").FieldDefine<"string", false, false>;
48
+ description: import("imodel").FieldDefine<"string", false, true>;
49
+ createdAt: import("imodel").FieldDefine<"date", false, false>;
50
+ updatedAt: import("imodel").FieldDefine<"date", false, false>;
54
51
  }, "organizationAppointment">;
55
52
  //#endregion
56
53
  //#region plugins/organization-rbac/models/OrganizationMember.d.mts
57
- declare const OrganizationMember: _yongdall_model3.ModelTable<{
58
- id: imodel20.FieldDefine<"uuid", false, false>;
59
- userId: imodel20.FieldDefine<"uuid", false, false>;
60
- organizationId: imodel20.FieldDefine<"uuid", false, false>;
61
- appointmentId: imodel20.FieldDefine<"uuid", false, true>;
62
- default: imodel20.FieldDefine<"bool", false, false>;
63
- createdAt: imodel20.FieldDefine<"date", false, false>;
64
- updatedAt: imodel20.FieldDefine<"date", false, false>;
54
+ export declare const OrganizationMember: import("@yongdall/model").ModelTable<{
55
+ id: import("imodel").FieldDefine<"uuid", false, false>;
56
+ userId: import("imodel").FieldDefine<"uuid", false, false>;
57
+ organizationId: import("imodel").FieldDefine<"uuid", false, false>;
58
+ appointmentId: import("imodel").FieldDefine<"uuid", false, true>;
59
+ default: import("imodel").FieldDefine<"bool", false, false>;
60
+ createdAt: import("imodel").FieldDefine<"date", false, false>;
61
+ updatedAt: import("imodel").FieldDefine<"date", false, false>;
65
62
  }, "organizationMember">;
66
63
  //#endregion
67
64
  //#region plugins/organization-rbac/models/OrganizationUserRole.d.mts
68
- declare const OrganizationUserRole: _yongdall_model3.ModelTable<{
69
- userId: imodel20.FieldDefine<"uuid", false, false>;
70
- organizationId: imodel20.FieldDefine<"uuid", false, false>;
71
- roleId: imodel20.FieldDefine<"uuid", false, false>;
72
- createdAt: imodel20.FieldDefine<"date", false, false>;
65
+ export declare const OrganizationUserRole: import("@yongdall/model").ModelTable<{
66
+ userId: import("imodel").FieldDefine<"uuid", false, false>;
67
+ organizationId: import("imodel").FieldDefine<"uuid", false, false>;
68
+ roleId: import("imodel").FieldDefine<"uuid", false, false>;
69
+ createdAt: import("imodel").FieldDefine<"date", false, false>;
73
70
  }, "organizationUserRole">;
74
71
  //#endregion
75
72
  //#region plugins/organization-rbac/index.d.mts
76
73
  /** 所在组织 */
77
- declare const getOrganizations: (userId: string | null) => Promise<Set<unknown>>;
74
+ export declare const getOrganizations: (userId: string | null) => Promise<Set<unknown>>;
78
75
  /** 角色 */
79
- declare const getOrganizationRoleIds: (userId: string | null) => Promise<{
76
+ export declare const getOrganizationRoleIds: (userId: string | null) => Promise<{
80
77
  [k: string]: Set<string>;
81
78
  }>;
82
- declare const getOrganizationPermissions: (userId: string | null) => Promise<Record<string, Set<string>>>;
83
- declare const getOrganizationAllPermissions: (userId: string | null) => Promise<Set<string>>;
84
- /** @deprecated */
85
- declare const useOrganizations: () => Promise<Set<unknown>>;
86
- /** @deprecated */
87
- declare const useOrganizationRoleIds: () => Promise<{
88
- [k: string]: Set<string>;
89
- }>;
90
- /** @deprecated */
91
- declare const useOrganizationPermissions: () => Promise<Record<string, Set<string>>>;
92
- /** @deprecated */
93
- declare const useOrganizationAllPermissions: () => Promise<Set<string>>;
94
- //#endregion
95
- export { CompositeRole, OrganizationAppointment, OrganizationCompositeRole, OrganizationMember, OrganizationUserCompositeRole, OrganizationUserRole, getOrganizationAllPermissions, getOrganizationPermissions, getOrganizationRoleIds, getOrganizations, useOrganizationAllPermissions, useOrganizationPermissions, useOrganizationRoleIds, useOrganizations };
79
+ export declare const getOrganizationPermissions: (userId: string | null) => Promise<Record<string, Set<string>>>;
80
+ export declare const getOrganizationAllPermissions: (userId: string | null) => Promise<Set<string>>;
81
+ //#endregion
package/index.mjs CHANGED
@@ -1,3 +1,2 @@
1
- import { a as useOrganizationAllPermissions, c as useOrganizations, d as OrganizationAppointment, f as CompositeRole, i as getOrganizations, l as OrganizationUserRole, m as OrganizationCompositeRole, n as getOrganizationPermissions, o as useOrganizationPermissions, p as OrganizationUserCompositeRole, r as getOrganizationRoleIds, s as useOrganizationRoleIds, t as getOrganizationAllPermissions, u as OrganizationMember } from "./organization-rbac-CVRP1FKi.mjs";
2
-
3
- export { CompositeRole, OrganizationAppointment, OrganizationCompositeRole, OrganizationMember, OrganizationUserCompositeRole, OrganizationUserRole, getOrganizationAllPermissions, getOrganizationPermissions, getOrganizationRoleIds, getOrganizations, useOrganizationAllPermissions, useOrganizationPermissions, useOrganizationRoleIds, useOrganizations };
1
+ import { a as OrganizationUserRole, c as CompositeRole, i as getOrganizations, l as OrganizationUserCompositeRole, n as getOrganizationPermissions, o as OrganizationMember, r as getOrganizationRoleIds, s as OrganizationAppointment, t as getOrganizationAllPermissions, u as OrganizationCompositeRole } from "./organization-rbac--hDZMB8h.mjs";
2
+ export { CompositeRole, OrganizationAppointment, OrganizationCompositeRole, OrganizationMember, OrganizationUserCompositeRole, OrganizationUserRole, getOrganizationAllPermissions, getOrganizationPermissions, getOrganizationRoleIds, getOrganizations };
@@ -1,13 +1,11 @@
1
1
  import { createKeyStore } from "@yongdall/context";
2
2
  import { Action, Query, Where, actions, createField, createModel, now, uuid } from "@yongdall/model";
3
- import { ServerError, getModel, getUser } from "@yongdall/core";
3
+ import { ServerError, getModel } from "@yongdall/core";
4
4
  import { useDatabase } from "@yongdall/connection";
5
5
  import { findRolePermissions } from "@yongdall/role-permission";
6
6
  import PluginMeta from "@yongdall/plugin-meta";
7
-
8
7
  //#region plugins/organization-rbac/constants.mts
9
8
  const { id: pluginId, database } = PluginMeta();
10
-
11
9
  //#endregion
12
10
  //#region plugins/organization-rbac/models/OrganizationCompositeRole.mts
13
11
  /**
@@ -102,7 +100,6 @@ const OrganizationCompositeRole = createModel("organizationCompositeRole", {
102
100
  }
103
101
  } }
104
102
  });
105
-
106
103
  //#endregion
107
104
  //#region plugins/organization-rbac/models/OrganizationUserCompositeRole.mts
108
105
  /**
@@ -185,7 +182,6 @@ const OrganizationUserCompositeRole = createModel("organizationUserCompositeRole
185
182
  throw new ServerError("复合角色与组织不匹配");
186
183
  } }
187
184
  });
188
-
189
185
  //#endregion
190
186
  //#region plugins/organization-rbac/models/CompositeRole.mts
191
187
  const CompositeRole = createModel("compositeRole", {
@@ -279,7 +275,6 @@ const CompositeRole = createModel("compositeRole", {
279
275
  }
280
276
  }
281
277
  });
282
-
283
278
  //#endregion
284
279
  //#region plugins/organization-rbac/models/OrganizationAppointment.mts
285
280
  const OrganizationAppointment = createModel("organizationAppointment", {
@@ -326,7 +321,6 @@ const OrganizationAppointment = createModel("organizationAppointment", {
326
321
  ]
327
322
  }]
328
323
  });
329
-
330
324
  //#endregion
331
325
  //#region plugins/organization-rbac/models/OrganizationMember.mts
332
326
  const OrganizationMember = createModel("organizationMember", {
@@ -416,7 +410,6 @@ const OrganizationMember = createModel("organizationMember", {
416
410
  }
417
411
  }
418
412
  });
419
-
420
413
  //#endregion
421
414
  //#region plugins/organization-rbac/models/OrganizationUserRole.mts
422
415
  const OrganizationUserRole = createModel("organizationUserRole", {
@@ -466,7 +459,6 @@ const OrganizationUserRole = createModel("organizationUserRole", {
466
459
  ]
467
460
  }]
468
461
  });
469
-
470
462
  //#endregion
471
463
  //#region plugins/organization-rbac/index.mts
472
464
  /** 所在组织 */
@@ -499,15 +491,7 @@ const getOrganizationAllPermissions = createKeyStore(async (userId) => {
499
491
  const v = await getOrganizationPermissions(userId);
500
492
  return new Set(Object.values(v).flatMap((v) => [...v]));
501
493
  }, (user) => user || "");
502
- /** @deprecated */
503
- const useOrganizations = () => getUser().then(getOrganizations);
504
- /** @deprecated */
505
- const useOrganizationRoleIds = () => getUser().then(getOrganizationRoleIds);
506
- /** @deprecated */
507
- const useOrganizationPermissions = () => getUser().then(getOrganizationPermissions);
508
- /** @deprecated */
509
- const useOrganizationAllPermissions = () => getUser().then(getOrganizationAllPermissions);
510
-
511
494
  //#endregion
512
- export { useOrganizationAllPermissions as a, useOrganizations as c, OrganizationAppointment as d, CompositeRole as f, getOrganizations as i, OrganizationUserRole as l, OrganizationCompositeRole as m, getOrganizationPermissions as n, useOrganizationPermissions as o, OrganizationUserCompositeRole as p, getOrganizationRoleIds as r, useOrganizationRoleIds as s, getOrganizationAllPermissions as t, OrganizationMember as u };
513
- //# sourceMappingURL=organization-rbac-CVRP1FKi.mjs.map
495
+ export { OrganizationUserRole as a, CompositeRole as c, getOrganizations as i, OrganizationUserCompositeRole as l, getOrganizationPermissions as n, OrganizationMember as o, getOrganizationRoleIds as r, OrganizationAppointment as s, getOrganizationAllPermissions as t, OrganizationCompositeRole as u };
496
+
497
+ //# sourceMappingURL=organization-rbac--hDZMB8h.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"organization-rbac-CVRP1FKi.mjs","names":[],"sources":["../../plugins/organization-rbac/constants.mts","../../plugins/organization-rbac/models/OrganizationCompositeRole.mts","../../plugins/organization-rbac/models/OrganizationUserCompositeRole.mts","../../plugins/organization-rbac/models/CompositeRole.mts","../../plugins/organization-rbac/models/OrganizationAppointment.mts","../../plugins/organization-rbac/models/OrganizationMember.mts","../../plugins/organization-rbac/models/OrganizationUserRole.mts","../../plugins/organization-rbac/index.mts"],"sourcesContent":["import PluginMeta from '@yongdall/plugin-meta';\nexport const {\n\tid: pluginId,\n\tdatabase: database,\n} = PluginMeta();\n","import { actions, createField, createModel, now, Query, uuid, Where } from '@yongdall/model';\nimport { database } from '../constants.mts';\nimport { CompositeRole } from './CompositeRole.mts';\nimport { getModel, ServerError } from '@yongdall/core';\nimport { useDatabase } from '@yongdall/connection';\n\n/**\n * 组织用户角色模型\n * @typedef {Object} OrganizationUserRole\n * @property {string} userId - 用户ID,主键第一部分\n * @property {string} organizationId - 组织ID,主键第二部分\n * @property {string} roleId - 角色ID,主键第三部分\n * @property {number} no - 编号\n */\nexport const OrganizationCompositeRole = createModel('organizationCompositeRole', {\n\tcompositeRoleId: createField('uuid', { nullable: false, index: true, label: '复合角色', model: 'compositeRole', renderer: 'document', immutable: true, primary: 1 }),\n\torganizationId: createField('uuid', { nullable: false, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true, primary: 2 }),\n\troleId: createField('uuid', { nullable: false, index: true, label: '角色', model: 'role', renderer: 'document', immutable: true, primary: 3 }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n}, {\n\n\tpermissions: [\n\t\t{ permission: 'system:compositeRole', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'destroy'] },\n\t\t{ permission: 'system:compositeRole', organizationField: 'organizationId', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy'] },\n\t],\n\tdatabase,\n\tlabel: '组织复合角色配置',\n\thooks: {\n\t\tasync afterCreate(conn, model, record) {\n\t\t\tif (!record.organizationId) { throw new ServerError('组织不存在') }\n\t\t\tif (!record.roleId) { throw new ServerError('角色不存在') }\n\t\t\tconst [compositeRole] = await conn.call(\n\t\t\t\tnew Query(CompositeRole).where({ id: record.compositeRoleId }).limit(1)\n\t\t\t)\n\t\t\tif (!compositeRole) {\n\t\t\t\tthrow new Error('复合角色不存在')\n\t\t\t}\n\t\t\tif (!compositeRole.organizationId) { return }\n\t\t\tconst organizationModel = await getModel('organization')\n\t\t\tif (organizationModel) {\n\t\t\t\tconst [organization] = await useDatabase(organizationModel.databaseId).call(\n\t\t\t\t\tnew Query(organizationModel).where({ id: record.organizationId, mainId: compositeRole.organizationId }).limit(1)\n\t\t\t\t)\n\t\t\t\tif (!organization) {\n\t\t\t\t\tthrow new ServerError('请选择关联组织');\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tconst roleModel = await getModel('role')\n\t\t\tif (roleModel?.fields.open) {\n\t\t\t\tconst [role] = await useDatabase(roleModel.databaseId).call(\n\t\t\t\t\tnew Query(roleModel).where({ id: record.organizationId, open: true }).limit(1)\n\t\t\t\t)\n\t\t\t\tif (!role) {\n\t\t\t\t\tthrow new ServerError('请选择有效角色');\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\t}\n});\n","import { actions, createField, createModel, now, Query, uuid, Where} from '@yongdall/model';\nimport { database } from '../constants.mts';\nimport { CompositeRole } from './CompositeRole.mts';\nimport { ServerError } from '@yongdall/core';\n\n/**\n * 组织用户角色模型\n * @typedef {Object} OrganizationUserRole\n * @property {string} userId - 用户ID,主键第一部分\n * @property {string} organizationId - 组织ID,主键第二部分\n * @property {string} roleId - 角色ID,主键第三部分\n * @property {number} no - 编号\n */\nexport const OrganizationUserCompositeRole = createModel('organizationUserCompositeRole', {\n\tuserId: createField('uuid', { nullable: false, index: true, label: '用户', model: 'user', renderer: 'document', immutable: true, primary: 1 }),\n\torganizationId: createField('uuid', { nullable: false, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true }),\n\tcompositeRoleId: createField('uuid', { nullable: false, index: true, label: '角色', model: 'compositeRole', renderer: 'document', immutable: true, primary: 2 }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\tupdatedAt: createField('date', { nullable: false, default: now, updating: now, label: '最后更新日期' }),\n},{\n\tdatabase,\n\tlabel: '用户复合角色',\n\n\tpermissions: [\n\t\t{ permission: 'system:compositeRole', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'destroy'] },\n\t\t{ permission: 'system:compositeRole', organizationField: 'organizationId', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy'] },\n\t],\n\thooks: {\n\t\tasync afterCreate(conn, model, record) {\n\t\t\tconst [compositeRole] = await conn.call(\n\t\t\t\tnew Query(CompositeRole).where({ id: record.compositeRoleId }).limit(1)\n\t\t\t)\n\t\t\tif (!compositeRole) {\n\t\t\t\tthrow new ServerError('复合角色不存在')\n\t\t\t}\n\t\t\tif ((compositeRole.organizationId || null) === (record.organizationId || null)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthrow new ServerError('复合角色与组织不匹配');\n\t\t},\n\t}\n});\n","import { Action, actions, createField, createModel, now, Query, uuid, Where } from '@yongdall/model';\nimport { database } from '../constants.mts';\nimport { getModel, ServerError } from '@yongdall/core';\nimport { useDatabase } from '@yongdall/connection';\nimport { OrganizationCompositeRole } from './OrganizationCompositeRole.mts';\nimport { OrganizationUserCompositeRole } from './OrganizationUserCompositeRole.mts';\n\n\nexport const CompositeRole = createModel('compositeRole', {\n\tid: createField('uuid', { nullable: false, default: uuid, primary: 1, uncreatable: true, layout: { hidden: true } }),\n\tlabel: createField('string', { size: 255, nullable: false, default: '', label: '名称', layout: { colSpan: 6 } }),\n\torganizationId: createField('uuid', { nullable: true, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true, source: { search: 'internal=0' } }),\n\tdescription: createField('text', { nullable: true, label: '描述' }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\tupdatedAt: createField('date', { nullable: false, default: now, updating: now, label: '最后更新日期' }),\n}, {\n\tdatabase,\n\tlabelField: 'label',\n\tlabel: '复合角色',\n\n\tpermissions: [\n\t\t{ permission: 'system:compositeRole', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy', 'add', 'remove'] },\n\t\t{ permission: 'system:compositeRole', organizationField: 'organizationId', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy', 'add', 'remove'] },\n\t],\n\thooks: {\n\t\tasync afterCreate(conn, model, { organizationId }) {\n\t\t\tif (!organizationId) { return; }\n\t\t\tconst organizationModel = await getModel('organization')\n\t\t\tif (!organizationModel) { return; }\n\t\t\tconst [organization] = await useDatabase(organizationModel.databaseId).call(\n\t\t\t\tnew Query(organizationModel).where({ id: organizationId, internal: false }).limit(1)\n\t\t\t)\n\t\t\tif (organization) { return; }\n\t\t\tthrow new ServerError('请选择外部组织');\n\t\t},\n\t\tasync afterDelete(conn, model, record, update) {\n\t\t\tconst list = [\n\t\t\t\tconn.call(Action.delete(OrganizationUserCompositeRole, Where.and({ compositeRoleId: record.id })))\n\t\t\t]\n\n\t\t\tif (!update) {\n\t\t\t\tlist.push(\n\t\t\t\t\tconn.call(Action.delete(OrganizationCompositeRole, Where.and({ compositeRoleId: record.id })))\n\t\t\t\t)\n\t\t\t}\n\t\t\tawait Promise.all(list)\n\t\t},\n\t}\n});\n","import { createField, createModel, now, uuid } from '@yongdall/model';\nimport { database } from '../constants.mts';\n\n\n\n// export const OrganizationAppointmentRole = createModel('organizationAppointmentRole', {\n// \tappointmentId: createField('uuid', { nullable: false, index: true, label: '职务', model: 'appointment', renderer: 'document', immutable: true, primary: 1 }),\n// \troleId: createField('uuid', { nullable: false, index: true, label: '角色', model: 'role', renderer: 'document', immutable: true, primary: 2 }),\n// \tno: createField('i32', { nullable: false, default: 0 }),\n// });\n\nexport const OrganizationAppointment = createModel('organizationAppointment', {\n\tid: createField('uuid', { nullable: false, primary: 1, default: uuid, uncreatable: true, immutable: true }),\n\n\tlabel: createField('string', { nullable: false, label: '职务名称' }),\n\tdescription: createField('string', { nullable: true, label: '描述' }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\tupdatedAt: createField('date', { nullable: false, default: now, updating: now, label: '最后更新日期' }),\n\n\t// roles: createField(OrganizationAppointmentRole, { \n\t// \tarray: true, \n\t// \tconstraints: { appointmentId: { field: 'id' }, no: { noField: true } }, \n\t// \tlabel: '角色列表' \n\t// }),\n}, {\n\tdatabase,\n\n\tpermissions: [\n\t\t{ permission: 'system:organization', fields: '*', authorizations: ['query', 'read', 'create', 'update', 'destroy', 'add', 'remove'] },\n\t],\n});\n","import { actions, createField, createModel, now, uuid, Where} from '@yongdall/model';\nimport { database } from '../constants.mts';\n\n\nexport const OrganizationMember = createModel('organizationMember', {\n\tid: createField('uuid', { nullable: false, index: true, primary: 1, default: uuid, uncreatable: true, immutable: true }),\n\n\tuserId: createField('uuid', { nullable: false, index: true, label: '用户', model: 'user', renderer: 'document', immutable: true, layout: { rowSpan: 6 } }),\n\torganizationId: createField('uuid', { nullable: false, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true, layout: { rowSpan: 6 } }),\n\tappointmentId: createField('uuid', { nullable: true, index: true, label: '职务', model: 'appointment', renderer: 'document', layout: { rowSpan: 6 } }),\n\n\tdefault: createField('bool', { nullable: false, default: false, label: '默认职务' }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\tupdatedAt: createField('date', { nullable: false, default: now, updating: now, label: '最后更新日期' }),\n\n}, {\n\tdatabase,\n\tindexes: [\n\t\t{ fields: ['userId', 'organizationId', 'appointmentId'], unique: true }\n\t],\n\tpermissions: [\n\t\t{ permission: 'system:user', fields: '*', authorizations: ['query', 'read', 'create', 'update', 'destroy', 'add', 'remove'] },\n\t],\n\thooks: {\n\t\tasync afterCreate(conn, Model, record) {\n\t\t\tif (!record.default) { return }\n\t\t\tawait conn.call(actions.update(\n\t\t\t\tModel,\n\t\t\t\t{ default: false },\n\t\t\t\tWhere.and('organizationId', '=', record.organizationId, true)\n\t\t\t\t\t.and('userId', record.userId),\n\t\t\t));\n\t\t},\n\n\t\tasync afterUpdate(conn, Model, record, oldRecord) {\n\t\t\tif (!record.default) { return }\n\t\t\tif (oldRecord.default) { return }\n\t\t\tawait conn.call(actions.update(\n\t\t\t\tModel,\n\t\t\t\t{ default: false },\n\t\t\t\tWhere.and('organizationId', '=', record.organizationId, true)\n\t\t\t\t\t.and('userId', record.userId),\n\t\t\t));\n\t\t},\n\t}\n});\n","import { actions, createField, createModel, now, uuid, Where} from '@yongdall/model';\nimport { database } from '../constants.mts';\n\nexport const OrganizationUserRole = createModel('organizationUserRole', {\n\tuserId: createField('uuid', { nullable: false, index: true, label: '用户', model: 'user', renderer: 'document', immutable: true, primary: 1 }),\n\torganizationId: createField('uuid', { nullable: false, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true, primary: 2 }),\n\troleId: createField('uuid', { nullable: false, index: true, label: '角色', model: 'role', renderer: 'document', immutable: true, primary: 3 }),\n\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\n},{\n\tdatabase,\n\tpermissions: [\n\t\t{ permission: 'system:user', fields: '*', authorizations: ['query', 'read', 'create', 'destroy'] },\n\t],\n});\n","import { createKeyStore } from '@yongdall/context';\nimport { Query } from '@yongdall/model';\nimport { getUser } from '@yongdall/core';\nimport { useDatabase } from '@yongdall/connection';\nimport { findRolePermissions } from '@yongdall/role-permission';\nimport { OrganizationCompositeRole, OrganizationMember, OrganizationUserCompositeRole, OrganizationUserRole } from './models/index.mts';\n\nexport * from './models/index.mts';\n\n\n/** 所在组织 */\nexport const getOrganizations = createKeyStore(async (userId: string | null) => {\n\tif (!userId) { return new Set(); }\n\tconst relations: { organizationId: string }[] = await useDatabase(OrganizationMember.databaseId).call(\n\t\tnew Query(OrganizationMember).select(['organizationId']).where('userId', userId)\n\t);\n\treturn new Set(relations.map(v => v.organizationId));\n}, user => user || '');\n\n\n/** 角色 */\nexport const getOrganizationRoleIds = createKeyStore(async (userId: string | null) => {\n\tconst compositeRoleIds = new Query(OrganizationUserCompositeRole).select('compositeRoleId').where('userId', '=', userId)\n\tconst list: { organizationId: number; roleId: string; }[][] = await Promise.all([\n\t\tuseDatabase(OrganizationUserRole.databaseId).call(\n\t\t\tnew Query(OrganizationUserRole).select(['organizationId', 'roleId'])\n\t\t\t\t.where('userId', userId)\n\t\t),\n\t\tuseDatabase(OrganizationCompositeRole.databaseId).call(\n\t\t\tnew Query(OrganizationCompositeRole).select(['organizationId', 'roleId'])\n\t\t\t\t.where('compositeRoleId', 'in', compositeRoleIds)\n\t\t)\n\t]);\n\n\treturn Object.fromEntries((Object.entries(Object.groupBy(list.flat(), v => v.organizationId))\n\t\t.map(([organizationId, list]) => [organizationId, new Set(list?.map(v => v.roleId))])))\n}, user => user || '');\n\n\nexport const getOrganizationPermissions = createKeyStore(async (userId: string | null) => {\n\tconst roleIds = await getOrganizationRoleIds(userId)\n\tconst allRoleIds = [...new Set(Object.values(roleIds).flatMap(v => [...v]))];\n\tconst permissions: Record<string, Set<string>> = Object.create(null);\n\tif (!allRoleIds.length) { return permissions; }\n\tconst values = await findRolePermissions(allRoleIds);\n\tconst list = Object.fromEntries(Object.entries(Object.groupBy(values, l => l.roleId)).map(([k, v]) => [k, v?.map(v => v.permission)]));\n\tfor (const [organization, roleSet] of Object.entries(roleIds)) {\n\t\tconst s = new Set([...roleSet].flatMap(v => list[v] || []));\n\t\tif (!s.size) { continue; }\n\t\tpermissions[organization] = s;\n\t}\n\treturn permissions;\n}, user => user || '');\n\n\n\nexport const getOrganizationAllPermissions = createKeyStore(async (userId: string | null) => {\n\tconst v = await getOrganizationPermissions(userId)\n\treturn new Set(Object.values(v).flatMap(v => [...v]));\n}, user => user || '');\n\n/** @deprecated */\nexport const useOrganizations = () => getUser().then(getOrganizations);\n/** @deprecated */\nexport const useOrganizationRoleIds = () => getUser().then(getOrganizationRoleIds);\n/** @deprecated */\nexport const useOrganizationPermissions = () => getUser().then(getOrganizationPermissions);\n/** @deprecated */\nexport const useOrganizationAllPermissions = () => getUser().then(getOrganizationAllPermissions);\n"],"mappings":"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"}
1
+ {"version":3,"file":"organization-rbac--hDZMB8h.mjs","names":[],"sources":["../../plugins/organization-rbac/constants.mts","../../plugins/organization-rbac/models/OrganizationCompositeRole.mts","../../plugins/organization-rbac/models/OrganizationUserCompositeRole.mts","../../plugins/organization-rbac/models/CompositeRole.mts","../../plugins/organization-rbac/models/OrganizationAppointment.mts","../../plugins/organization-rbac/models/OrganizationMember.mts","../../plugins/organization-rbac/models/OrganizationUserRole.mts","../../plugins/organization-rbac/index.mts"],"sourcesContent":["import PluginMeta from '@yongdall/plugin-meta';\nexport const {\n\tid: pluginId,\n\tdatabase: database,\n} = PluginMeta();\n","import { actions, createField, createModel, now, Query, uuid, Where } from '@yongdall/model';\nimport { database } from '../constants.mts';\nimport { CompositeRole } from './CompositeRole.mts';\nimport { getModel, ServerError } from '@yongdall/core';\nimport { useDatabase } from '@yongdall/connection';\n\n/**\n * 组织用户角色模型\n * @typedef {Object} OrganizationUserRole\n * @property {string} userId - 用户ID,主键第一部分\n * @property {string} organizationId - 组织ID,主键第二部分\n * @property {string} roleId - 角色ID,主键第三部分\n * @property {number} no - 编号\n */\nexport const OrganizationCompositeRole = createModel('organizationCompositeRole', {\n\tcompositeRoleId: createField('uuid', { nullable: false, index: true, label: '复合角色', model: 'compositeRole', renderer: 'document', immutable: true, primary: 1 }),\n\torganizationId: createField('uuid', { nullable: false, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true, primary: 2 }),\n\troleId: createField('uuid', { nullable: false, index: true, label: '角色', model: 'role', renderer: 'document', immutable: true, primary: 3 }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n}, {\n\n\tpermissions: [\n\t\t{ permission: 'system:compositeRole', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'destroy'] },\n\t\t{ permission: 'system:compositeRole', organizationField: 'organizationId', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy'] },\n\t],\n\tdatabase,\n\tlabel: '组织复合角色配置',\n\thooks: {\n\t\tasync afterCreate(conn, model, record) {\n\t\t\tif (!record.organizationId) { throw new ServerError('组织不存在') }\n\t\t\tif (!record.roleId) { throw new ServerError('角色不存在') }\n\t\t\tconst [compositeRole] = await conn.call(\n\t\t\t\tnew Query(CompositeRole).where({ id: record.compositeRoleId }).limit(1)\n\t\t\t)\n\t\t\tif (!compositeRole) {\n\t\t\t\tthrow new Error('复合角色不存在')\n\t\t\t}\n\t\t\tif (!compositeRole.organizationId) { return }\n\t\t\tconst organizationModel = await getModel('organization')\n\t\t\tif (organizationModel) {\n\t\t\t\tconst [organization] = await useDatabase(organizationModel.databaseId).call(\n\t\t\t\t\tnew Query(organizationModel).where({ id: record.organizationId, mainId: compositeRole.organizationId }).limit(1)\n\t\t\t\t)\n\t\t\t\tif (!organization) {\n\t\t\t\t\tthrow new ServerError('请选择关联组织');\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tconst roleModel = await getModel('role')\n\t\t\tif (roleModel?.fields.open) {\n\t\t\t\tconst [role] = await useDatabase(roleModel.databaseId).call(\n\t\t\t\t\tnew Query(roleModel).where({ id: record.organizationId, open: true }).limit(1)\n\t\t\t\t)\n\t\t\t\tif (!role) {\n\t\t\t\t\tthrow new ServerError('请选择有效角色');\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\t}\n});\n","import { actions, createField, createModel, now, Query, uuid, Where} from '@yongdall/model';\nimport { database } from '../constants.mts';\nimport { CompositeRole } from './CompositeRole.mts';\nimport { ServerError } from '@yongdall/core';\n\n/**\n * 组织用户角色模型\n * @typedef {Object} OrganizationUserRole\n * @property {string} userId - 用户ID,主键第一部分\n * @property {string} organizationId - 组织ID,主键第二部分\n * @property {string} roleId - 角色ID,主键第三部分\n * @property {number} no - 编号\n */\nexport const OrganizationUserCompositeRole = createModel('organizationUserCompositeRole', {\n\tuserId: createField('uuid', { nullable: false, index: true, label: '用户', model: 'user', renderer: 'document', immutable: true, primary: 1 }),\n\torganizationId: createField('uuid', { nullable: false, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true }),\n\tcompositeRoleId: createField('uuid', { nullable: false, index: true, label: '角色', model: 'compositeRole', renderer: 'document', immutable: true, primary: 2 }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\tupdatedAt: createField('date', { nullable: false, default: now, updating: now, label: '最后更新日期' }),\n},{\n\tdatabase,\n\tlabel: '用户复合角色',\n\n\tpermissions: [\n\t\t{ permission: 'system:compositeRole', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'destroy'] },\n\t\t{ permission: 'system:compositeRole', organizationField: 'organizationId', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy'] },\n\t],\n\thooks: {\n\t\tasync afterCreate(conn, model, record) {\n\t\t\tconst [compositeRole] = await conn.call(\n\t\t\t\tnew Query(CompositeRole).where({ id: record.compositeRoleId }).limit(1)\n\t\t\t)\n\t\t\tif (!compositeRole) {\n\t\t\t\tthrow new ServerError('复合角色不存在')\n\t\t\t}\n\t\t\tif ((compositeRole.organizationId || null) === (record.organizationId || null)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthrow new ServerError('复合角色与组织不匹配');\n\t\t},\n\t}\n});\n","import { Action, actions, createField, createModel, now, Query, uuid, Where } from '@yongdall/model';\nimport { database } from '../constants.mts';\nimport { getModel, ServerError } from '@yongdall/core';\nimport { useDatabase } from '@yongdall/connection';\nimport { OrganizationCompositeRole } from './OrganizationCompositeRole.mts';\nimport { OrganizationUserCompositeRole } from './OrganizationUserCompositeRole.mts';\n\n\nexport const CompositeRole = createModel('compositeRole', {\n\tid: createField('uuid', { nullable: false, default: uuid, primary: 1, uncreatable: true, layout: { hidden: true } }),\n\tlabel: createField('string', { size: 255, nullable: false, default: '', label: '名称', layout: { colSpan: 6 } }),\n\torganizationId: createField('uuid', { nullable: true, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true, source: { search: 'internal=0' } }),\n\tdescription: createField('text', { nullable: true, label: '描述' }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\tupdatedAt: createField('date', { nullable: false, default: now, updating: now, label: '最后更新日期' }),\n}, {\n\tdatabase,\n\tlabelField: 'label',\n\tlabel: '复合角色',\n\n\tpermissions: [\n\t\t{ permission: 'system:compositeRole', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy', 'add', 'remove'] },\n\t\t{ permission: 'system:compositeRole', organizationField: 'organizationId', fields: ['*'], authorizations: ['options', 'query', 'read', 'create', 'update', 'destroy', 'add', 'remove'] },\n\t],\n\thooks: {\n\t\tasync afterCreate(conn, model, { organizationId }) {\n\t\t\tif (!organizationId) { return; }\n\t\t\tconst organizationModel = await getModel('organization')\n\t\t\tif (!organizationModel) { return; }\n\t\t\tconst [organization] = await useDatabase(organizationModel.databaseId).call(\n\t\t\t\tnew Query(organizationModel).where({ id: organizationId, internal: false }).limit(1)\n\t\t\t)\n\t\t\tif (organization) { return; }\n\t\t\tthrow new ServerError('请选择外部组织');\n\t\t},\n\t\tasync afterDelete(conn, model, record, update) {\n\t\t\tconst list = [\n\t\t\t\tconn.call(Action.delete(OrganizationUserCompositeRole, Where.and({ compositeRoleId: record.id })))\n\t\t\t]\n\n\t\t\tif (!update) {\n\t\t\t\tlist.push(\n\t\t\t\t\tconn.call(Action.delete(OrganizationCompositeRole, Where.and({ compositeRoleId: record.id })))\n\t\t\t\t)\n\t\t\t}\n\t\t\tawait Promise.all(list)\n\t\t},\n\t}\n});\n","import { createField, createModel, now, uuid } from '@yongdall/model';\nimport { database } from '../constants.mts';\n\n\n\n// export const OrganizationAppointmentRole = createModel('organizationAppointmentRole', {\n// \tappointmentId: createField('uuid', { nullable: false, index: true, label: '职务', model: 'appointment', renderer: 'document', immutable: true, primary: 1 }),\n// \troleId: createField('uuid', { nullable: false, index: true, label: '角色', model: 'role', renderer: 'document', immutable: true, primary: 2 }),\n// \tno: createField('i32', { nullable: false, default: 0 }),\n// });\n\nexport const OrganizationAppointment = createModel('organizationAppointment', {\n\tid: createField('uuid', { nullable: false, primary: 1, default: uuid, uncreatable: true, immutable: true }),\n\n\tlabel: createField('string', { nullable: false, label: '职务名称' }),\n\tdescription: createField('string', { nullable: true, label: '描述' }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\tupdatedAt: createField('date', { nullable: false, default: now, updating: now, label: '最后更新日期' }),\n\n\t// roles: createField(OrganizationAppointmentRole, { \n\t// \tarray: true, \n\t// \tconstraints: { appointmentId: { field: 'id' }, no: { noField: true } }, \n\t// \tlabel: '角色列表' \n\t// }),\n}, {\n\tdatabase,\n\n\tpermissions: [\n\t\t{ permission: 'system:organization', fields: '*', authorizations: ['query', 'read', 'create', 'update', 'destroy', 'add', 'remove'] },\n\t],\n});\n","import { actions, createField, createModel, now, uuid, Where} from '@yongdall/model';\nimport { database } from '../constants.mts';\n\n\nexport const OrganizationMember = createModel('organizationMember', {\n\tid: createField('uuid', { nullable: false, index: true, primary: 1, default: uuid, uncreatable: true, immutable: true }),\n\n\tuserId: createField('uuid', { nullable: false, index: true, label: '用户', model: 'user', renderer: 'document', immutable: true, layout: { rowSpan: 6 } }),\n\torganizationId: createField('uuid', { nullable: false, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true, layout: { rowSpan: 6 } }),\n\tappointmentId: createField('uuid', { nullable: true, index: true, label: '职务', model: 'appointment', renderer: 'document', layout: { rowSpan: 6 } }),\n\n\tdefault: createField('bool', { nullable: false, default: false, label: '默认职务' }),\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\tupdatedAt: createField('date', { nullable: false, default: now, updating: now, label: '最后更新日期' }),\n\n}, {\n\tdatabase,\n\tindexes: [\n\t\t{ fields: ['userId', 'organizationId', 'appointmentId'], unique: true }\n\t],\n\tpermissions: [\n\t\t{ permission: 'system:user', fields: '*', authorizations: ['query', 'read', 'create', 'update', 'destroy', 'add', 'remove'] },\n\t],\n\thooks: {\n\t\tasync afterCreate(conn, Model, record) {\n\t\t\tif (!record.default) { return }\n\t\t\tawait conn.call(actions.update(\n\t\t\t\tModel,\n\t\t\t\t{ default: false },\n\t\t\t\tWhere.and('organizationId', '=', record.organizationId, true)\n\t\t\t\t\t.and('userId', record.userId),\n\t\t\t));\n\t\t},\n\n\t\tasync afterUpdate(conn, Model, record, oldRecord) {\n\t\t\tif (!record.default) { return }\n\t\t\tif (oldRecord.default) { return }\n\t\t\tawait conn.call(actions.update(\n\t\t\t\tModel,\n\t\t\t\t{ default: false },\n\t\t\t\tWhere.and('organizationId', '=', record.organizationId, true)\n\t\t\t\t\t.and('userId', record.userId),\n\t\t\t));\n\t\t},\n\t}\n});\n","import { actions, createField, createModel, now, uuid, Where} from '@yongdall/model';\nimport { database } from '../constants.mts';\n\nexport const OrganizationUserRole = createModel('organizationUserRole', {\n\tuserId: createField('uuid', { nullable: false, index: true, label: '用户', model: 'user', renderer: 'document', immutable: true, primary: 1 }),\n\torganizationId: createField('uuid', { nullable: false, index: true, label: '组织', model: 'organization', renderer: 'document', immutable: true, primary: 2 }),\n\troleId: createField('uuid', { nullable: false, index: true, label: '角色', model: 'role', renderer: 'document', immutable: true, primary: 3 }),\n\n\n\tcreatedAt: createField('date', { nullable: false, default: now, creating: now, label: '创建日期' }),\n\n},{\n\tdatabase,\n\tpermissions: [\n\t\t{ permission: 'system:user', fields: '*', authorizations: ['query', 'read', 'create', 'destroy'] },\n\t],\n});\n","import { createKeyStore } from '@yongdall/context';\nimport { Query } from '@yongdall/model';\nimport { getUser } from '@yongdall/core';\nimport { useDatabase } from '@yongdall/connection';\nimport { findRolePermissions } from '@yongdall/role-permission';\nimport { OrganizationCompositeRole, OrganizationMember, OrganizationUserCompositeRole, OrganizationUserRole } from './models/index.mts';\n\nexport * from './models/index.mts';\n\n\n/** 所在组织 */\nexport const getOrganizations = createKeyStore(async (userId: string | null) => {\n\tif (!userId) { return new Set(); }\n\tconst relations: { organizationId: string }[] = await useDatabase(OrganizationMember.databaseId).call(\n\t\tnew Query(OrganizationMember).select(['organizationId']).where('userId', userId)\n\t);\n\treturn new Set(relations.map(v => v.organizationId));\n}, user => user || '');\n\n\n/** 角色 */\nexport const getOrganizationRoleIds = createKeyStore(async (userId: string | null) => {\n\tconst compositeRoleIds = new Query(OrganizationUserCompositeRole).select('compositeRoleId').where('userId', '=', userId)\n\tconst list: { organizationId: number; roleId: string; }[][] = await Promise.all([\n\t\tuseDatabase(OrganizationUserRole.databaseId).call(\n\t\t\tnew Query(OrganizationUserRole).select(['organizationId', 'roleId'])\n\t\t\t\t.where('userId', userId)\n\t\t),\n\t\tuseDatabase(OrganizationCompositeRole.databaseId).call(\n\t\t\tnew Query(OrganizationCompositeRole).select(['organizationId', 'roleId'])\n\t\t\t\t.where('compositeRoleId', 'in', compositeRoleIds)\n\t\t)\n\t]);\n\n\treturn Object.fromEntries((Object.entries(Object.groupBy(list.flat(), v => v.organizationId))\n\t\t.map(([organizationId, list]) => [organizationId, new Set(list?.map(v => v.roleId))])))\n}, user => user || '');\n\n\nexport const getOrganizationPermissions = createKeyStore(async (userId: string | null) => {\n\tconst roleIds = await getOrganizationRoleIds(userId)\n\tconst allRoleIds = [...new Set(Object.values(roleIds).flatMap(v => [...v]))];\n\tconst permissions: Record<string, Set<string>> = Object.create(null);\n\tif (!allRoleIds.length) { return permissions; }\n\tconst values = await findRolePermissions(allRoleIds);\n\tconst list = Object.fromEntries(Object.entries(Object.groupBy(values, l => l.roleId)).map(([k, v]) => [k, v?.map(v => v.permission)]));\n\tfor (const [organization, roleSet] of Object.entries(roleIds)) {\n\t\tconst s = new Set([...roleSet].flatMap(v => list[v] || []));\n\t\tif (!s.size) { continue; }\n\t\tpermissions[organization] = s;\n\t}\n\treturn permissions;\n}, user => user || '');\n\n\n\nexport const getOrganizationAllPermissions = createKeyStore(async (userId: string | null) => {\n\tconst v = await getOrganizationPermissions(userId)\n\treturn new Set(Object.values(v).flatMap(v => [...v]));\n}, user => user || '');\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yongdall/organization-rbac",
3
- "version": "0.6.6",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "main": "./index.mjs",
6
6
  "exports": {
@@ -11,15 +11,15 @@
11
11
  "author": "",
12
12
  "license": "ISC",
13
13
  "dependencies": {
14
- "@yongdall/connection": "^0.6.6",
15
- "@yongdall/context": "^0.6.6",
16
- "@yongdall/core": "^0.6.6",
17
- "@yongdall/model": "^0.6.6",
18
- "@yongdall/plugin-meta": "^0.6.6",
19
- "@yongdall/role-permission": "^0.6.6"
14
+ "@yongdall/connection": "^0.7.0",
15
+ "@yongdall/context": "^0.7.0",
16
+ "@yongdall/core": "^0.7.0",
17
+ "@yongdall/model": "^0.7.0",
18
+ "@yongdall/plugin-meta": "^0.7.0",
19
+ "@yongdall/role-permission": "^0.7.0"
20
20
  },
21
21
  "devDependencies": {
22
- "@yongdall/migrate": "^0.6.6",
23
- "@yongdall/types": "^0.6.6"
22
+ "@yongdall/migrate": "^0.7.0",
23
+ "@yongdall/types": "^0.7.0"
24
24
  }
25
25
  }
@@ -1,16 +1,14 @@
1
- import { d as OrganizationAppointment, f as CompositeRole, m as OrganizationCompositeRole, p as OrganizationUserCompositeRole, u as OrganizationMember } from "../organization-rbac-CVRP1FKi.mjs";
2
-
1
+ import { a as OrganizationUserRole, c as CompositeRole, l as OrganizationUserCompositeRole, o as OrganizationMember, s as OrganizationAppointment, u as OrganizationCompositeRole } from "../organization-rbac--hDZMB8h.mjs";
3
2
  //#region plugins/organization-rbac/yongdall/migration.mts
4
- /** @import { Profile } from '@yongdall/migrate' */
5
- /** @type {Profile['models']} */
6
3
  const models = [
7
4
  OrganizationAppointment,
8
5
  OrganizationMember,
6
+ OrganizationUserRole,
9
7
  CompositeRole,
10
8
  OrganizationCompositeRole,
11
9
  OrganizationUserCompositeRole
12
10
  ];
13
-
14
11
  //#endregion
15
12
  export { models };
13
+
16
14
  //# sourceMappingURL=migration.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration.mjs","names":[],"sources":["../../../plugins/organization-rbac/yongdall/migration.mts"],"sourcesContent":["/** @import { Profile } from '@yongdall/migrate' */\nimport { CompositeRole, OrganizationAppointment, OrganizationCompositeRole, OrganizationMember, OrganizationUserCompositeRole } from '../index.mts';\n\n\n/** @type {Profile['models']} */\nexport const models = [\n\tOrganizationAppointment,\n\tOrganizationMember,\n\tCompositeRole,\n\tOrganizationCompositeRole,\n\tOrganizationUserCompositeRole,\n];\n"],"mappings":";;;;;AAKA,MAAa,SAAS;CACrB;CACA;CACA;CACA;CACA;CACA"}
1
+ {"version":3,"file":"migration.mjs","names":[],"sources":["../../../plugins/organization-rbac/yongdall/migration.mts"],"sourcesContent":["import type { Profile } from '@yongdall/migrate';\nimport {\n\tCompositeRole,\n\tOrganizationAppointment,\n\tOrganizationCompositeRole,\n\tOrganizationMember,\n\tOrganizationUserCompositeRole,\n\tOrganizationUserRole,\n} from '../index.mts';\n\n\nexport const models: Profile['models'] = [\n\tOrganizationAppointment,\n\tOrganizationMember,\n\tOrganizationUserRole,\n\tCompositeRole,\n\tOrganizationCompositeRole,\n\tOrganizationUserCompositeRole,\n];\n"],"mappings":";;AAWA,MAAa,SAA4B;CACxC;CACA;CACA;CACA;CACA;CACA;AACD"}
@@ -1,16 +1,14 @@
1
- import { d as OrganizationAppointment, f as CompositeRole, m as OrganizationCompositeRole, p as OrganizationUserCompositeRole, u as OrganizationMember } from "../organization-rbac-CVRP1FKi.mjs";
2
-
1
+ import { a as OrganizationUserRole, c as CompositeRole, l as OrganizationUserCompositeRole, o as OrganizationMember, s as OrganizationAppointment, u as OrganizationCompositeRole } from "../organization-rbac--hDZMB8h.mjs";
3
2
  //#region plugins/organization-rbac/yongdall/model.mts
4
- /** @import { ModelProfile } from '@yongdall/core' */
5
- /** @type {ModelProfile['models']} */
6
3
  const models = {
7
4
  organizationAppointment: OrganizationAppointment,
8
5
  organizationMember: OrganizationMember,
6
+ organizationUserRole: OrganizationUserRole,
9
7
  compositeRole: CompositeRole,
10
8
  organizationCompositeRole: OrganizationCompositeRole,
11
9
  organizationUserCompositeRole: OrganizationUserCompositeRole
12
10
  };
13
-
14
11
  //#endregion
15
12
  export { models };
13
+
16
14
  //# sourceMappingURL=model.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.mjs","names":[],"sources":["../../../plugins/organization-rbac/yongdall/model.mts"],"sourcesContent":["/** @import { ModelProfile } from '@yongdall/core' */\nimport { CompositeRole, OrganizationAppointment, OrganizationCompositeRole, OrganizationMember, OrganizationUserCompositeRole } from '../index.mts';\n\n/** @type {ModelProfile['models']} */\nexport const models = {\n\torganizationAppointment: OrganizationAppointment,\n\torganizationMember: OrganizationMember,\n\t\tcompositeRole: CompositeRole,\n\t\torganizationCompositeRole: OrganizationCompositeRole,\n\t\torganizationUserCompositeRole: OrganizationUserCompositeRole,\n};\n"],"mappings":";;;;;AAIA,MAAa,SAAS;CACrB,yBAAyB;CACzB,oBAAoB;CACnB,eAAe;CACf,2BAA2B;CAC3B,+BAA+B;CAChC"}
1
+ {"version":3,"file":"model.mjs","names":[],"sources":["../../../plugins/organization-rbac/yongdall/model.mts"],"sourcesContent":["import type { ModelProfile } from '@yongdall/core';\nimport {\n\tCompositeRole,\n\tOrganizationAppointment,\n\tOrganizationCompositeRole,\n\tOrganizationMember,\n\tOrganizationUserCompositeRole,\n\tOrganizationUserRole,\n} from '../index.mts';\n\nexport const models: ModelProfile['models'] = {\n\torganizationAppointment: OrganizationAppointment,\n\torganizationMember: OrganizationMember,\n\torganizationUserRole: OrganizationUserRole,\n\tcompositeRole: CompositeRole,\n\torganizationCompositeRole: OrganizationCompositeRole,\n\torganizationUserCompositeRole: OrganizationUserCompositeRole,\n};\n"],"mappings":";;AAUA,MAAa,SAAiC;CAC7C,yBAAyB;CACzB,oBAAoB;CACpB,sBAAsB;CACtB,eAAe;CACf,2BAA2B;CAC3B,+BAA+B;AAChC"}
package/yongdall/user.mjs CHANGED
@@ -1,3 +1,2 @@
1
- import { n as getOrganizationPermissions, t as getOrganizationAllPermissions } from "../organization-rbac-CVRP1FKi.mjs";
2
-
3
- export { getOrganizationAllPermissions, getOrganizationPermissions };
1
+ import { n as getOrganizationPermissions, t as getOrganizationAllPermissions } from "../organization-rbac--hDZMB8h.mjs";
2
+ export { getOrganizationAllPermissions, getOrganizationPermissions };