##// END OF EJS Templates
api: use consistent way to extract users, repos, repo groups and user groups by id or name....
api: use consistent way to extract users, repos, repo groups and user groups by id or name. - makes usage of Number vs String to differenciate if we pick objec ID or it's name this will allow easy fetching of objects by either id or it's name, including numeric string name - fixes #5230

File last commit:

r1153:0f1be4aa default
r1530:1efcb4ee 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)