From 1cba714b001c9f046d4907dc32184bc2813316ea Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Mon, 23 Sep 2019 16:37:08 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E8=B5=84=E4=BA=A7=E4=B8=BB=E6=9C=BA?= =?UTF-8?q?=E5=90=8D=E6=8F=90=E7=A4=BA=E3=80=81=E9=99=90=E5=88=B6=E4=B8=8D?= =?UTF-8?q?=E8=A2=AB=E5=85=81=E8=AE=B8=E7=9A=84=E7=89=B9=E6=AE=8A=E5=AD=97?= =?UTF-8?q?=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/forms/asset.py | 2 ++ apps/assets/serializers/asset.py | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/apps/assets/forms/asset.py b/apps/assets/forms/asset.py index 69e64ceaf..c8afa6306 100644 --- a/apps/assets/forms/asset.py +++ b/apps/assets/forms/asset.py @@ -68,6 +68,8 @@ class AssetCreateForm(OrgModelForm): 'nodes': _("Node"), } help_texts = { + 'hostname': _('Only Numbers, letters, and characters ( {} ) ' + 'are allowed').format(" ".join(['.', '_', '@'])), 'admin_user': _( 'root or other NOPASSWD sudo privilege user existed in asset,' 'If asset is windows or other set any one, more see admin user left menu' diff --git a/apps/assets/serializers/asset.py b/apps/assets/serializers/asset.py index f67521c3d..f9f099ba8 100644 --- a/apps/assets/serializers/asset.py +++ b/apps/assets/serializers/asset.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # +import re from rest_framework import serializers from django.db.models import Prefetch from django.utils.translation import ugettext_lazy as _ @@ -91,6 +92,15 @@ class AssetSerializer(BulkOrgResourceModelSerializer): 'org_name': {'label': _('Org name')} } + @staticmethod + def validate_hostname(hostname): + pattern = r"^[\._@a-zA-Z0-9-]+$" + res = re.match(pattern, hostname) + if res is None: + msg = _("* The hostname contains characters that are not allowed") + raise serializers.ValidationError(msg) + return hostname + @classmethod def setup_eager_loading(cls, queryset): """ Perform necessary eager loading of data. """