validate upstream in form
This commit is contained in:
parent
f33e553cfd
commit
81ac951872
|
@ -1,4 +1,5 @@
|
||||||
"""passbook Application Security Gateway Forms"""
|
"""passbook Application Security Gateway Forms"""
|
||||||
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib.admin.widgets import FilteredSelectMultiple
|
from django.contrib.admin.widgets import FilteredSelectMultiple
|
||||||
|
@ -19,9 +20,18 @@ class ApplicationGatewayProviderForm(forms.ModelForm):
|
||||||
if ApplicationGatewayProvider.objects \
|
if ApplicationGatewayProvider.objects \
|
||||||
.filter(server_name__overlap=current) \
|
.filter(server_name__overlap=current) \
|
||||||
.exclude(pk=self.instance.pk).exists():
|
.exclude(pk=self.instance.pk).exists():
|
||||||
raise ValidationError("Server Name already in use.")
|
raise ValidationError(_("Server Name already in use."))
|
||||||
return current
|
return current
|
||||||
|
|
||||||
|
def clean_upstream(self):
|
||||||
|
"""Check that upstream begins with http(s)"""
|
||||||
|
for upstream in self.cleaned_data.get('upstream'):
|
||||||
|
_parsed_url = urlparse(upstream)
|
||||||
|
|
||||||
|
if _parsed_url.scheme not in ('http', 'https'):
|
||||||
|
raise ValidationError(_("URL Scheme must be either http or https"))
|
||||||
|
return self.cleaned_data.get('upstream')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
||||||
model = ApplicationGatewayProvider
|
model = ApplicationGatewayProvider
|
||||||
|
|
Reference in a new issue