diff --git a/apps/nestjs-backend/src/features/base/base.controller.ts b/apps/nestjs-backend/src/features/base/base.controller.ts index 34806fdfc..ae6561dea 100644 --- a/apps/nestjs-backend/src/features/base/base.controller.ts +++ b/apps/nestjs-backend/src/features/base/base.controller.ts @@ -107,19 +107,19 @@ export class BaseController { return await this.baseService.deleteBase(baseId); } - @Permissions('base|create') + @Permissions('base|db_connection') @Post(':baseId/connection') async createDbConnection(@Param('baseId') baseId: string): Promise { return await this.dbConnectionService.create(baseId); } - @Permissions('base|create') + @Permissions('base|db_connection') @Get(':baseId/connection') async getDBConnection(@Param('baseId') baseId: string): Promise { return await this.dbConnectionService.retrieve(baseId); } - @Permissions('base|create') + @Permissions('base|db_connection') @Delete(':baseId/connection') async deleteDbConnection(@Param('baseId') baseId: string) { await this.dbConnectionService.remove(baseId); diff --git a/apps/nextjs-app/src/features/app/blocks/db-connection/Panel.tsx b/apps/nextjs-app/src/features/app/blocks/db-connection/Panel.tsx index 030ebf2ab..3caae2a8c 100644 --- a/apps/nextjs-app/src/features/app/blocks/db-connection/Panel.tsx +++ b/apps/nextjs-app/src/features/app/blocks/db-connection/Panel.tsx @@ -168,7 +168,7 @@ export const DbConnectionPanel = ({ className }: { className?: string }) => { {t('table:connection.description')} - {permissions['base|create'] ? : t('table:connection.noPermission')} + {permissions['base|db_connection'] ? : t('table:connection.noPermission')} ); diff --git a/packages/common-i18n/src/locales/en/sdk.json b/packages/common-i18n/src/locales/en/sdk.json index 26d176cf8..9954e02b8 100644 --- a/packages/common-i18n/src/locales/en/sdk.json +++ b/packages/common-i18n/src/locales/en/sdk.json @@ -131,6 +131,7 @@ "baseTableImport": "Import data into base", "baseTableExport": "Export data from base", "baseAuthorityMatrixConfig": "Configure authority matrix", + "baseDbConnect": "Connect to database", "tableCreate": "Create table", "tableRead": "Read table", "tableDelete": "Delete table", diff --git a/packages/common-i18n/src/locales/zh/sdk.json b/packages/common-i18n/src/locales/zh/sdk.json index 37962ed13..0243096fb 100644 --- a/packages/common-i18n/src/locales/zh/sdk.json +++ b/packages/common-i18n/src/locales/zh/sdk.json @@ -122,6 +122,7 @@ "baseTableImport": "导入到数据库", "baseTableExport": "导出数据库", "baseAuthorityMatrixConfig": "配置权限矩阵", + "baseDbConnect": "连接数据库", "tableCreate": "创建表格", "tableRead": "查看表格", "tableDelete": "删除表格", diff --git a/packages/core/src/auth/actions.ts b/packages/core/src/auth/actions.ts index 81295a3dc..a8d5faaf2 100644 --- a/packages/core/src/auth/actions.ts +++ b/packages/core/src/auth/actions.ts @@ -20,7 +20,14 @@ export const spaceActionsSchema = defaultActionsSchema.or( export type SpaceActions = `${ActionPrefix.Space}|${z.infer}`; export const baseActionsSchema = defaultActionsSchema.or( - z.enum(['invite_email', 'invite_link', 'table_import', 'table_export', 'authority_matrix_config']) + z.enum([ + 'invite_email', + 'invite_link', + 'table_import', + 'table_export', + 'authority_matrix_config', + 'db_connection', + ]) ); export type BaseActions = `${ActionPrefix.Base}|${z.infer}`; @@ -74,6 +81,8 @@ export const actionPrefixMap: ActionPrefixMap = { 'base|update', 'base|table_import', 'base|table_export', + 'base|db_connection', + 'base|authority_matrix_config', ], [ActionPrefix.Table]: ['table|create', 'table|delete', 'table|read', 'table|update'], [ActionPrefix.View]: ['view|create', 'view|delete', 'view|read', 'view|update'], diff --git a/packages/core/src/auth/role/base.role.ts b/packages/core/src/auth/role/base.role.ts index 10d13b689..0056dcc0c 100644 --- a/packages/core/src/auth/role/base.role.ts +++ b/packages/core/src/auth/role/base.role.ts @@ -41,6 +41,7 @@ export const basePermissions: Record< 'base|table_import': true, 'base|table_export': true, 'base|authority_matrix_config': true, + 'base|db_connection': true, 'table|create': true, 'table|delete': true, 'table|read': true, @@ -75,6 +76,7 @@ export const basePermissions: Record< 'base|table_import': true, 'base|table_export': true, 'base|authority_matrix_config': false, + 'base|db_connection': false, 'table|create': true, 'table|delete': true, 'table|read': true, @@ -109,6 +111,7 @@ export const basePermissions: Record< 'base|table_import': true, 'base|table_export': true, 'base|authority_matrix_config': false, + 'base|db_connection': false, 'table|create': false, 'table|read': true, 'table|delete': false, @@ -143,6 +146,7 @@ export const basePermissions: Record< 'base|table_import': false, 'base|table_export': true, 'base|authority_matrix_config': false, + 'base|db_connection': false, 'table|create': false, 'table|delete': false, 'table|read': true, @@ -177,6 +181,7 @@ export const basePermissions: Record< 'base|table_import': false, 'base|table_export': false, 'base|authority_matrix_config': false, + 'base|db_connection': false, 'table|create': false, 'table|delete': false, 'table|read': true, diff --git a/packages/core/src/auth/role/space.role.ts b/packages/core/src/auth/role/space.role.ts index d364d471c..8300494b9 100644 --- a/packages/core/src/auth/role/space.role.ts +++ b/packages/core/src/auth/role/space.role.ts @@ -32,6 +32,7 @@ export const spacePermissions: Record