@things-factory/menu-base 8.0.0-alpha.8 → 8.0.0-beta.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.
@@ -1,5 +1,5 @@
1
1
  import { Domain, ListParam } from '@things-factory/shell';
2
- import { User } from '@things-factory/auth-base';
2
+ import { Role, User } from '@things-factory/auth-base';
3
3
  import { MenuButton } from '../menu-button/menu-button';
4
4
  import { MenuColumn } from '../menu-column/menu-column';
5
5
  import { Menu } from './menu';
@@ -17,6 +17,7 @@ export declare class MenuQuery {
17
17
  children(menu: Menu, permittedOnly: boolean, context: ResolverContext): Promise<Menu[]>;
18
18
  buttons(menu: Menu): Promise<MenuButton[]>;
19
19
  columns(menu: Menu): Promise<MenuColumn[]>;
20
+ role(menu: Menu): Promise<Role>;
20
21
  domain(menu: Menu): Promise<Domain>;
21
22
  updater(menu: Menu): Promise<User>;
22
23
  creator(menu: Menu): Promise<User>;
@@ -63,21 +63,27 @@ let MenuQuery = class MenuQuery {
63
63
  return { items, total };
64
64
  }
65
65
  async myMenus(params, context) {
66
- const { domain, user, unsafeIP, prohibitedPrivileges } = context.state;
67
- const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
68
- domain,
66
+ const { domain, user } = context.state;
67
+ const me = await (0, shell_1.getRepository)(auth_base_1.User).findOne({
68
+ where: { id: user.id },
69
+ relations: ['roles']
70
+ });
71
+ const roles = me.roles
72
+ .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))
73
+ .map(role => role.id);
74
+ const [items, total] = await (0, shell_1.getQueryBuilderFromListParams)({
75
+ repository: (0, shell_1.getRepository)(menu_1.Menu),
69
76
  params,
70
- repository: await (0, shell_1.getRepository)(menu_1.Menu),
77
+ domain,
78
+ alias: 'menu',
71
79
  searchables: ['name', 'description']
72
- });
73
- const [items, total] = await queryBuilder.getManyAndCount();
74
- const filtered = [];
75
- for (let item of items) {
76
- if (await (0, auth_base_1.checkPermission)(item.privilege, user, domain, unsafeIP, prohibitedPrivileges)) {
77
- filtered.push(item);
78
- }
79
- }
80
- return { items: filtered, total: filtered.length };
80
+ })
81
+ .andWhere(new typeorm_1.Brackets(qb => {
82
+ qb.where('menu.role IN (:...roles)').orWhere('menu.role is null');
83
+ }))
84
+ .setParameter('roles', roles)
85
+ .getManyAndCount();
86
+ return { items, total };
81
87
  }
82
88
  async roleMenus(roleId, context) {
83
89
  const { domain } = context.state;
@@ -131,21 +137,28 @@ let MenuQuery = class MenuQuery {
131
137
  }
132
138
  }
133
139
  async children(menu, permittedOnly, context) {
134
- var menus = menu.children ||
135
- (await (0, shell_1.getRepository)(menu_1.Menu).findBy({
136
- parent: { id: menu.id }
137
- }));
138
140
  if (!permittedOnly) {
139
- return menus;
141
+ return (menu.children ||
142
+ (await (0, shell_1.getRepository)(menu_1.Menu).findBy({
143
+ parent: { id: menu.id }
144
+ })));
140
145
  }
141
- const { domain, user, unsafeIP, prohibitedPrivileges } = context.state;
142
- const filtered = [];
143
- for (let item of menus) {
144
- if (await (0, auth_base_1.checkPermission)(item.privilege, user, domain, unsafeIP, prohibitedPrivileges)) {
145
- filtered.push(item);
146
- }
147
- }
148
- return filtered;
146
+ const { domain, user } = context.state;
147
+ const me = await (0, shell_1.getRepository)(auth_base_1.User).findOne({
148
+ where: { id: user.id },
149
+ relations: ['roles']
150
+ });
151
+ const roles = me.roles
152
+ .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))
153
+ .map(role => role.id);
154
+ return await (0, shell_1.getRepository)(menu_1.Menu)
155
+ .createQueryBuilder('menu')
156
+ .where('menu.parent = :parentId', { parentId: menu.id })
157
+ .andWhere(new typeorm_1.Brackets(qb => {
158
+ qb.where('menu.role IN (:...roles)').orWhere('menu.role is null');
159
+ }))
160
+ .setParameter('roles', roles)
161
+ .getMany();
149
162
  }
150
163
  async buttons(menu) {
151
164
  return await (0, shell_1.getRepository)(menu_button_1.MenuButton).findBy({
@@ -157,6 +170,9 @@ let MenuQuery = class MenuQuery {
157
170
  menu: { id: menu.id }
158
171
  });
159
172
  }
173
+ async role(menu) {
174
+ return menu.roleId && (await (0, shell_1.getRepository)(auth_base_1.Role).findOneBy({ id: menu.roleId }));
175
+ }
160
176
  async domain(menu) {
161
177
  return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: menu.domainId });
162
178
  }
@@ -237,6 +253,13 @@ tslib_1.__decorate([
237
253
  tslib_1.__metadata("design:paramtypes", [menu_1.Menu]),
238
254
  tslib_1.__metadata("design:returntype", Promise)
239
255
  ], MenuQuery.prototype, "columns", null);
256
+ tslib_1.__decorate([
257
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.Role),
258
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
259
+ tslib_1.__metadata("design:type", Function),
260
+ tslib_1.__metadata("design:paramtypes", [menu_1.Menu]),
261
+ tslib_1.__metadata("design:returntype", Promise)
262
+ ], MenuQuery.prototype, "role", null);
240
263
  tslib_1.__decorate([
241
264
  (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
242
265
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"menu-query.js","sourceRoot":"","sources":["../../../server/service/menu/menu-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { In, Repository, SelectQueryBuilder } from 'typeorm'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { checkPermission, Role, User } from '@things-factory/auth-base'\n\nimport { MenuButton } from '../menu-button/menu-button'\nimport { MenuColumn } from '../menu-column/menu-column'\nimport { Menu } from './menu'\nimport { MenuList } from './menu-type'\n\nasync function getNonRestrictedMenus(domain: Domain): Promise<Menu[]> {\n const menus: Menu[] = await getRepository(Menu).find({\n where: { domain: { id: domain.id }, hiddenFlag: false, menuType: 'MENU' },\n relations: ['parent', 'children', 'children.roles'],\n order: { rank: 'ASC' }\n })\n\n menus.forEach(menu => {\n menu.children = menu.children.filter(child => !child.roles?.length)\n })\n\n return menus\n}\n\nasync function getRestrictedMenus(roleIds: string[], domain: Domain): Promise<Menu[]> {\n const menus: Menu[] = await getRepository(Menu).find({\n where: { domain: { id: domain.id }, hiddenFlag: false, menuType: 'MENU' },\n relations: ['parent', 'children', 'children.roles'],\n order: { rank: 'ASC' }\n })\n const userRoles: Role[] = await getRepository(Role).find({ where: { domain: { id: domain.id }, id: In(roleIds) } })\n\n menus.forEach(menu => {\n menu.children = menu.children.filter(child => {\n const childRoleIds = child.roles?.map(role => role.id) || []\n\n return userRoles.find(role => childRoleIds.includes(role.id)) || false\n })\n })\n\n return menus\n}\n\n@Resolver(Menu)\nexport class MenuQuery {\n @Query(returns => Menu, { description: 'To fetch a Menu' })\n async menu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Menu> {\n const { domain } = context.state\n\n return await getRepository(Menu).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['roles']\n })\n }\n\n @Query(returns => Menu, { description: 'To fetch a Menu by routing' })\n async menuByRouting(@Arg('routing') routing: string, context) {\n const { domain } = context.state\n\n return await getRepository(Menu).findOne({\n where: { domain: { id: domain.id }, routing }\n })\n }\n\n @Query(returns => MenuList, { description: 'To fetch multiple Menus' })\n async menus(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<MenuList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Menu),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => MenuList, { description: 'To fetch my own Menus' })\n async myMenus(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<MenuList> {\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Menu),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n const filtered = []\n\n for (let item of items) {\n if (await checkPermission(item.privilege, user, domain, unsafeIP, prohibitedPrivileges)) {\n filtered.push(item)\n }\n }\n\n return { items: filtered, total: filtered.length }\n }\n\n @Query(returns => MenuList, { description: 'To fetch Menus by role' })\n async roleMenus(@Arg('roleId') roleId: string, @Ctx() context: ResolverContext) {\n const { domain } = context.state\n\n const menuRepo: Repository<Menu> = getRepository(Menu)\n const menus: Menu[] = await menuRepo.find({\n where: { domain: { id: domain.id } },\n relations: ['parent', 'roles']\n })\n const role: Role = await getRepository(Role).findOne({ where: { domain: { id: domain.id }, id: roleId } })\n\n let newChildMenus: Menu[] = []\n\n menus.forEach(menu => {\n if (menu.roles) {\n const menuRoleIds = menu.roles.map(role => role.id)\n\n if (menuRoleIds.includes(role.id)) {\n newChildMenus.push(menu)\n }\n }\n })\n\n return { items: newChildMenus, total: newChildMenus.length }\n }\n\n @Query(returns => [Menu], { description: 'To fetch Menus by role' })\n async userMenus(@Ctx() context: ResolverContext): Promise<Menu[]> {\n const { domain, user } = context.state\n\n var menus: Menu[] = []\n\n try {\n const qb: SelectQueryBuilder<User> = getRepository(User).createQueryBuilder('USER')\n const user: User = await qb\n .leftJoinAndSelect('USER.roles', 'ROLES')\n .leftJoinAndSelect('ROLES.domain', 'ROLES_DOMAIN')\n .where('USER.id = :userId', { userId: context.state.user.id })\n .andWhere('ROLES_DOMAIN.id = :domainId', { domainId: context.state.domain.id })\n .getOne()\n\n // get menus which are non-restricted by any role.\n menus.push(...(await getNonRestrictedMenus(context.state.domain)))\n\n const userRoleIds: string[] = user.roles.map((role: Role) => role.id)\n let restrictedMenus: Menu[] = []\n if (userRoleIds?.length) {\n // get menus which are restricted by role ()\n restrictedMenus = [...(await getRestrictedMenus(userRoleIds, context.state.domain))]\n }\n\n const restrictedMenuIds: string[] = restrictedMenus.map((restrictedMenu: Menu) => restrictedMenu.id)\n menus.forEach(menu => {\n const idx = restrictedMenuIds.indexOf(menu.id)\n if (idx !== -1) {\n menu.children = Array.from(new Set([...restrictedMenus[idx].children, ...menu.children]))\n }\n })\n\n return menus.filter((groupMenu: Menu) => groupMenu?.children?.length)\n } catch (e) {\n throw e\n }\n }\n\n @FieldResolver(type => [Menu])\n async children(\n @Root() menu: Menu,\n @Arg('permittedOnly', { defaultValue: false }) permittedOnly: boolean,\n @Ctx() context: ResolverContext\n ): Promise<Menu[]> {\n var menus =\n menu.children ||\n (await getRepository(Menu).findBy({\n parent: { id: menu.id }\n }))\n\n if (!permittedOnly) {\n return menus\n }\n\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n const filtered = []\n\n for (let item of menus) {\n if (await checkPermission(item.privilege, user, domain, unsafeIP, prohibitedPrivileges)) {\n filtered.push(item)\n }\n }\n\n return filtered\n }\n\n @FieldResolver(type => [MenuButton])\n async buttons(@Root() menu: Menu): Promise<MenuButton[]> {\n return await getRepository(MenuButton).findBy({\n menu: { id: menu.id }\n })\n }\n\n @FieldResolver(type => [MenuColumn])\n async columns(@Root() menu: Menu): Promise<MenuColumn[]> {\n return await getRepository(MenuColumn).findBy({\n menu: { id: menu.id }\n })\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() menu: Menu): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: menu.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() menu: Menu): Promise<User> {\n return await getRepository(User).findOneBy({ id: menu.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() menu: Menu): Promise<User> {\n return await getRepository(User).findOneBy({ id: menu.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"menu-query.js","sourceRoot":"","sources":["../../../server/service/menu/menu-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { In, Repository, Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { Role, User } from '@things-factory/auth-base'\n\nimport { MenuButton } from '../menu-button/menu-button'\nimport { MenuColumn } from '../menu-column/menu-column'\nimport { Menu } from './menu'\nimport { MenuList } from './menu-type'\n\nasync function getNonRestrictedMenus(domain: Domain): Promise<Menu[]> {\n const menus: Menu[] = await getRepository(Menu).find({\n where: { domain: { id: domain.id }, hiddenFlag: false, menuType: 'MENU' },\n relations: ['parent', 'children', 'children.roles'],\n order: { rank: 'ASC' }\n })\n\n menus.forEach(menu => {\n menu.children = menu.children.filter(child => !child.roles?.length)\n })\n\n return menus\n}\n\nasync function getRestrictedMenus(roleIds: string[], domain: Domain): Promise<Menu[]> {\n const menus: Menu[] = await getRepository(Menu).find({\n where: { domain: { id: domain.id }, hiddenFlag: false, menuType: 'MENU' },\n relations: ['parent', 'children', 'children.roles'],\n order: { rank: 'ASC' }\n })\n const userRoles: Role[] = await getRepository(Role).find({ where: { domain: { id: domain.id }, id: In(roleIds) } })\n\n menus.forEach(menu => {\n menu.children = menu.children.filter(child => {\n const childRoleIds = child.roles?.map(role => role.id) || []\n\n return userRoles.find(role => childRoleIds.includes(role.id)) || false\n })\n })\n\n return menus\n}\n\n@Resolver(Menu)\nexport class MenuQuery {\n @Query(returns => Menu, { description: 'To fetch a Menu' })\n async menu(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Menu> {\n const { domain } = context.state\n\n return await getRepository(Menu).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['roles']\n })\n }\n\n @Query(returns => Menu, { description: 'To fetch a Menu by routing' })\n async menuByRouting(@Arg('routing') routing: string, context) {\n const { domain } = context.state\n\n return await getRepository(Menu).findOne({\n where: { domain: { id: domain.id }, routing }\n })\n }\n\n @Query(returns => MenuList, { description: 'To fetch multiple Menus' })\n async menus(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<MenuList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Menu),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => MenuList, { description: 'To fetch my own Menus' })\n async myMenus(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<MenuList> {\n const { domain, user } = context.state\n\n const me = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = me.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n const [items, total] = await getQueryBuilderFromListParams({\n repository: getRepository(Menu),\n params,\n domain,\n alias: 'menu',\n searchables: ['name', 'description']\n })\n .andWhere(\n new Brackets(qb => {\n qb.where('menu.role IN (:...roles)').orWhere('menu.role is null')\n })\n )\n .setParameter('roles', roles)\n .getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => MenuList, { description: 'To fetch Menus by role' })\n async roleMenus(@Arg('roleId') roleId: string, @Ctx() context: ResolverContext) {\n const { domain } = context.state\n\n const menuRepo: Repository<Menu> = getRepository(Menu)\n const menus: Menu[] = await menuRepo.find({\n where: { domain: { id: domain.id } },\n relations: ['parent', 'roles']\n })\n const role: Role = await getRepository(Role).findOne({ where: { domain: { id: domain.id }, id: roleId } })\n\n let newChildMenus: Menu[] = []\n\n menus.forEach(menu => {\n if (menu.roles) {\n const menuRoleIds = menu.roles.map(role => role.id)\n\n if (menuRoleIds.includes(role.id)) {\n newChildMenus.push(menu)\n }\n }\n })\n\n return { items: newChildMenus, total: newChildMenus.length }\n }\n\n @Query(returns => [Menu], { description: 'To fetch Menus by role' })\n async userMenus(@Ctx() context: ResolverContext): Promise<Menu[]> {\n const { domain, user } = context.state\n\n var menus: Menu[] = []\n\n try {\n const qb: SelectQueryBuilder<User> = getRepository(User).createQueryBuilder('USER')\n const user: User = await qb\n .leftJoinAndSelect('USER.roles', 'ROLES')\n .leftJoinAndSelect('ROLES.domain', 'ROLES_DOMAIN')\n .where('USER.id = :userId', { userId: context.state.user.id })\n .andWhere('ROLES_DOMAIN.id = :domainId', { domainId: context.state.domain.id })\n .getOne()\n\n // get menus which are non-restricted by any role.\n menus.push(...(await getNonRestrictedMenus(context.state.domain)))\n\n const userRoleIds: string[] = user.roles.map((role: Role) => role.id)\n let restrictedMenus: Menu[] = []\n if (userRoleIds?.length) {\n // get menus which are restricted by role ()\n restrictedMenus = [...(await getRestrictedMenus(userRoleIds, context.state.domain))]\n }\n\n const restrictedMenuIds: string[] = restrictedMenus.map((restrictedMenu: Menu) => restrictedMenu.id)\n menus.forEach(menu => {\n const idx = restrictedMenuIds.indexOf(menu.id)\n if (idx !== -1) {\n menu.children = Array.from(new Set([...restrictedMenus[idx].children, ...menu.children]))\n }\n })\n\n return menus.filter((groupMenu: Menu) => groupMenu?.children?.length)\n } catch (e) {\n throw e\n }\n }\n\n @FieldResolver(type => [Menu])\n async children(\n @Root() menu: Menu,\n @Arg('permittedOnly', { defaultValue: false }) permittedOnly: boolean,\n @Ctx() context: ResolverContext\n ): Promise<Menu[]> {\n if (!permittedOnly) {\n return (\n menu.children ||\n (await getRepository(Menu).findBy({\n parent: { id: menu.id }\n }))\n )\n }\n\n const { domain, user } = context.state\n\n const me = await getRepository(User).findOne({\n where: { id: user.id },\n relations: ['roles']\n })\n\n const roles = me.roles\n .filter(role => role.domainId === domain.id || (domain.parentId && role.domainId === domain.parentId))\n .map(role => role.id)\n\n return await getRepository(Menu)\n .createQueryBuilder('menu')\n .where('menu.parent = :parentId', { parentId: menu.id })\n .andWhere(\n new Brackets(qb => {\n qb.where('menu.role IN (:...roles)').orWhere('menu.role is null')\n })\n )\n .setParameter('roles', roles)\n .getMany()\n }\n\n @FieldResolver(type => [MenuButton])\n async buttons(@Root() menu: Menu): Promise<MenuButton[]> {\n return await getRepository(MenuButton).findBy({\n menu: { id: menu.id }\n })\n }\n\n @FieldResolver(type => [MenuColumn])\n async columns(@Root() menu: Menu): Promise<MenuColumn[]> {\n return await getRepository(MenuColumn).findBy({\n menu: { id: menu.id }\n })\n }\n\n @FieldResolver(type => Role)\n async role(@Root() menu: Menu) {\n return menu.roleId && (await getRepository(Role).findOneBy({ id: menu.roleId }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() menu: Menu): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: menu.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() menu: Menu): Promise<User> {\n return await getRepository(User).findOneBy({ id: menu.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() menu: Menu): Promise<User> {\n return await getRepository(User).findOneBy({ id: menu.creatorId })\n }\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  import { ObjectRef } from '@things-factory/shell';
2
- import { PrivilegeInput } from '@things-factory/auth-base';
3
2
  import { Menu } from './menu';
4
3
  export declare class NewMenu {
5
4
  name: string;
@@ -26,7 +25,6 @@ export declare class NewMenu {
26
25
  fixedColumns?: number;
27
26
  iconPath?: string;
28
27
  role?: ObjectRef;
29
- privilege?: PrivilegeInput;
30
28
  parent?: ObjectRef;
31
29
  children?: ObjectRef[];
32
30
  buttons?: ObjectRef[];
@@ -58,7 +56,6 @@ export declare class MenuPatch {
58
56
  fixedColumns?: number;
59
57
  iconPath?: string;
60
58
  role?: ObjectRef;
61
- privilege?: PrivilegeInput;
62
59
  parent?: ObjectRef;
63
60
  children?: ObjectRef[];
64
61
  buttons?: ObjectRef[];
@@ -4,7 +4,6 @@ exports.MenuList = exports.MenuPatch = exports.NewMenu = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
6
  const shell_1 = require("@things-factory/shell");
7
- const auth_base_1 = require("@things-factory/auth-base");
8
7
  const menu_1 = require("./menu");
9
8
  let NewMenu = class NewMenu {
10
9
  };
@@ -105,10 +104,6 @@ tslib_1.__decorate([
105
104
  (0, type_graphql_1.Field)({ nullable: true }),
106
105
  tslib_1.__metadata("design:type", shell_1.ObjectRef)
107
106
  ], NewMenu.prototype, "role", void 0);
108
- tslib_1.__decorate([
109
- (0, type_graphql_1.Field)({ nullable: true }),
110
- tslib_1.__metadata("design:type", auth_base_1.PrivilegeInput)
111
- ], NewMenu.prototype, "privilege", void 0);
112
107
  tslib_1.__decorate([
113
108
  (0, type_graphql_1.Field)({ nullable: true }),
114
109
  tslib_1.__metadata("design:type", shell_1.ObjectRef)
@@ -231,10 +226,6 @@ tslib_1.__decorate([
231
226
  (0, type_graphql_1.Field)({ nullable: true }),
232
227
  tslib_1.__metadata("design:type", shell_1.ObjectRef)
233
228
  ], MenuPatch.prototype, "role", void 0);
234
- tslib_1.__decorate([
235
- (0, type_graphql_1.Field)({ nullable: true }),
236
- tslib_1.__metadata("design:type", auth_base_1.PrivilegeInput)
237
- ], MenuPatch.prototype, "privilege", void 0);
238
229
  tslib_1.__decorate([
239
230
  (0, type_graphql_1.Field)({ nullable: true }),
240
231
  tslib_1.__metadata("design:type", shell_1.ObjectRef)
@@ -1 +1 @@
1
- {"version":3,"file":"menu-type.js","sourceRoot":"","sources":["../../../server/service/menu/menu-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ObjectRef } from '@things-factory/shell'\nimport { PrivilegeInput } from '@things-factory/auth-base'\n\nimport { Menu } from './menu'\n\n@InputType()\nexport class NewMenu {\n @Field() name: string\n @Field() menuType: string\n\n @Field({ nullable: true }) description?: string\n @Field({ nullable: true }) category: string\n @Field(type => Int, { nullable: true }) rank?: number\n @Field({ nullable: true }) routing?: string\n @Field({ nullable: true }) routingType?: string\n @Field({ nullable: true }) resourceType?: string\n @Field({ nullable: true }) resourceId?: string\n @Field({ nullable: true }) resourceUrl?: string\n @Field({ nullable: true }) resourceName?: string\n @Field({ nullable: true }) idField?: string\n @Field({ nullable: true }) titleField?: string\n @Field({ nullable: true }) gridSaveUrl?: string\n @Field({ nullable: true }) pagination?: boolean\n @Field({ nullable: true }) detailFormId?: string\n @Field({ nullable: true }) detailLayout?: string\n @Field({ nullable: true }) template?: string\n @Field({ nullable: true }) hiddenFlag?: boolean\n @Field({ nullable: true }) itemsProp?: string\n @Field({ nullable: true }) totalProp?: string\n @Field(type => Int, { nullable: true }) fixedColumns?: number\n @Field({ nullable: true }) iconPath?: string\n @Field({ nullable: true }) role?: ObjectRef\n @Field({ nullable: true }) privilege?: PrivilegeInput\n @Field({ nullable: true }) parent?: ObjectRef\n @Field(type => [ObjectRef], { nullable: true }) children?: ObjectRef[]\n @Field(type => [ObjectRef], { nullable: true }) buttons?: ObjectRef[]\n @Field(type => [ObjectRef], { nullable: true }) columns?: ObjectRef[]\n}\n\n@InputType()\nexport class MenuPatch {\n @Field(type => ID, { nullable: true }) id?: string\n @Field({ nullable: true }) category?: string\n @Field({ nullable: true }) name?: string\n @Field({ nullable: true }) description?: string\n @Field({ nullable: true }) menuType?: string\n @Field(type => Int, { nullable: true }) rank?: number\n @Field({ nullable: true }) routing?: string\n @Field({ nullable: true }) routingType?: string\n @Field({ nullable: true }) resourceType?: string\n @Field({ nullable: true }) resourceId?: string\n @Field({ nullable: true }) resourceUrl?: string\n @Field({ nullable: true }) resourceName?: string\n @Field({ nullable: true }) idField?: string\n @Field({ nullable: true }) titleField?: string\n @Field({ nullable: true }) gridSaveUrl?: string\n @Field({ nullable: true }) pagination?: boolean\n @Field({ nullable: true }) detailFormId?: string\n @Field({ nullable: true }) detailLayout?: string\n @Field({ nullable: true }) template?: string\n @Field({ nullable: true }) hiddenFlag?: boolean\n @Field({ nullable: true }) itemsProp?: string\n @Field({ nullable: true }) totalProp?: string\n @Field(type => Int, { nullable: true }) fixedColumns?: number\n @Field({ nullable: true }) iconPath?: string\n @Field({ nullable: true }) role?: ObjectRef\n @Field({ nullable: true }) privilege?: PrivilegeInput\n @Field({ nullable: true }) parent?: ObjectRef\n @Field(type => [ObjectRef], { nullable: true }) children?: ObjectRef[]\n @Field(type => [ObjectRef], { nullable: true }) buttons?: ObjectRef[]\n @Field(type => [ObjectRef], { nullable: true }) columns?: ObjectRef[]\n @Field({ nullable: true }) cuFlag?: string\n}\n\n@ObjectType()\nexport class MenuList {\n @Field(type => [Menu]) items: Menu[]\n @Field(type => Int) total: number\n}\n"]}
1
+ {"version":3,"file":"menu-type.js","sourceRoot":"","sources":["../../../server/service/menu/menu-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { ObjectRef } from '@things-factory/shell'\n\nimport { Menu } from './menu'\n\n@InputType()\nexport class NewMenu {\n @Field() name: string\n @Field() menuType: string\n\n @Field({ nullable: true }) description?: string\n @Field({ nullable: true }) category: string\n @Field(type => Int, { nullable: true }) rank?: number\n @Field({ nullable: true }) routing?: string\n @Field({ nullable: true }) routingType?: string\n @Field({ nullable: true }) resourceType?: string\n @Field({ nullable: true }) resourceId?: string\n @Field({ nullable: true }) resourceUrl?: string\n @Field({ nullable: true }) resourceName?: string\n @Field({ nullable: true }) idField?: string\n @Field({ nullable: true }) titleField?: string\n @Field({ nullable: true }) gridSaveUrl?: string\n @Field({ nullable: true }) pagination?: boolean\n @Field({ nullable: true }) detailFormId?: string\n @Field({ nullable: true }) detailLayout?: string\n @Field({ nullable: true }) template?: string\n @Field({ nullable: true }) hiddenFlag?: boolean\n @Field({ nullable: true }) itemsProp?: string\n @Field({ nullable: true }) totalProp?: string\n @Field(type => Int, { nullable: true }) fixedColumns?: number\n @Field({ nullable: true }) iconPath?: string\n @Field({ nullable: true }) role?: ObjectRef\n @Field({ nullable: true }) parent?: ObjectRef\n @Field(type => [ObjectRef], { nullable: true }) children?: ObjectRef[]\n @Field(type => [ObjectRef], { nullable: true }) buttons?: ObjectRef[]\n @Field(type => [ObjectRef], { nullable: true }) columns?: ObjectRef[]\n}\n\n@InputType()\nexport class MenuPatch {\n @Field(type => ID, { nullable: true }) id?: string\n @Field({ nullable: true }) category?: string\n @Field({ nullable: true }) name?: string\n @Field({ nullable: true }) description?: string\n @Field({ nullable: true }) menuType?: string\n @Field(type => Int, { nullable: true }) rank?: number\n @Field({ nullable: true }) routing?: string\n @Field({ nullable: true }) routingType?: string\n @Field({ nullable: true }) resourceType?: string\n @Field({ nullable: true }) resourceId?: string\n @Field({ nullable: true }) resourceUrl?: string\n @Field({ nullable: true }) resourceName?: string\n @Field({ nullable: true }) idField?: string\n @Field({ nullable: true }) titleField?: string\n @Field({ nullable: true }) gridSaveUrl?: string\n @Field({ nullable: true }) pagination?: boolean\n @Field({ nullable: true }) detailFormId?: string\n @Field({ nullable: true }) detailLayout?: string\n @Field({ nullable: true }) template?: string\n @Field({ nullable: true }) hiddenFlag?: boolean\n @Field({ nullable: true }) itemsProp?: string\n @Field({ nullable: true }) totalProp?: string\n @Field(type => Int, { nullable: true }) fixedColumns?: number\n @Field({ nullable: true }) iconPath?: string\n @Field({ nullable: true }) role?: ObjectRef\n @Field({ nullable: true }) parent?: ObjectRef\n @Field(type => [ObjectRef], { nullable: true }) children?: ObjectRef[]\n @Field(type => [ObjectRef], { nullable: true }) buttons?: ObjectRef[]\n @Field(type => [ObjectRef], { nullable: true }) columns?: ObjectRef[]\n @Field({ nullable: true }) cuFlag?: string\n}\n\n@ObjectType()\nexport class MenuList {\n @Field(type => [Menu]) items: Menu[]\n @Field(type => Int) total: number\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Domain } from '@things-factory/shell';
2
- import { PrivilegeObject, Role, User } from '@things-factory/auth-base';
2
+ import { Role, User } from '@things-factory/auth-base';
3
3
  import { MenuButton } from '../menu-button/menu-button';
4
4
  import { MenuColumn } from '../menu-column/menu-column';
5
5
  export declare class Menu {
@@ -16,7 +16,6 @@ export declare class Menu {
16
16
  role: Role;
17
17
  roleId?: string;
18
18
  roles?: Role[];
19
- privilege?: PrivilegeObject;
20
19
  rank?: number;
21
20
  iconPath?: string;
22
21
  hiddenFlag?: boolean;
@@ -77,11 +77,6 @@ tslib_1.__decorate([
77
77
  (0, type_graphql_1.Field)(type => [auth_base_1.Role], { nullable: true }),
78
78
  tslib_1.__metadata("design:type", Array)
79
79
  ], Menu.prototype, "roles", void 0);
80
- tslib_1.__decorate([
81
- (0, typeorm_1.Column)({ type: 'simple-json', nullable: true }),
82
- (0, type_graphql_1.Field)(type => auth_base_1.PrivilegeObject, { nullable: true }),
83
- tslib_1.__metadata("design:type", auth_base_1.PrivilegeObject)
84
- ], Menu.prototype, "privilege", void 0);
85
80
  tslib_1.__decorate([
86
81
  (0, typeorm_1.Column)('int', { nullable: true }),
87
82
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../server/service/menu/menu.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n JoinTable,\n ManyToMany,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { Domain } from '@things-factory/shell'\nimport { PrivilegeObject, Role, User } from '@things-factory/auth-base'\n\nimport { MenuButton } from '../menu-button/menu-button'\nimport { MenuColumn } from '../menu-column/menu-column'\n\n@Entity()\n@Index('ix_menu_0', (menu: Menu) => [menu.domain, menu.name, menu.parent, menu.role], { unique: true })\n@Index('ix_menu_1', (menu: Menu) => [menu.domain, menu.parent])\n@Index('ix_menu_2', (menu: Menu) => [menu.domain, menu.category, menu.menuType, menu.rank])\n@ObjectType({ description: 'Entity for Menu' })\nexport class Menu {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((menu: Menu) => menu.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true })\n name: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @ManyToOne(type => Menu, parent => parent.children, { nullable: true })\n @Field({ nullable: true })\n parent?: Menu\n\n @RelationId((menu: Menu) => menu.parent)\n parentId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n template?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n menuType?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n category?: string\n\n @ManyToOne(type => Role, { nullable: true })\n @Field(type => Role, { nullable: true })\n role: Role\n\n @RelationId((menu: Menu) => menu.role)\n roleId?: string\n\n @ManyToMany(type => Role)\n @JoinTable({ name: 'menus_roles' })\n @Field(type => [Role], { nullable: true })\n roles?: Role[]\n\n @Column({ type: 'simple-json', nullable: true })\n @Field(type => PrivilegeObject, { nullable: true })\n privilege?: PrivilegeObject\n\n @Column('int', { nullable: true })\n @Field({ nullable: true })\n rank?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n iconPath?: string\n\n @Column({ nullable: true, default: false })\n @Field({ nullable: true })\n hiddenFlag?: boolean = false\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n routing?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n routingType?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n detailFormId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n detailLayout?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n resourceType?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n resourceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n resourceName?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n resourceUrl?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n gridSaveUrl?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n idField?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n titleField?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n pagination?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n itemsProp?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n totalProp?: string\n\n @Column('int', { nullable: true })\n @Field({ nullable: true })\n fixedColumns?: number\n\n @OneToMany(type => Menu, child => child.parent)\n @Field(type => [Menu])\n children?: Menu[]\n\n @OneToMany(type => MenuButton, menuButton => menuButton.menu)\n @Field(type => [MenuButton])\n buttons?: MenuButton[]\n\n @OneToMany(type => MenuColumn, menuColumn => menuColumn.menu)\n @Field(type => [MenuColumn])\n columns?: MenuColumn[]\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, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((menu: Menu) => menu.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((menu: Menu) => menu.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../server/service/menu/menu.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n JoinTable,\n ManyToMany,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { Domain } from '@things-factory/shell'\nimport { PrivilegeObject, Role, User } from '@things-factory/auth-base'\n\nimport { MenuButton } from '../menu-button/menu-button'\nimport { MenuColumn } from '../menu-column/menu-column'\n\n@Entity()\n@Index('ix_menu_0', (menu: Menu) => [menu.domain, menu.name, menu.parent, menu.role], { unique: true })\n@Index('ix_menu_1', (menu: Menu) => [menu.domain, menu.parent])\n@Index('ix_menu_2', (menu: Menu) => [menu.domain, menu.category, menu.menuType, menu.rank])\n@ObjectType({ description: 'Entity for Menu' })\nexport class Menu {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((menu: Menu) => menu.domain)\n domainId?: string\n\n @Column()\n @Field({ nullable: true })\n name: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @ManyToOne(type => Menu, parent => parent.children, { nullable: true })\n @Field({ nullable: true })\n parent?: Menu\n\n @RelationId((menu: Menu) => menu.parent)\n parentId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n template?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n menuType?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n category?: string\n\n @ManyToOne(type => Role, { nullable: true })\n @Field(type => Role, { nullable: true })\n role: Role\n\n @RelationId((menu: Menu) => menu.role)\n roleId?: string\n\n @ManyToMany(type => Role)\n @JoinTable({ name: 'menus_roles' })\n @Field(type => [Role], { nullable: true })\n roles?: Role[]\n\n @Column('int', { nullable: true })\n @Field({ nullable: true })\n rank?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n iconPath?: string\n\n @Column({ nullable: true, default: false })\n @Field({ nullable: true })\n hiddenFlag?: boolean = false\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n routing?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n routingType?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n detailFormId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n detailLayout?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n resourceType?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n resourceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n resourceName?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n resourceUrl?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n gridSaveUrl?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n idField?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n titleField?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n pagination?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n itemsProp?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n totalProp?: string\n\n @Column('int', { nullable: true })\n @Field({ nullable: true })\n fixedColumns?: number\n\n @OneToMany(type => Menu, child => child.parent)\n @Field(type => [Menu])\n children?: Menu[]\n\n @OneToMany(type => MenuButton, menuButton => menuButton.menu)\n @Field(type => [MenuButton])\n buttons?: MenuButton[]\n\n @OneToMany(type => MenuColumn, menuColumn => menuColumn.menu)\n @Field(type => [MenuColumn])\n columns?: MenuColumn[]\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, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((menu: Menu) => menu.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((menu: Menu) => menu.updater)\n updaterId?: string\n}\n"]}