refactor: enhance workspace authorization handling in shared knowledge, model, and tool

This commit is contained in:
CaptainB 2025-06-18 17:47:39 +08:00
parent 0af7da36a1
commit c1ca6eafe6
6 changed files with 95 additions and 81 deletions

View File

@ -6,15 +6,14 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
"temp_knowledge".workspace_id, "temp_knowledge".workspace_id,
"temp_knowledge".folder_id, "temp_knowledge".folder_id,
"temp_knowledge".user_id, "temp_knowledge".user_id,
"user"."nick_name" as nick_name,
"temp_knowledge".create_time, "temp_knowledge".create_time,
"temp_knowledge".update_time, "temp_knowledge".update_time,
"temp_knowledge".file_size_limit, "temp_knowledge".file_size_limit,
"temp_knowledge".file_count_limit, "temp_knowledge".file_count_limit,
"temp_knowledge"."scope", "temp_knowledge"."scope",
"temp_knowledge"."embedding_model_id"::text, "temp_knowledge"."embedding_model_id"::text, "document_temp"."char_length",
"document_temp"."char_length", to_json("temp_knowledge".meta)::jsonb as meta, CASE
to_json("temp_knowledge".meta)::jsonb as meta,
CASE
WHEN WHEN
"app_knowledge_temp"."count" IS NULL THEN 0 "app_knowledge_temp"."count" IS NULL THEN 0
ELSE "app_knowledge_temp"."count" END AS application_mapping_count, ELSE "app_knowledge_temp"."count" END AS application_mapping_count,
@ -28,17 +27,19 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
FROM application_knowledge_mapping FROM application_knowledge_mapping
GROUP BY knowledge_id) app_knowledge_temp GROUP BY knowledge_id) app_knowledge_temp
ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id
left join "user" on "user".id = temp_knowledge.user_id
UNION UNION
SELECT "id", SELECT knowledge_folder."id",
"name", knowledge_folder."name",
"desc", knowledge_folder."desc",
0 as "type", 0 as "type",
'folder' as "resource_type", 'folder' as "resource_type",
"workspace_id", knowledge_folder."workspace_id",
"parent_id" as "folder_id", knowledge_folder."parent_id" as "folder_id",
"user_id", knowledge_folder."user_id",
"create_time", "user"."nick_name" as "nick_name",
"update_time", knowledge_folder."create_time",
knowledge_folder."update_time",
0 as file_size_limit, 0 as file_size_limit,
0 as file_count_limit, 0 as file_count_limit,
'WORKSPACE' as "scope", 'WORKSPACE' as "scope",
@ -47,5 +48,6 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
'{}'::jsonb as meta, '{}'::jsonb as meta,
0 as application_mapping_count, 0 as application_mapping_count,
0 as document_count 0 as document_count
from knowledge_folder ${folder_query_set}) temp from knowledge_folder left join "user"
on "user".id = user_id ${folder_query_set}) temp
${default_sql} ${default_sql}

View File

@ -6,6 +6,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
"temp_knowledge".workspace_id, "temp_knowledge".workspace_id,
"temp_knowledge".folder_id, "temp_knowledge".folder_id,
"temp_knowledge".user_id, "temp_knowledge".user_id,
"user"."nick_name" as nick_name,
"temp_knowledge".create_time, "temp_knowledge".create_time,
"temp_knowledge".update_time, "temp_knowledge".update_time,
"temp_knowledge".file_size_limit, "temp_knowledge".file_size_limit,
@ -30,22 +31,25 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
FROM application_knowledge_mapping FROM application_knowledge_mapping
GROUP BY knowledge_id) app_knowledge_temp GROUP BY knowledge_id) app_knowledge_temp
ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id
left join "user" on "user".id = temp_knowledge.user_id
UNION UNION
SELECT "id", SELECT knowledge_folder."id",
"name", knowledge_folder."name",
"desc", knowledge_folder."desc",
0 as "type", 0 as "type",
'folder' as "resource_type", 'folder' as "resource_type",
"workspace_id", knowledge_folder."workspace_id",
"parent_id" as "folder_id", knowledge_folder."parent_id" as "folder_id",
"user_id", knowledge_folder."user_id",
"create_time", "user".nick_name as "nick_name",
"update_time", knowledge_folder."create_time",
knowledge_folder."update_time",
0 as file_size_limit, 0 as file_size_limit,
0 as file_count_limit, 0 as file_count_limit,
'WORKSPACE' as "scope", 'WORKSPACE' as "scope",
0 as char_length, 0 as char_length,
0 as application_mapping_count, 0 as application_mapping_count,
0 as document_count 0 as document_count
from knowledge_folder ${folder_query_set}) temp from knowledge_folder left join "user"
on "user".id = user_id ${folder_query_set}) temp
${default_sql} ${default_sql}

View File

@ -6,6 +6,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
"temp_knowledge".workspace_id, "temp_knowledge".workspace_id,
"temp_knowledge".folder_id, "temp_knowledge".folder_id,
"temp_knowledge".user_id, "temp_knowledge".user_id,
"user"."nick_name" as nick_name,
"temp_knowledge".create_time, "temp_knowledge".create_time,
"temp_knowledge".update_time, "temp_knowledge".update_time,
"temp_knowledge".file_size_limit, "temp_knowledge".file_size_limit,
@ -39,22 +40,25 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
FROM application_knowledge_mapping FROM application_knowledge_mapping
GROUP BY knowledge_id) app_knowledge_temp GROUP BY knowledge_id) app_knowledge_temp
ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id
left join "user" on "user".id = temp_knowledge.user_id
UNION UNION
SELECT "id", SELECT knowledge_folder."id",
"name", knowledge_folder."name",
"desc", knowledge_folder."desc",
0 as "type", 0 as "type",
'folder' as "resource_type", 'folder' as "resource_type",
"workspace_id", knowledge_folder."workspace_id",
"parent_id" as "folder_id", knowledge_folder."parent_id" as "folder_id",
"user_id", knowledge_folder."user_id",
"create_time", "user".nick_name as "nick_name",
"update_time", knowledge_folder."create_time",
knowledge_folder."update_time",
0 as file_size_limit, 0 as file_size_limit,
0 as file_count_limit, 0 as file_count_limit,
'WORKSPACE' as "scope", 'WORKSPACE' as "scope",
0 as char_length, 0 as char_length,
0 as application_mapping_count, 0 as application_mapping_count,
0 as document_count 0 as document_count
from knowledge_folder ${folder_query_set}) temp from knowledge_folder left join "user"
on "user".id = user_id ${folder_query_set}) temp
${default_sql} ${default_sql}

View File

@ -1,29 +1,33 @@
select * select *
from (select "id"::text, from (select tool."id"::text,
"name", tool."name",
"desc", tool."desc",
"tool_type", tool."tool_type",
'tool' as "resource_type", 'tool' as "resource_type",
"workspace_id", tool."workspace_id",
"folder_id", tool."folder_id",
"user_id", tool."user_id",
"icon", "user".nick_name as "nick_name",
"create_time", tool."icon",
"update_time", tool."create_time",
"is_active" tool."update_time",
from tool ${tool_scope_query_set} tool."is_active"
from tool
left join "user" on "user".id = user_id ${tool_scope_query_set}
UNION UNION
select "id", select tool_folder."id",
"name", tool_folder."name",
"desc", tool_folder."desc",
'folder' as "tool_type", 'folder' as "tool_type",
'folder' as "resource_type", 'folder' as "resource_type",
"workspace_id", tool_folder."workspace_id",
"parent_id" as "folder_id", tool_folder."parent_id" as "folder_id",
"user_id", tool_folder."user_id",
"user".nick_name as "nick_name",
'' as "icon", '' as "icon",
"create_time", tool_folder."create_time",
"update_time", tool_folder."update_time",
'true' as "is_active" 'true' as "is_active"
from tool_folder ${folder_query_set}) temp from tool_folder
left join "user" on "user".id = user_id ${folder_query_set}) temp
${tool_query_set} ${tool_query_set}

View File

@ -179,7 +179,7 @@
</template> </template>
<template #subTitle> <template #subTitle>
<el-text class="color-secondary lighter" size="small"> <el-text class="color-secondary lighter" size="small">
{{ $t('common.creator') }}: {{ item.username }} {{ $t('common.creator') }}: {{ item.nick_name }}
</el-text> </el-text>
</template> </template>
</CardBox> </CardBox>
@ -199,7 +199,7 @@
</template> </template>
<template #subTitle> <template #subTitle>
<el-text class="color-secondary" size="small"> <el-text class="color-secondary" size="small">
{{ $t('common.creator') }}: {{ item.username }} {{ $t('common.creator') }}: {{ item.nick_name }}
</el-text> </el-text>
</template> </template>

View File

@ -125,7 +125,7 @@
</template> </template>
<template #subTitle> <template #subTitle>
<el-text class="color-secondary lighter" size="small"> <el-text class="color-secondary lighter" size="small">
{{ $t('common.creator') }}: {{ item.username }} {{ $t('common.creator') }}: {{ item.nick_name }}
</el-text> </el-text>
</template> </template>
</CardBox> </CardBox>
@ -148,7 +148,7 @@
</template> </template>
<template #subTitle> <template #subTitle>
<el-text class="color-secondary lighter" size="small"> <el-text class="color-secondary lighter" size="small">
{{ $t('common.creator') }}: {{ item.username }} {{ $t('common.creator') }}: {{ item.nick_name }}
</el-text> </el-text>
</template> </template>