mirror of https://github.com/jumpserver/jumpserver
94 lines
2.3 KiB
Python
94 lines
2.3 KiB
Python
from django.utils.translation import gettext_lazy as _
|
|
|
|
from orgs.models import Organization
|
|
from .base import BaseType
|
|
|
|
|
|
class GPTTypes(BaseType):
|
|
CHATGPT = 'chatgpt', _('ChatGPT')
|
|
|
|
@classmethod
|
|
def _get_base_constrains(cls) -> dict:
|
|
return {
|
|
'*': {
|
|
'charset_enabled': False,
|
|
'gateway_enabled': False,
|
|
'su_enabled': False,
|
|
}
|
|
}
|
|
|
|
@classmethod
|
|
def _get_automation_constrains(cls) -> dict:
|
|
constrains = {
|
|
'*': {
|
|
'ansible_enabled': False,
|
|
'ping_enabled': False,
|
|
'gather_facts_enabled': False,
|
|
'verify_account_enabled': False,
|
|
'change_secret_enabled': False,
|
|
'push_account_enabled': False,
|
|
'gather_accounts_enabled': False,
|
|
}
|
|
}
|
|
return constrains
|
|
|
|
@classmethod
|
|
def _get_protocol_constrains(cls) -> dict:
|
|
return {
|
|
'*': {
|
|
'choices': '__self__',
|
|
}
|
|
}
|
|
|
|
@classmethod
|
|
def internal_platforms(cls):
|
|
return {
|
|
cls.CHATGPT: [
|
|
{'name': 'ChatGPT'}
|
|
],
|
|
}
|
|
|
|
@classmethod
|
|
def get_community_types(cls):
|
|
return [
|
|
cls.CHATGPT,
|
|
]
|
|
|
|
|
|
CHATX_NAME = 'ChatX'
|
|
|
|
|
|
def create_or_update_chatx_resources(chatx_name=CHATX_NAME, org_id=Organization.SYSTEM_ID):
|
|
from django.apps import apps
|
|
|
|
platform_model = apps.get_model('assets', 'Platform')
|
|
asset_model = apps.get_model('assets', 'Asset')
|
|
account_model = apps.get_model('accounts', 'Account')
|
|
|
|
platform, __ = platform_model.objects.get_or_create(
|
|
name=chatx_name,
|
|
defaults={
|
|
'internal': True,
|
|
'type': chatx_name,
|
|
'category': 'ai',
|
|
}
|
|
)
|
|
asset, __ = asset_model.objects.get_or_create(
|
|
address=chatx_name,
|
|
defaults={
|
|
'name': chatx_name,
|
|
'platform': platform,
|
|
'org_id': org_id
|
|
}
|
|
)
|
|
|
|
account, __ = account_model.objects.get_or_create(
|
|
username=chatx_name,
|
|
defaults={
|
|
'name': chatx_name,
|
|
'asset': asset,
|
|
'org_id': org_id
|
|
}
|
|
)
|
|
return asset, account
|