/* * Copyright (c) 2022. * Author Peter Placzek (tada5hi) * For the full copyright and license information, * view the LICENSE file that was distributed with this source code. */ import {Factory, Seeder} from "typeorm-seeding"; import {Connection, getRepository} from "typeorm"; import {UserRepository} from "@chamesu/common/domains/auth/user/repository"; import {RoleRepository} from "@chamesu/common/domains/auth/role/repository"; import {AuthPermission} from "@chamesu/common/domains/auth/permission"; import {AuthRolePermission} from "@chamesu/common/domains/auth/role/permission"; import {AuthUserRole} from "@chamesu/common/domains/auth/user/role"; export default class CreateAuth implements Seeder { public async run(factory: Factory, connection: Connection) : Promise { //------------------------------------------------- const roleRepository = connection.getCustomRepository(RoleRepository); let adminRole = roleRepository.create({ name: 'admin' }); await roleRepository.save(adminRole); //------------------------------------------------- const userRepository = connection.getCustomRepository(UserRepository); let adminUser = userRepository.create({ name: 'admin', password: await userRepository.hashPassword('start123'), email: 'peter.placzek1996@gmail.com' }); await userRepository.save(adminUser); //------------------------------------------------- const userRoleRepository = getRepository(AuthUserRole); await userRoleRepository.insert({ role_id: adminRole.id, user_id: adminUser.id }); //------------------------------------------------- const permissionRepository = connection.getRepository(AuthPermission); const names : string[] = [ 'admin_ui_use', 'realm_add', 'realm_drop', 'realm_edit', 'provider_add', 'provider_drop', 'provider_edit', 'permission_add', 'permission_drop', 'permission_edit', 'user_add', 'user_drop', 'user_edit', 'user_role_add', 'user_role_drop', 'user_role_edit', 'role_add', 'role_drop', 'role_edit', 'role_permission_add', 'role_permission_drop', ]; const permissions : AuthPermission[] = names.map((id: string) => { return permissionRepository.create({id}); }); await permissionRepository.save(permissions); //------------------------------------------------- /** * Assign all permissions to default role. */ const rolePermissionRepository = connection.getRepository(AuthRolePermission); const rolePermissions : AuthRolePermission[] = []; for(let j=0; j