diff --git a/packages/backend/src/db/migrations/20240327211151_add_can_custom_connect_column_to_app_configs.js b/packages/backend/src/db/migrations/20240327211151_add_can_custom_connect_column_to_app_configs.js new file mode 100644 index 00000000..74766471 --- /dev/null +++ b/packages/backend/src/db/migrations/20240327211151_add_can_custom_connect_column_to_app_configs.js @@ -0,0 +1,11 @@ +export async function up(knex) { + await knex.schema.table('app_configs', (table) => { + table.boolean('can_custom_connect').defaultTo(false); + }); +} + +export async function down(knex) { + await knex.schema.table('app_configs', (table) => { + table.dropColumn('can_custom_connect'); + }); +} diff --git a/packages/backend/src/models/app-auth-client.js b/packages/backend/src/models/app-auth-client.js index 20562527..b6e1474c 100644 --- a/packages/backend/src/models/app-auth-client.js +++ b/packages/backend/src/models/app-auth-client.js @@ -62,7 +62,7 @@ class AppAuthClient extends Base { async assignCanConnectForAppConfig() { const appConfig = await AppConfig.query().findOne({ key: this.appKey }); - await appConfig?.assignCanConnect(); + await appConfig?.$query()?.patch({}); } async $afterInsert(queryContext) { diff --git a/packages/backend/src/models/app-config.js b/packages/backend/src/models/app-config.js index 4789798f..88226d8d 100644 --- a/packages/backend/src/models/app-config.js +++ b/packages/backend/src/models/app-config.js @@ -16,6 +16,7 @@ class AppConfig extends Base { shared: { type: 'boolean', default: false }, disabled: { type: 'boolean', default: false }, canConnect: { type: 'boolean', default: false }, + canCustomConnect: { type: 'boolean', default: false }, }, }; @@ -48,14 +49,21 @@ class AppConfig extends Base { this.canConnect = canConnect; } + async assignCanCustomConnect() { + const canCustomConnect = !this.disabled && this.allowCustomConnection; + this.canCustomConnect = canCustomConnect; + } + async $beforeInsert(queryContext) { await super.$beforeInsert(queryContext); await this.assignCanConnect(); + await this.assignCanCustomConnect(); } async $beforeUpdate(opt, queryContext) { await super.$beforeUpdate(opt, queryContext); await this.assignCanConnect(); + await this.assignCanCustomConnect(); } }