@things-factory/lite-menu 6.2.24 → 6.2.26

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.
@@ -93,7 +93,7 @@ export async function fetchAddonMenus() {
93
93
  await client.query({
94
94
  query: gql`
95
95
  query ($filters: [Filter!], $inherited: InheritedValueType) {
96
- liteMenus: liteMenus(filters: $filters, inherited: $inherited) {
96
+ liteMenus: myLiteMenus(filters: $filters, inherited: $inherited) {
97
97
  items {
98
98
  id
99
99
  name
@@ -144,6 +144,7 @@ class AddonMenuSetting extends connect(store)(localize(i18next)(PageView)) {
144
144
  parent: record.parent,
145
145
  rank: record.rank,
146
146
  active: record.active,
147
+ privilege: record.privilege,
147
148
  type: record.type,
148
149
  value: record.value,
149
150
  icon: record.icon
@@ -182,6 +183,7 @@ class AddonMenuSetting extends connect(store)(localize(i18next)(PageView)) {
182
183
  parent: record.parent,
183
184
  rank: record.rank,
184
185
  active: record.active,
186
+ privilege: record.privilege,
185
187
  type: record.type,
186
188
  value: record.value,
187
189
  icon: record.icon
@@ -384,6 +386,17 @@ class AddonMenuSetting extends connect(store)(localize(i18next)(PageView)) {
384
386
  sortable: true,
385
387
  width: 60
386
388
  },
389
+ {
390
+ type: 'privilege',
391
+ name: 'privilege',
392
+ label: true,
393
+ header: i18next.t('field.required privilege'),
394
+ record: {
395
+ editable: true
396
+ },
397
+ sortable: true,
398
+ width: 200
399
+ },
387
400
  {
388
401
  type: 'datetime',
389
402
  name: 'updatedAt',
@@ -459,6 +472,12 @@ class AddonMenuSetting extends connect(store)(localize(i18next)(PageView)) {
459
472
  }
460
473
  icon
461
474
  active
475
+ privilege {
476
+ category
477
+ privilege
478
+ owner
479
+ super
480
+ }
462
481
  createdAt
463
482
  updatedAt
464
483
  creator {
@@ -65,7 +65,6 @@ export const LiteMenuPortraitStyles = css`
65
65
  }
66
66
  li[active] > a {
67
67
  border-left: 3px solid var(--primary-color);
68
- padding-left: calc(var(--padding-wide) - 3px);
69
68
  font-weight: bold;
70
69
  color: var(--primary-color);
71
70
  }
@@ -4,11 +4,20 @@ exports.LiteMenuQuery = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const typeorm_1 = require("typeorm");
6
6
  const type_graphql_1 = require("type-graphql");
7
+ const shell_1 = require("@things-factory/shell");
7
8
  const auth_base_1 = require("@things-factory/auth-base");
8
9
  const board_service_1 = require("@things-factory/board-service");
9
- const shell_1 = require("@things-factory/shell");
10
10
  const lite_menu_1 = require("./lite-menu");
11
11
  const lite_menu_type_1 = require("./lite-menu-type");
12
+ async function checkPermission(privilegeObject, user, domain) {
13
+ if (!privilegeObject || !privilegeObject.privilege || !privilegeObject.category) {
14
+ return true;
15
+ }
16
+ const { owner: domainOwnerGranted, super: superUserGranted, category, privilege } = privilegeObject;
17
+ return ((domainOwnerGranted && (await process.domainOwnerGranted(domain, user))) ||
18
+ (superUserGranted && (await process.superUserGranted(domain, user))) ||
19
+ (category && privilege && (await auth_base_1.User.hasPrivilege(privilege, category, domain, user))));
20
+ }
12
21
  let LiteMenuQuery = class LiteMenuQuery {
13
22
  async liteMenu(id, context) {
14
23
  const { domain } = context.state;
@@ -30,6 +39,23 @@ let LiteMenuQuery = class LiteMenuQuery {
30
39
  var [items, total] = await queryBuilder.getManyAndCount();
31
40
  return { items, total };
32
41
  }
42
+ async myLiteMenus(params, context) {
43
+ const { domain, user } = context.state;
44
+ const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
45
+ repository: (0, shell_1.getRepository)(lite_menu_1.LiteMenu),
46
+ params,
47
+ domain,
48
+ searchables: ['name', 'description']
49
+ });
50
+ var [items, total] = await queryBuilder.getManyAndCount();
51
+ const filtered = [];
52
+ for (let item of items) {
53
+ if (await checkPermission(item.privilege, user, domain)) {
54
+ filtered.push(item);
55
+ }
56
+ }
57
+ return { items: filtered, total: filtered.length };
58
+ }
33
59
  async board(liteMenu) {
34
60
  if ((liteMenu.type === 'board' || liteMenu.type === 'interactive-board') && liteMenu.value) {
35
61
  return await (0, shell_1.getRepository)(board_service_1.Board).findOneBy({ id: liteMenu.value });
@@ -61,6 +87,14 @@ tslib_1.__decorate([
61
87
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
62
88
  tslib_1.__metadata("design:returntype", Promise)
63
89
  ], LiteMenuQuery.prototype, "liteMenus", null);
90
+ tslib_1.__decorate([
91
+ (0, type_graphql_1.Query)(returns => lite_menu_type_1.LiteMenuList, { description: 'To fetch my own LiteMenus' }),
92
+ tslib_1.__param(0, (0, type_graphql_1.Args)()),
93
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
94
+ tslib_1.__metadata("design:type", Function),
95
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
96
+ tslib_1.__metadata("design:returntype", Promise)
97
+ ], LiteMenuQuery.prototype, "myLiteMenus", null);
64
98
  tslib_1.__decorate([
65
99
  (0, type_graphql_1.FieldResolver)(type => board_service_1.Board),
66
100
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"lite-menu-query.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { LiteMenu } from './lite-menu'\nimport { LiteMenuList } from './lite-menu-type'\n\n@Resolver(LiteMenu)\nexport class LiteMenuQuery {\n @Query(returns => LiteMenu, { description: 'To fetch a LiteMenu' })\n async liteMenu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<LiteMenu> {\n const { domain } = context.state\n const repository = getRepository(LiteMenu)\n\n var liteMenu: any = repository.findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id },\n relations: ['domain', 'creator', 'updater']\n })\n\n return liteMenu\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch multiple LiteMenus' })\n async liteMenus(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<LiteMenuList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n searchables: ['name', 'description']\n })\n var [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Board)\n async board(@Root() liteMenu: LiteMenu) {\n if ((liteMenu.type === 'board' || liteMenu.type === 'interactive-board') && liteMenu.value) {\n return await getRepository(Board).findOneBy({ id: liteMenu.value })\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() liteMenu: LiteMenu) {\n return await getRepository(Domain).findOneBy({ id: liteMenu.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() liteMenu: LiteMenu): Promise<User> {\n return await getRepository(User).findOneBy({ id: liteMenu.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() liteMenu: LiteMenu): Promise<User> {\n return await getRepository(User).findOneBy({ id: liteMenu.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"lite-menu-query.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { In } from 'typeorm'\nimport { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { PrivilegeObject, User } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\n\nimport { LiteMenu } from './lite-menu'\nimport { LiteMenuList } from './lite-menu-type'\n\nasync function checkPermission(privilegeObject: PrivilegeObject, user: User, domain: Domain): Promise<boolean> {\n if (!privilegeObject || !privilegeObject.privilege || !privilegeObject.category) {\n return true\n }\n\n const { owner: domainOwnerGranted, super: superUserGranted, category, privilege } = privilegeObject\n\n return (\n (domainOwnerGranted && (await process.domainOwnerGranted(domain, user))) ||\n (superUserGranted && (await process.superUserGranted(domain, user))) ||\n (category && privilege && (await User.hasPrivilege(privilege, category, domain, user)))\n )\n}\n\n@Resolver(LiteMenu)\nexport class LiteMenuQuery {\n @Query(returns => LiteMenu, { description: 'To fetch a LiteMenu' })\n async liteMenu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<LiteMenu> {\n const { domain } = context.state\n const repository = getRepository(LiteMenu)\n\n var liteMenu: any = repository.findOne({\n where: { domain: { id: In([domain.id, domain.parentId].filter(Boolean)) }, id },\n relations: ['domain', 'creator', 'updater']\n })\n\n return liteMenu\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch multiple LiteMenus' })\n async liteMenus(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<LiteMenuList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n searchables: ['name', 'description']\n })\n var [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => LiteMenuList, { description: 'To fetch my own LiteMenus' })\n async myLiteMenus(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<LiteMenuList> {\n const { domain, user } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n repository: getRepository(LiteMenu),\n params,\n domain,\n searchables: ['name', 'description']\n })\n var [items, total] = await queryBuilder.getManyAndCount()\n\n const filtered = []\n\n for (let item of items) {\n if (await checkPermission(item.privilege, user, domain)) {\n filtered.push(item)\n }\n }\n\n return { items: filtered, total: filtered.length }\n }\n\n @FieldResolver(type => Board)\n async board(@Root() liteMenu: LiteMenu) {\n if ((liteMenu.type === 'board' || liteMenu.type === 'interactive-board') && liteMenu.value) {\n return await getRepository(Board).findOneBy({ id: liteMenu.value })\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() liteMenu: LiteMenu) {\n return await getRepository(Domain).findOneBy({ id: liteMenu.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() liteMenu: LiteMenu): Promise<User> {\n return await getRepository(User).findOneBy({ id: liteMenu.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() liteMenu: LiteMenu): Promise<User> {\n return await getRepository(User).findOneBy({ id: liteMenu.creatorId })\n }\n}\n"]}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LiteMenuList = exports.LiteMenuPatch = exports.NewLiteMenu = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
+ const auth_base_1 = require("@things-factory/auth-base");
6
7
  const lite_menu_1 = require("./lite-menu");
7
8
  let NewLiteMenu = class NewLiteMenu {
8
9
  };
@@ -42,6 +43,10 @@ tslib_1.__decorate([
42
43
  (0, type_graphql_1.Field)({ nullable: true }),
43
44
  tslib_1.__metadata("design:type", Boolean)
44
45
  ], NewLiteMenu.prototype, "active", void 0);
46
+ tslib_1.__decorate([
47
+ (0, type_graphql_1.Field)({ nullable: true }),
48
+ tslib_1.__metadata("design:type", auth_base_1.PrivilegeInput)
49
+ ], NewLiteMenu.prototype, "privilege", void 0);
45
50
  NewLiteMenu = tslib_1.__decorate([
46
51
  (0, type_graphql_1.InputType)()
47
52
  ], NewLiteMenu);
@@ -84,6 +89,10 @@ tslib_1.__decorate([
84
89
  (0, type_graphql_1.Field)({ nullable: true }),
85
90
  tslib_1.__metadata("design:type", Boolean)
86
91
  ], LiteMenuPatch.prototype, "active", void 0);
92
+ tslib_1.__decorate([
93
+ (0, type_graphql_1.Field)({ nullable: true }),
94
+ tslib_1.__metadata("design:type", auth_base_1.PrivilegeInput)
95
+ ], LiteMenuPatch.prototype, "privilege", void 0);
87
96
  LiteMenuPatch = tslib_1.__decorate([
88
97
  (0, type_graphql_1.InputType)()
89
98
  ], LiteMenuPatch);
@@ -1 +1 @@
1
- {"version":3,"file":"lite-menu-type.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAEhE,2CAAsC;AAG/B,IAAM,WAAW,GAAjB,MAAM,WAAW;CA2BvB,CAAA;AA1BC;IAAC,IAAA,oBAAK,GAAE;;yCACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACX;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC1B;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACV;AA1BL,WAAW;IADvB,IAAA,wBAAS,GAAE;GACC,WAAW,CA2BvB;AA3BY,kCAAW;AA8BjB,IAAM,aAAa,GAAnB,MAAM,aAAa;CA2BzB,CAAA;AA1BC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACd;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACX;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CAC1B;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACV;AA1BL,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CA2BzB;AA3BY,sCAAa;AA8BnB,IAAM,YAAY,GAAlB,MAAM,YAAY;CAMxB,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAQ,CAAC,CAAC;;2CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;2CACN;AALF,YAAY;IADxB,IAAA,yBAAU,GAAE;GACA,YAAY,CAMxB;AANY,oCAAY","sourcesContent":["import { Field, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { LiteMenu } from './lite-menu'\n\n@InputType()\nexport class NewLiteMenu {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n appName?: string\n\n @Field({ nullable: true })\n parent?: string\n\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n value?: string\n\n @Field({ nullable: true })\n active?: boolean\n}\n\n@InputType()\nexport class LiteMenuPatch {\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n appName?: string\n\n @Field({ nullable: true })\n parent?: string\n\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n value?: string\n\n @Field({ nullable: true })\n active?: boolean\n}\n\n@ObjectType()\nexport class LiteMenuList {\n @Field(type => [LiteMenu])\n items: LiteMenu[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"lite-menu-type.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAgE;AAChE,yDAA0D;AAE1D,2CAAsC;AAG/B,IAAM,WAAW,GAAjB,MAAM,WAAW;CA8BvB,CAAA;AA7BC;IAAC,IAAA,oBAAK,GAAE;;yCACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACX;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC1B;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,0BAAc;8CAAA;AA7Bf,WAAW;IADvB,IAAA,wBAAS,GAAE;GACC,WAAW,CA8BvB;AA9BY,kCAAW;AAiCjB,IAAM,aAAa,GAAnB,MAAM,aAAa;CA8BzB,CAAA;AA7BC;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACd;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACX;AAEf;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CAC1B;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACZ;AAEd;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,0BAAc;gDAAA;AA7Bf,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CA8BzB;AA9BY,sCAAa;AAiCnB,IAAM,YAAY,GAAlB,MAAM,YAAY;CAMxB,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAQ,CAAC,CAAC;;2CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;2CACN;AALF,YAAY;IADxB,IAAA,yBAAU,GAAE;GACA,YAAY,CAMxB;AANY,oCAAY","sourcesContent":["import { Field, InputType, Int, ObjectType } from 'type-graphql'\nimport { PrivilegeInput } from '@things-factory/auth-base'\n\nimport { LiteMenu } from './lite-menu'\n\n@InputType()\nexport class NewLiteMenu {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n appName?: string\n\n @Field({ nullable: true })\n parent?: string\n\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n value?: string\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field({ nullable: true })\n privilege?: PrivilegeInput\n}\n\n@InputType()\nexport class LiteMenuPatch {\n @Field({ nullable: true })\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n appName?: string\n\n @Field({ nullable: true })\n parent?: string\n\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n value?: string\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field({ nullable: true })\n privilege?: PrivilegeInput\n}\n\n@ObjectType()\nexport class LiteMenuList {\n @Field(type => [LiteMenu])\n items: LiteMenu[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -91,6 +91,11 @@ tslib_1.__decorate([
91
91
  (0, type_graphql_1.Field)(type => board_service_1.Board, { nullable: true }),
92
92
  tslib_1.__metadata("design:type", typeof (_a = typeof board_service_1.Board !== "undefined" && board_service_1.Board) === "function" ? _a : Object)
93
93
  ], LiteMenu.prototype, "board", void 0);
94
+ tslib_1.__decorate([
95
+ (0, typeorm_1.Column)({ type: 'simple-json', nullable: true }),
96
+ (0, type_graphql_1.Field)(type => auth_base_1.PrivilegeObject, { nullable: true }),
97
+ tslib_1.__metadata("design:type", auth_base_1.PrivilegeObject)
98
+ ], LiteMenu.prototype, "privilege", void 0);
94
99
  tslib_1.__decorate([
95
100
  (0, typeorm_1.CreateDateColumn)(),
96
101
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"lite-menu.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, Int, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\nimport { Domain } from '@things-factory/shell'\n\n@Entity()\n@Index('ix_lite_menus_0', (liteMenu: LiteMenu) => [liteMenu.domain, liteMenu.name, liteMenu.appName], { unique: true })\n@Index('ix_lite_menus_1', (liteMenu: LiteMenu) => [liteMenu.domain, liteMenu.appName, liteMenu.parent, liteMenu.rank], {\n unique: true\n})\n@ObjectType({ description: 'Entity for LiteMenu' })\nexport class LiteMenu {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.domain)\n domainId?: string\n\n @Column()\n @Field()\n name: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n description?: string\n\n @Column({\n nullable: true,\n default: ''\n })\n @Field({ nullable: true })\n appName?: string\n\n @Column({\n nullable: true,\n default: ''\n })\n @Field({ nullable: true })\n parent?: string\n\n @Column({\n nullable: true\n })\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n type?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n value?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n icon?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => Board, { nullable: true })\n board?: Board\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field({ nullable: true })\n creator?: User\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.creator)\n creatorId?: string\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field({ nullable: true })\n updater?: User\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"lite-menu.js","sourceRoot":"","sources":["../../../server/service/lite-menu/lite-menu.ts"],"names":[],"mappings":";;;;;AAAA,+CAAyD;AACzD,qCASgB;AAEhB,yDAAiE;AACjE,iEAAqD;AACrD,iDAA8C;AAQvC,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAkGpB,CAAA;AAjGC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;oCACC;AAEnB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,cAAM;wCAAA;AAEf;IAAC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;;0CACnC;AAEjB;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;sCACI;AAEZ;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACN;AAEpB;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACV;AAEhB;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACX;AAEf;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC1B;AAEb;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACb;AAEb;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCACZ;AAEd;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACb;AAEb;IAAC,IAAA,gBAAM,EAAC;QACN,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wCACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0DACjC,qBAAK,oBAAL,qBAAK;uCAAA;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,2BAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACvC,2BAAe;2CAAA;AAE3B;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;2CAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;2CAAA;AAEhB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,gBAAI;yCAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;;2CACnC;AAElB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,gBAAI;yCAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;;2CACnC;AAjGP,QAAQ;IANpB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtH,IAAA,eAAK,EAAC,iBAAiB,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;QACrH,MAAM,EAAE,IAAI;KACb,CAAC;IACD,IAAA,yBAAU,EAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;GACtC,QAAQ,CAkGpB;AAlGY,4BAAQ","sourcesContent":["import { Field, ID, Int, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { PrivilegeObject, User } from '@things-factory/auth-base'\nimport { Board } from '@things-factory/board-service'\nimport { Domain } from '@things-factory/shell'\n\n@Entity()\n@Index('ix_lite_menus_0', (liteMenu: LiteMenu) => [liteMenu.domain, liteMenu.name, liteMenu.appName], { unique: true })\n@Index('ix_lite_menus_1', (liteMenu: LiteMenu) => [liteMenu.domain, liteMenu.appName, liteMenu.parent, liteMenu.rank], {\n unique: true\n})\n@ObjectType({ description: 'Entity for LiteMenu' })\nexport class LiteMenu {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.domain)\n domainId?: string\n\n @Column()\n @Field()\n name: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n description?: string\n\n @Column({\n nullable: true,\n default: ''\n })\n @Field({ nullable: true })\n appName?: string\n\n @Column({\n nullable: true,\n default: ''\n })\n @Field({ nullable: true })\n parent?: string\n\n @Column({\n nullable: true\n })\n @Field(type => Int, { nullable: true })\n rank?: number\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n type?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n value?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n icon?: string\n\n @Column({\n nullable: true\n })\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => Board, { nullable: true })\n board?: Board\n\n @Column({ type: 'simple-json', nullable: true })\n @Field(type => PrivilegeObject, { nullable: true })\n privilege?: PrivilegeObject\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field({ nullable: true })\n creator?: User\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.creator)\n creatorId?: string\n\n @ManyToOne(type => User, {\n nullable: true\n })\n @Field({ nullable: true })\n updater?: User\n\n @RelationId((liteMenu: LiteMenu) => liteMenu.updater)\n updaterId?: string\n}\n"]}