62 lines
4.0 KiB
Python
62 lines
4.0 KiB
Python
![]() |
# Generated by Django 5.2 on 2025-05-07 03:40
|
||
|
|
||
|
import django.db.models.deletion
|
||
|
from django.conf import settings
|
||
|
from django.db import migrations, models
|
||
|
|
||
|
|
||
|
class Migration(migrations.Migration):
|
||
|
|
||
|
initial = True
|
||
|
|
||
|
dependencies = [
|
||
|
('knowledge_base', '0001_initial'),
|
||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||
|
]
|
||
|
|
||
|
operations = [
|
||
|
migrations.CreateModel(
|
||
|
name='Permission',
|
||
|
fields=[
|
||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
('permissions', models.JSONField(default=dict, verbose_name='权限配置')),
|
||
|
('status', models.CharField(choices=[('pending', '待审批'), ('approved', '已批准'), ('rejected', '已拒绝')], default='pending', max_length=20, verbose_name='状态')),
|
||
|
('reason', models.TextField(verbose_name='申请原因')),
|
||
|
('response_message', models.TextField(blank=True, null=True, verbose_name='审批意见')),
|
||
|
('expires_at', models.DateTimeField(blank=True, null=True, verbose_name='过期时间')),
|
||
|
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||
|
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
|
||
|
('applicant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permission_applications', to=settings.AUTH_USER_MODEL, verbose_name='申请人')),
|
||
|
('approver', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='permission_approvals', to=settings.AUTH_USER_MODEL, verbose_name='审批人')),
|
||
|
('knowledge_base', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permissions', to='knowledge_base.knowledgebase', verbose_name='知识库')),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': '权限申请',
|
||
|
'verbose_name_plural': '权限申请',
|
||
|
'ordering': ['-created_at'],
|
||
|
},
|
||
|
),
|
||
|
migrations.CreateModel(
|
||
|
name='KnowledgeBasePermission',
|
||
|
fields=[
|
||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
('can_read', models.BooleanField(default=False, verbose_name='查看权限')),
|
||
|
('can_edit', models.BooleanField(default=False, verbose_name='修改权限')),
|
||
|
('can_delete', models.BooleanField(default=False, verbose_name='删除权限')),
|
||
|
('status', models.CharField(choices=[('active', '生效中'), ('expired', '已过期'), ('revoked', '已撤销')], default='active', max_length=10, verbose_name='状态')),
|
||
|
('granted_at', models.DateTimeField(auto_now_add=True, verbose_name='授权时间')),
|
||
|
('expires_at', models.DateTimeField(blank=True, null=True, verbose_name='过期时间')),
|
||
|
('granted_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='granted_permissions', to=settings.AUTH_USER_MODEL, verbose_name='授权人')),
|
||
|
('knowledge_base', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_permissions', to='knowledge_base.knowledgebase', verbose_name='知识库')),
|
||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='knowledge_base_permissions', to=settings.AUTH_USER_MODEL, verbose_name='用户')),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': '知识库权限',
|
||
|
'verbose_name_plural': '知识库权限',
|
||
|
'db_table': 'knowledge_base_permissions',
|
||
|
'indexes': [models.Index(fields=['knowledge_base', 'user', 'status'], name='knowledge_b_knowled_88e81e_idx')],
|
||
|
'unique_together': {('knowledge_base', 'user')},
|
||
|
},
|
||
|
),
|
||
|
]
|