1
0
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:
Matt Griswold
2022-04-12 16:39:19 -04:00
committed by GitHub
parent 7f48bbc7e7
commit 505760aa8d
70 changed files with 2295 additions and 446 deletions

View File

@@ -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)"
)
)