1
0
mirror of https://github.com/peeringdb/peeringdb.git synced 2024-05-11 05:55:09 +00:00

Route-server URL starting with ssh:// #462

This commit is contained in:
Stefan Pratter
2020-04-04 09:11:59 +00:00
parent 9f4bf32ab1
commit 9176520f10
4 changed files with 79 additions and 3 deletions

View File

@@ -3,7 +3,7 @@ import re
import reversion
from django_inet.rest import IPAddressField, IPPrefixField
from django_inet.models import URLValidator
from django.core.validators import URLValidator
from django.db.models.query import QuerySet
from django.db.models import Prefetch, Q, Sum, IntegerField, Case, When
from django.db import models, transaction, IntegrityError
@@ -320,8 +320,9 @@ class FieldMethodValidator(object):
class ExtendedURLField(serializers.URLField):
def __init__(self, **kwargs):
schemes = kwargs.pop("schemes", None)
super(ExtendedURLField, self).__init__(**kwargs)
validator = URLValidator(message=self.error_messages["invalid"])
validator = URLValidator(message=self.error_messages["invalid"], schemes=schemes)
self.validators = []
self.validators.append(validator)
@@ -1533,7 +1534,16 @@ class NetworkSerializer(ModelSerializer):
)
org = serializers.SerializerMethodField()
route_server = ExtendedURLField(required=False, allow_blank=True)
route_server = serializers.CharField(
required=False, allow_blank=True,
validators=[URLValidator(schemes=["http", "https", "telnet", "ssh"])]
)
looking_glass = serializers.CharField(
required=False, allow_blank=True,
validators=[URLValidator(schemes=["http", "https", "telnet", "ssh"])]
)
info_prefixes4 = SaneIntegerField(
allow_null=False, required=False, validators=[validate_info_prefixes4]