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

@ -2,22 +2,21 @@ SELECT *
FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
"temp_knowledge".desc,
"temp_knowledge".type,
'knowledge' as resource_type,
'knowledge' as resource_type,
"temp_knowledge".workspace_id,
"temp_knowledge".folder_id,
"temp_knowledge".user_id,
"user"."nick_name" as nick_name,
"temp_knowledge".create_time,
"temp_knowledge".update_time,
"temp_knowledge".file_size_limit,
"temp_knowledge".file_count_limit,
"temp_knowledge"."scope",
"temp_knowledge"."embedding_model_id"::text,
"document_temp"."char_length",
to_json("temp_knowledge".meta)::jsonb as meta,
CASE
WHEN
"app_knowledge_temp"."count" IS NULL THEN 0
ELSE "app_knowledge_temp"."count" END AS application_mapping_count,
"temp_knowledge"."embedding_model_id"::text, "document_temp"."char_length",
to_json("temp_knowledge".meta)::jsonb as meta, CASE
WHEN
"app_knowledge_temp"."count" IS NULL THEN 0
ELSE "app_knowledge_temp"."count" END AS application_mapping_count,
"document_temp".document_count
FROM (SELECT knowledge.*
FROM knowledge knowledge ${knowledge_custom_sql}) temp_knowledge
@ -28,24 +27,27 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
FROM application_knowledge_mapping
GROUP BY knowledge_id) app_knowledge_temp
ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id
left join "user" on "user".id = temp_knowledge.user_id
UNION
SELECT "id",
"name",
"desc",
0 as "type",
'folder' as "resource_type",
"workspace_id",
"parent_id" as "folder_id",
"user_id",
"create_time",
"update_time",
0 as file_size_limit,
0 as file_count_limit,
'WORKSPACE' as "scope",
'' as "embedding_model_id",
SELECT knowledge_folder."id",
knowledge_folder."name",
knowledge_folder."desc",
0 as "type",
'folder' as "resource_type",
knowledge_folder."workspace_id",
knowledge_folder."parent_id" as "folder_id",
knowledge_folder."user_id",
"user"."nick_name" as "nick_name",
knowledge_folder."create_time",
knowledge_folder."update_time",
0 as file_size_limit,
0 as file_count_limit,
'WORKSPACE' as "scope",
'' as "embedding_model_id",
0 as char_length,
'{}'::jsonb as meta,
0 as application_mapping_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}

View File

@ -6,6 +6,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
"temp_knowledge".workspace_id,
"temp_knowledge".folder_id,
"temp_knowledge".user_id,
"user"."nick_name" as nick_name,
"temp_knowledge".create_time,
"temp_knowledge".update_time,
"temp_knowledge".file_size_limit,
@ -30,22 +31,25 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
FROM application_knowledge_mapping
GROUP BY knowledge_id) app_knowledge_temp
ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id
left join "user" on "user".id = temp_knowledge.user_id
UNION
SELECT "id",
"name",
"desc",
0 as "type",
'folder' as "resource_type",
"workspace_id",
"parent_id" as "folder_id",
"user_id",
"create_time",
"update_time",
0 as file_size_limit,
0 as file_count_limit,
'WORKSPACE' as "scope",
SELECT knowledge_folder."id",
knowledge_folder."name",
knowledge_folder."desc",
0 as "type",
'folder' as "resource_type",
knowledge_folder."workspace_id",
knowledge_folder."parent_id" as "folder_id",
knowledge_folder."user_id",
"user".nick_name as "nick_name",
knowledge_folder."create_time",
knowledge_folder."update_time",
0 as file_size_limit,
0 as file_count_limit,
'WORKSPACE' as "scope",
0 as char_length,
0 as application_mapping_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}

View File

@ -6,6 +6,7 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
"temp_knowledge".workspace_id,
"temp_knowledge".folder_id,
"temp_knowledge".user_id,
"user"."nick_name" as nick_name,
"temp_knowledge".create_time,
"temp_knowledge".update_time,
"temp_knowledge".file_size_limit,
@ -39,22 +40,25 @@ FROM (SELECT "temp_knowledge".id::text, "temp_knowledge".name,
FROM application_knowledge_mapping
GROUP BY knowledge_id) app_knowledge_temp
ON temp_knowledge."id" = "app_knowledge_temp".knowledge_id
left join "user" on "user".id = temp_knowledge.user_id
UNION
SELECT "id",
"name",
"desc",
0 as "type",
'folder' as "resource_type",
"workspace_id",
"parent_id" as "folder_id",
"user_id",
"create_time",
"update_time",
0 as file_size_limit,
0 as file_count_limit,
'WORKSPACE' as "scope",
SELECT knowledge_folder."id",
knowledge_folder."name",
knowledge_folder."desc",
0 as "type",
'folder' as "resource_type",
knowledge_folder."workspace_id",
knowledge_folder."parent_id" as "folder_id",
knowledge_folder."user_id",
"user".nick_name as "nick_name",
knowledge_folder."create_time",
knowledge_folder."update_time",
0 as file_size_limit,
0 as file_count_limit,
'WORKSPACE' as "scope",
0 as char_length,
0 as application_mapping_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}

View File

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

View File

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

View File

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