feat: add authentication fields to ApplicationAccessToken and update related serializers
This commit is contained in:
parent
939da5b94b
commit
b3698b30ca
@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 5.2.3 on 2025-07-14 09:55
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('application', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='applicationaccesstoken',
|
||||||
|
name='authentication',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='是否需要认证'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='applicationaccesstoken',
|
||||||
|
name='authentication_value',
|
||||||
|
field=models.JSONField(default=dict, verbose_name='认证的值'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -27,6 +27,8 @@ class ApplicationAccessToken(AppModelMixin):
|
|||||||
, default=list)
|
, default=list)
|
||||||
show_source = models.BooleanField(default=False, verbose_name="是否显示知识来源")
|
show_source = models.BooleanField(default=False, verbose_name="是否显示知识来源")
|
||||||
show_exec = models.BooleanField(default=False, verbose_name="是否显示执行详情")
|
show_exec = models.BooleanField(default=False, verbose_name="是否显示执行详情")
|
||||||
|
authentication = models.BooleanField(default=False, verbose_name="是否需要认证")
|
||||||
|
authentication_value = models.JSONField(verbose_name="认证的值", default=dict)
|
||||||
|
|
||||||
language = models.CharField(max_length=10, verbose_name="语言", default=None, null=True)
|
language = models.CharField(max_length=10, verbose_name="语言", default=None, null=True)
|
||||||
|
|
||||||
|
|||||||
@ -79,18 +79,16 @@ class AccessTokenSerializer(serializers.Serializer):
|
|||||||
application_access_token.language = instance.get('language')
|
application_access_token.language = instance.get('language')
|
||||||
if 'language' not in instance or instance.get('language') is None:
|
if 'language' not in instance or instance.get('language') is None:
|
||||||
application_access_token.language = None
|
application_access_token.language = None
|
||||||
|
|
||||||
application_access_token.save()
|
application_access_token.save()
|
||||||
application_setting_model = DatabaseModelManage.get_model('application_setting')
|
|
||||||
license_is_valid = cache.get(Cache_Version.SYSTEM.get_key(key='license_is_valid'),
|
license_is_valid = cache.get(Cache_Version.SYSTEM.get_key(key='license_is_valid'),
|
||||||
version=Cache_Version.SYSTEM.get_version())
|
version=Cache_Version.SYSTEM.get_version())
|
||||||
if application_setting_model is not None and license_is_valid:
|
if license_is_valid:
|
||||||
application_setting, _ = application_setting_model.objects.get_or_create(
|
if instance.get('authentication') is not None and instance.get(
|
||||||
application_id=self.data.get('application_id'))
|
|
||||||
if application_setting is not None and instance.get('authentication') is not None and instance.get(
|
|
||||||
'authentication_value') is not None:
|
'authentication_value') is not None:
|
||||||
application_setting.authentication = instance.get('authentication')
|
application_access_token.authentication = instance.get('authentication')
|
||||||
application_setting.authentication_value = instance.get('authentication_value')
|
application_access_token.authentication_value = instance.get('authentication_value')
|
||||||
application_setting.save()
|
application_access_token.save()
|
||||||
return self.one(with_valid=False)
|
return self.one(with_valid=False)
|
||||||
|
|
||||||
def one(self, with_valid=True):
|
def one(self, with_valid=True):
|
||||||
@ -105,14 +103,12 @@ class AccessTokenSerializer(serializers.Serializer):
|
|||||||
str(uuid.uuid7()).encode()).hexdigest()[
|
str(uuid.uuid7()).encode()).hexdigest()[
|
||||||
8:24], is_active=True)
|
8:24], is_active=True)
|
||||||
application_access_token.save()
|
application_access_token.save()
|
||||||
application_setting_model = DatabaseModelManage.get_model('application_setting')
|
|
||||||
other = {}
|
other = {}
|
||||||
if application_setting_model is not None:
|
license_is_valid = cache.get(Cache_Version.SYSTEM.get_key(key='license_is_valid'),
|
||||||
application_setting, _ = application_setting_model.objects.get_or_create(
|
version=Cache_Version.SYSTEM.get_version())
|
||||||
application_id=self.data.get('application_id'))
|
if license_is_valid:
|
||||||
if application_setting is not None:
|
other = {'authentication': application_access_token.authentication,
|
||||||
other = {'authentication': application_setting.authentication,
|
'authentication_value': application_access_token.authentication_value}
|
||||||
'authentication_value': application_setting.authentication_value}
|
|
||||||
|
|
||||||
return {'application_id': application_access_token.application_id,
|
return {'application_id': application_access_token.application_id,
|
||||||
'access_token': application_access_token.access_token,
|
'access_token': application_access_token.access_token,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user