mirror of
https://github.com/peeringdb/peeringdb.git
synced 2024-05-11 05:55:09 +00:00
Support 202203 (#1144)
* Do not show objects in status "pending" on the UI #784 * Fix peeringdb.js bug introduced in #784 * 500 Error during login for 2FA enabled accounts with unverified email address #996 * Django-Admin: adding a network with existing asn fails with internal error #1035 * Some command-line-tool executions are not logged #1119 * Ops: API throttling of repeated requests #1126 * Ops: response header X-Auth-ID to augment logging #1120 * Allow rate-limiting of melissa enabled api functionality. #1124 * State / Province normalization #1079 * Log melissa requests #1122 * remove debug messages * bump django-handleref to 1.0.2 * Need consolidated app logs #845 * pin django peeringdb to 2.13 and relock poetry * pin django-restframework-apikey to 2.1.0 * linting * migrations * docs regenerate * docs * linting Co-authored-by: David Poarch <dpoarch@20c.com> Co-authored-by: Stefan Pratter <stefan@20c.com>
This commit is contained in:
@@ -312,3 +312,62 @@ def validate_irr_as_set(value):
|
||||
validated.append(item)
|
||||
|
||||
return " ".join(validated)
|
||||
|
||||
|
||||
def validate_bool(value):
|
||||
"""
|
||||
Validates a boolean value
|
||||
|
||||
This can be passed a string for `True` or `False` or an integer as 1, 0 as well
|
||||
to convert and return a boolean value
|
||||
|
||||
Will raise ValidationError on failure.
|
||||
|
||||
Arguments:
|
||||
|
||||
- value (`str`|`int`|`bool`)
|
||||
|
||||
Returns:
|
||||
|
||||
- validated value (`bool`)
|
||||
"""
|
||||
try:
|
||||
if isinstance(value, bool):
|
||||
return value
|
||||
if isinstance(value, str):
|
||||
if value.lower() == "true":
|
||||
return True
|
||||
if value.lower() == "false":
|
||||
return False
|
||||
return bool(int(value))
|
||||
except TypeError:
|
||||
raise ValidationError(_("Needs to be 'True', 'False', 1 or 0"))
|
||||
|
||||
|
||||
def validate_api_rate(value):
|
||||
"""
|
||||
Validates a number/time-unit format used to determine rate limits
|
||||
|
||||
e.g., 10/second or 100/minute
|
||||
|
||||
Will raise a ValidationError on failure
|
||||
|
||||
Arguments:
|
||||
|
||||
- value(`str`)
|
||||
|
||||
Returns:
|
||||
|
||||
- validated value (`str`)
|
||||
"""
|
||||
|
||||
value = str(value)
|
||||
if re.match(r"([/\d]+)\s*(?:minute|hour|seconds|day|week|month|year)", value):
|
||||
return value
|
||||
else:
|
||||
print(value)
|
||||
raise ValidationError(
|
||||
_(
|
||||
"Invalid setting! Acceptable value is a number followed by one of the following: minute, hour, seconds, day, week, month, year. eg (10/minute, 1/hour, 5/day, 1/week, 1/month, 1/year)"
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user