diff --git a/apps/accounts/backends/__init__.py b/apps/accounts/backends/__init__.py index 9bfd63dfb..1b12e6be8 100644 --- a/apps/accounts/backends/__init__.py +++ b/apps/accounts/backends/__init__.py @@ -1,7 +1,7 @@ -import os -from django.utils.functional import LazyObject from importlib import import_module +from django.utils.functional import LazyObject + from common.utils import get_logger from ..const import VaultTypeChoices diff --git a/apps/settings/api/vault.py b/apps/settings/api/vault.py index 339b13ab3..7cbe4c39e 100644 --- a/apps/settings/api/vault.py +++ b/apps/settings/api/vault.py @@ -1,11 +1,11 @@ -from django.utils.translation import gettext_lazy as _ from django.conf import settings +from django.utils.translation import gettext_lazy as _ from rest_framework import status from rest_framework.generics import GenericAPIView from rest_framework.views import Response, APIView -from accounts.tasks.vault import sync_secret_to_vault from accounts.backends import get_vault_client +from accounts.tasks.vault import sync_secret_to_vault from settings.models import Setting from .. import serializers @@ -29,6 +29,7 @@ class VaultTestingAPI(GenericAPIView): def post(self, request): config = self.get_config(request) + config['VAULT_TYPE'] = settings.VAULT_TYPE try: client = get_vault_client(raise_exception=True, **config) ok, error = client.is_active() diff --git a/apps/settings/serializers/public.py b/apps/settings/serializers/public.py index 49ee3e1e1..7fb1308ae 100644 --- a/apps/settings/serializers/public.py +++ b/apps/settings/serializers/public.py @@ -53,6 +53,7 @@ class PrivateSettingSerializer(PublicSettingSerializer): TICKETS_ENABLED = serializers.BooleanField() CONNECTION_TOKEN_REUSABLE = serializers.BooleanField() CACHE_LOGIN_PASSWORD_ENABLED = serializers.BooleanField() + VAULT_TYPE = serializers.CharField() class ServerInfoSerializer(serializers.Serializer): diff --git a/apps/settings/serializers/vault.py b/apps/settings/serializers/vault.py index b8b94d5ca..e25c73e6c 100644 --- a/apps/settings/serializers/vault.py +++ b/apps/settings/serializers/vault.py @@ -16,8 +16,12 @@ class VaultSettingSerializer(serializers.Serializer): max_length=256, allow_blank=True, required=False, label=_('Host') ) VAULT_HCP_TOKEN = EncryptedField( - max_length=256, allow_blank=True, required=False, label=_('Token') + max_length=256, allow_blank=True, required=False, label=_('Token'), default='' ) VAULT_HCP_MOUNT_POINT = serializers.CharField( max_length=256, allow_blank=True, required=False, label=_('Mount Point') ) + + def validate(self, attrs): + attrs.pop('VAULT_TYPE', None) + return attrs