@things-factory/operato-board 9.0.0-beta.7 → 9.0.0-beta.71

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.
@@ -145,7 +145,7 @@ class SeedRole1610516350460 {
145
145
  async up(queryRunner) {
146
146
  const repository = (0, shell_1.getRepository)(auth_base_1.Role);
147
147
  const userRepository = (0, shell_1.getRepository)(auth_base_1.User);
148
- let users = await userRepository.find({ where: { userType: 'admin' }, relations: ['domains'] });
148
+ let users = await userRepository.find({ where: { username: 'admin' }, relations: ['domains'] });
149
149
  let domain = await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({
150
150
  name: 'SYSTEM'
151
151
  });
@@ -1 +1 @@
1
- {"version":3,"file":"1610516350460-SeedRole.js","sourceRoot":"","sources":["../../server/migrations/1610516350460-SeedRole.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { Privilege, Role, User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nconst PRIVILEGES_SEED = {\n modeller: [\n {\n name: 'mutation',\n category: 'setting'\n },\n {\n name: 'mutation',\n category: 'menu'\n },\n {\n name: 'mutation',\n category: 'user'\n },\n {\n name: 'mutation',\n category: 'appliance'\n },\n {\n name: 'mutation',\n category: 'appliance'\n },\n {\n name: 'mutation',\n category: 'application'\n },\n {\n name: 'mutation',\n category: 'board'\n },\n {\n name: 'mutation',\n category: 'group'\n },\n {\n name: 'mutation',\n category: 'play-group'\n },\n {\n name: 'mutation',\n category: 'fonts'\n },\n {\n name: 'mutation',\n category: 'attachment'\n },\n {\n name: 'mutation',\n category: 'scenario'\n },\n {\n name: 'mutation',\n category: 'step'\n },\n {\n name: 'query',\n category: 'setting'\n },\n {\n name: 'query',\n category: 'menu'\n },\n {\n name: 'query',\n category: 'user'\n },\n {\n name: 'query',\n category: 'appliance'\n },\n {\n name: 'query',\n category: 'application'\n },\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'group'\n },\n {\n name: 'query',\n category: 'play-group'\n },\n {\n name: 'query',\n category: 'fonts'\n },\n {\n name: 'query',\n category: 'attachment'\n },\n {\n name: 'query',\n category: 'scenario'\n },\n {\n name: 'query',\n category: 'step'\n }\n ],\n system: [\n {\n name: 'mutation',\n category: 'system'\n },\n {\n name: 'query',\n category: 'system'\n }\n ],\n viewer: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'group'\n },\n {\n name: 'query',\n category: 'play-group'\n }\n ]\n}\n\nconst SEED = [\n {\n name: 'modeller',\n description: 'Board Modeller'\n },\n {\n name: 'viewer',\n description: 'Board Viewer'\n }\n]\n\nexport class SeedRole1610516350460 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Role)\n const userRepository = getRepository(User)\n\n let users: User[] = await userRepository.find({ where: { userType: 'admin' }, relations: ['domains'] })\n let domain: Domain = await getRepository(Domain).findOneBy({\n name: 'SYSTEM'\n })\n\n var privilegeSeeds = []\n Promise.all(\n SEED.map(async role => {\n var privileges = await this.getPrivileges(privilegeSeeds, role.name)\n await repository.save({\n ...role,\n privileges: privileges,\n users,\n domain\n })\n })\n )\n await this.saveSystemRole(repository, users, domain)\n }\n\n public async saveSystemRole(repository, users, domain) {\n const privilegeRepository = getRepository(Privilege)\n var role = {\n name: 'system',\n description: 'System Admin'\n }\n var privileges = await privilegeRepository.find()\n await repository.save({\n ...role,\n privileges: privileges,\n users,\n domain\n })\n }\n\n public async getPrivileges(privilegeSeeds, roleName) {\n const privilegeRepository = getRepository(Privilege)\n privilegeSeeds = PRIVILEGES_SEED[roleName]\n var privileges = []\n await Promise.all(\n privilegeSeeds.map(async privilege => {\n var value = await privilegeRepository.findOne({ where: { name: privilege.name, category: privilege.category } })\n if (value) {\n privileges.push(value)\n }\n })\n )\n return privileges\n }\n\n public async down(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Role)\n const privilegeRepository = getRepository(Privilege)\n const domain: Domain = await getRepository(Domain).findOneBy({\n name: 'SYSTEM'\n })\n\n await Promise.all(\n SEED.reverse().map(async role => {\n await repository.delete({ name: role.name, domain: { id: domain.id } })\n })\n )\n\n await repository.delete({ name: 'system', domain: { id: domain.id } })\n }\n}\n"]}
1
+ {"version":3,"file":"1610516350460-SeedRole.js","sourceRoot":"","sources":["../../server/migrations/1610516350460-SeedRole.ts"],"names":[],"mappings":"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","sourcesContent":["import { MigrationInterface, QueryRunner } from 'typeorm'\n\nimport { Privilege, Role, User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nconst PRIVILEGES_SEED = {\n modeller: [\n {\n name: 'mutation',\n category: 'setting'\n },\n {\n name: 'mutation',\n category: 'menu'\n },\n {\n name: 'mutation',\n category: 'user'\n },\n {\n name: 'mutation',\n category: 'appliance'\n },\n {\n name: 'mutation',\n category: 'appliance'\n },\n {\n name: 'mutation',\n category: 'application'\n },\n {\n name: 'mutation',\n category: 'board'\n },\n {\n name: 'mutation',\n category: 'group'\n },\n {\n name: 'mutation',\n category: 'play-group'\n },\n {\n name: 'mutation',\n category: 'fonts'\n },\n {\n name: 'mutation',\n category: 'attachment'\n },\n {\n name: 'mutation',\n category: 'scenario'\n },\n {\n name: 'mutation',\n category: 'step'\n },\n {\n name: 'query',\n category: 'setting'\n },\n {\n name: 'query',\n category: 'menu'\n },\n {\n name: 'query',\n category: 'user'\n },\n {\n name: 'query',\n category: 'appliance'\n },\n {\n name: 'query',\n category: 'application'\n },\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'group'\n },\n {\n name: 'query',\n category: 'play-group'\n },\n {\n name: 'query',\n category: 'fonts'\n },\n {\n name: 'query',\n category: 'attachment'\n },\n {\n name: 'query',\n category: 'scenario'\n },\n {\n name: 'query',\n category: 'step'\n }\n ],\n system: [\n {\n name: 'mutation',\n category: 'system'\n },\n {\n name: 'query',\n category: 'system'\n }\n ],\n viewer: [\n {\n name: 'query',\n category: 'board'\n },\n {\n name: 'query',\n category: 'group'\n },\n {\n name: 'query',\n category: 'play-group'\n }\n ]\n}\n\nconst SEED = [\n {\n name: 'modeller',\n description: 'Board Modeller'\n },\n {\n name: 'viewer',\n description: 'Board Viewer'\n }\n]\n\nexport class SeedRole1610516350460 implements MigrationInterface {\n public async up(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Role)\n const userRepository = getRepository(User)\n\n let users: User[] = await userRepository.find({ where: { username: 'admin' }, relations: ['domains'] })\n let domain: Domain = await getRepository(Domain).findOneBy({\n name: 'SYSTEM'\n })\n\n var privilegeSeeds = []\n Promise.all(\n SEED.map(async role => {\n var privileges = await this.getPrivileges(privilegeSeeds, role.name)\n await repository.save({\n ...role,\n privileges: privileges,\n users,\n domain\n })\n })\n )\n await this.saveSystemRole(repository, users, domain)\n }\n\n public async saveSystemRole(repository, users, domain) {\n const privilegeRepository = getRepository(Privilege)\n var role = {\n name: 'system',\n description: 'System Admin'\n }\n var privileges = await privilegeRepository.find()\n await repository.save({\n ...role,\n privileges: privileges,\n users,\n domain\n })\n }\n\n public async getPrivileges(privilegeSeeds, roleName) {\n const privilegeRepository = getRepository(Privilege)\n privilegeSeeds = PRIVILEGES_SEED[roleName]\n var privileges = []\n await Promise.all(\n privilegeSeeds.map(async privilege => {\n var value = await privilegeRepository.findOne({ where: { name: privilege.name, category: privilege.category } })\n if (value) {\n privileges.push(value)\n }\n })\n )\n return privileges\n }\n\n public async down(queryRunner: QueryRunner): Promise<any> {\n const repository = getRepository(Role)\n const privilegeRepository = getRepository(Privilege)\n const domain: Domain = await getRepository(Domain).findOneBy({\n name: 'SYSTEM'\n })\n\n await Promise.all(\n SEED.reverse().map(async role => {\n await repository.delete({ name: role.name, domain: { id: domain.id } })\n })\n )\n\n await repository.delete({ name: 'system', domain: { id: domain.id } })\n }\n}\n"]}