More work on API permissions

This commit is contained in:
Dragory 2019-11-08 00:04:24 +02:00
parent 79b0adf81a
commit c9a21c64bf
14 changed files with 318 additions and 85 deletions

View file

@ -0,0 +1,74 @@
import { MigrationInterface, QueryRunner, TableColumn, TableIndex } from "typeorm";
export class AddTypeAndPermissionsToApiPermissions1573158035867 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<any> {
await queryRunner.dropPrimaryKey("api_permissions");
await queryRunner.dropIndex("api_permissions", "IDX_5e371749d4cb4a5191f35e26f6");
await queryRunner.addColumn(
"api_permissions",
new TableColumn({
name: "type",
type: "varchar",
length: "16",
}),
);
await queryRunner.renameColumn("api_permissions", "user_id", "target_id");
await queryRunner.createPrimaryKey("api_permissions", ["guild_id", "type", "target_id"]);
await queryRunner.dropColumn("api_permissions", "role");
await queryRunner.addColumn(
"api_permissions",
new TableColumn({
name: "permissions",
type: "text",
}),
);
await queryRunner.query(`
UPDATE api_permissions
SET type="USER",
permissions="EDIT_CONFIG"
`);
await queryRunner.createIndex(
"api_permissions",
new TableIndex({
columnNames: ["type", "target_id"],
}),
);
}
public async down(queryRunner: QueryRunner): Promise<any> {
await queryRunner.dropIndex("api_permissions", "IDX_e06d750f13e6a4b4d3d6b847a9");
await queryRunner.dropColumn("api_permissions", "permissions");
await queryRunner.addColumn(
"api_permissions",
new TableColumn({
name: "role",
type: "varchar",
length: "32",
}),
);
await queryRunner.dropPrimaryKey("api_permissions");
await queryRunner.renameColumn("api_permissions", "target_id", "user_id");
await queryRunner.dropColumn("api_permissions", "type");
await queryRunner.createIndex(
"api_permissions",
new TableIndex({
columnNames: ["user_id"],
}),
);
await queryRunner.createPrimaryKey("api_permissions", ["guild_id", "user_id"]);
}
}