refactor nest app to server folder
This commit is contained in:
63
server/src/migration/1761597689677-add_rbac_to_admin.ts
Normal file
63
server/src/migration/1761597689677-add_rbac_to_admin.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class AddRbacToAdmin1761597689677 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
const idRoleAdmin = await this.doInsert(queryRunner, 'user_role', {
|
||||
name: 'admin',
|
||||
});
|
||||
console.info('idRoleAdmin', idRoleAdmin);
|
||||
const idRoleUserManagement = await this.doInsert(queryRunner, 'user_role', {
|
||||
name: 'user_manager',
|
||||
});
|
||||
console.info('idRoleUserManagement', idRoleUserManagement);
|
||||
const idGroupAdmin = await this.doInsert(queryRunner, 'user_group', {
|
||||
name: 'admin',
|
||||
});
|
||||
console.info('idGroupAdmin', idGroupAdmin);
|
||||
|
||||
|
||||
await this.doInsert(queryRunner, 'user_group_roles_user_role', {
|
||||
userGroupId: idGroupAdmin,
|
||||
userRoleId: idRoleAdmin,
|
||||
});
|
||||
|
||||
await this.doInsert(queryRunner, 'user_group_roles_user_role', {
|
||||
userGroupId: idGroupAdmin,
|
||||
userRoleId: idRoleUserManagement,
|
||||
});
|
||||
|
||||
const users: object[] = (await queryRunner.query(
|
||||
`SELECT * FROM "user" WHERE "username" = $1`,
|
||||
['admin'],
|
||||
)) as object[];
|
||||
let userId: number | undefined = undefined;
|
||||
if (users?.length > 0) {
|
||||
const user = users[0] as { id: number };
|
||||
userId = user.id;
|
||||
}
|
||||
await this.doInsert(queryRunner, 'user_groups_user_group', {
|
||||
userGroupId: idGroupAdmin,
|
||||
userId: userId,
|
||||
});
|
||||
}
|
||||
|
||||
public async down(_queryRunner: QueryRunner): Promise<void> {
|
||||
// await queryRunner.query(
|
||||
}
|
||||
|
||||
private async doInsert(
|
||||
queryRunner: QueryRunner,
|
||||
table: string,
|
||||
values: Record<string, any>,
|
||||
): Promise<string> {
|
||||
console.info("inserting values",values);
|
||||
const insertResult = await queryRunner.manager
|
||||
.createQueryBuilder()
|
||||
.insert()
|
||||
.into(table)
|
||||
.values(values)
|
||||
.execute();
|
||||
|
||||
return insertResult.raw[0]?.id as string;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user