##// END OF EJS Templates
api: get_repos allows now to filter by root locations, and optionally traverse the returned data....
api: get_repos allows now to filter by root locations, and optionally traverse the returned data. Fixes #5146

File last commit:

r1153:0f1be4aa default
r1267:b965be9c default
Show More
validators.py
48 lines | 1.3 KiB | text/x-python | PythonLexer
gists: use colander schema to validate input data....
r523 import os
dan
reviewers: add repo review rule models and expose default...
r821 import re
gists: use colander schema to validate input data....
r523
import ipaddress
import colander
from rhodecode.translation import _
dan
reviewers: add repo review rule models and expose default...
r821 from rhodecode.lib.utils2 import glob2re
gists: use colander schema to validate input data....
r523
def ip_addr_validator(node, value):
try:
# this raises an ValueError if address is not IpV4 or IpV6
ipaddress.ip_network(value, strict=False)
except ValueError:
msg = _(u'Please enter a valid IPv4 or IpV6 address')
raise colander.Invalid(node, msg)
dan
reviewers: add repo review rule models and expose default...
r821
validation-schema: added StringBoolean type and IPAddr validator.
r1149 class IpAddrValidator(object):
def __init__(self, strict=True):
self.strict = strict
def __call__(self, node, value):
try:
# this raises an ValueError if address is not IpV4 or IpV6
ipaddress.ip_network(value, strict=self.strict)
except ValueError:
msg = _(u'Please enter a valid IPv4 or IpV6 address')
raise colander.Invalid(node, msg)
dan
reviewers: add repo review rule models and expose default...
r821 def glob_validator(node, value):
try:
re.compile('^' + glob2re(value) + '$')
except Exception:
msg = _(u'Invalid glob pattern')
raise colander.Invalid(node, msg)
repo-schemas: refactor repository schemas and use it in API update/create functions....
r1153
def valid_name_validator(node, value):
from rhodecode.model.validation_schema import types
if value is types.RootLocation:
return
msg = _('Name must start with a letter or number. Got `{}`').format(value)
if not re.match(r'^[a-zA-z0-9]{1,}', value):
raise colander.Invalid(node, msg)