mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-25 10:44:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { loadConfig } from '../built/config.js';
 | |
| 
 | |
| export class AddUnsignedFetch1740162088574 {
 | |
| 	name = 'AddUnsignedFetch1740162088574'
 | |
| 
 | |
| 	async up(queryRunner) {
 | |
| 		// meta.allowUnsignedFetch
 | |
| 		await queryRunner.query(`CREATE TYPE "public"."meta_allowunsignedfetch_enum" AS ENUM('never', 'always', 'essential')`);
 | |
| 		await queryRunner.query(`ALTER TABLE "meta" ADD "allowUnsignedFetch" "public"."meta_allowunsignedfetch_enum" NOT NULL DEFAULT 'always'`);
 | |
| 
 | |
| 		// user.allowUnsignedFetch
 | |
| 		await queryRunner.query(`CREATE TYPE "public"."user_allowunsignedfetch_enum" AS ENUM('never', 'always', 'essential', 'staff')`);
 | |
| 		await queryRunner.query(`ALTER TABLE "user" ADD "allowUnsignedFetch" "public"."user_allowunsignedfetch_enum" NOT NULL DEFAULT 'staff'`);
 | |
| 
 | |
| 		// Special one-time migration: allow unauthorized fetch for system accounts
 | |
| 		await queryRunner.query(`UPDATE "user" SET "allowUnsignedFetch" = 'always' WHERE "username" LIKE '%.%' AND "host" IS null`);
 | |
| 
 | |
| 		// Special one-time migration: convert legacy config "" to meta setting ""
 | |
| 		const config = await loadConfig();
 | |
| 		if (config.checkActivityPubGetSignature) {
 | |
| 			// noinspection SqlWithoutWhere
 | |
| 			await queryRunner.query(`UPDATE "meta" SET "allowUnsignedFetch" = 'never'`);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	async down(queryRunner) {
 | |
| 		// user.allowUnsignedFetch
 | |
| 		await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "allowUnsignedFetch"`);
 | |
| 		await queryRunner.query(`DROP TYPE "public"."user_allowunsignedfetch_enum"`);
 | |
| 
 | |
| 		// meta.allowUnsignedFetch
 | |
| 		await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "allowUnsignedFetch"`);
 | |
| 		await queryRunner.query(`DROP TYPE "public"."meta_allowunsignedfetch_enum"`);
 | |
| 	}
 | |
| }
 |