feat: add file_count_limit to knowledge model and create KnowledgeWorkspaceAuthorization model

This commit is contained in:
CaptainB 2025-06-06 11:46:12 +08:00
parent b17cf3fea8
commit fc11fcf0e1
3 changed files with 46 additions and 0 deletions

View File

@ -718,6 +718,22 @@ class PermissionConstants(Enum):
group=Group.TOOL, operate=Operate.DEBUG, role_list=[RoleConstants.ADMIN],
parent_group=[SystemGroup.SHARED_TOOL]
)
SHARED_KNOWLEDGE_READ = Permission(
group=Group.KNOWLEDGE, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
)
SHARED_KNOWLEDGE_CREATE = Permission(
group=Group.KNOWLEDGE, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
)
SHARED_KNOWLEDGE_EDIT = Permission(
group=Group.KNOWLEDGE, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
)
SHARED_KNOWLEDGE_DELETE = Permission(
group=Group.KNOWLEDGE, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
)
def get_workspace_application_permission(self):
return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,

View File

@ -0,0 +1,29 @@
# Generated by Django 5.2.1 on 2025-06-06 03:59
import knowledge.models.knowledge
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('knowledge', '0002_alter_document_status_alter_file_source_type_and_more'),
]
operations = [
migrations.AddField(
model_name='knowledge',
name='file_count_limit',
field=models.IntegerField(default=50, verbose_name='文件数量限制'),
),
migrations.AlterField(
model_name='document',
name='status',
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
),
migrations.AlterField(
model_name='paragraph',
name='status',
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
),
]

View File

@ -131,6 +131,7 @@ class Knowledge(AppModelMixin):
embedding_model = models.ForeignKey(Model, on_delete=models.DO_NOTHING, verbose_name="向量模型",
default=default_model)
file_size_limit = models.IntegerField(verbose_name="文件大小限制", default=100)
file_count_limit = models.IntegerField(verbose_name="文件数量限制", default=50)
meta = models.JSONField(verbose_name="元数据", default=dict)
class Meta: