Misago apps implement plenty of validators, some of which are considered public API. Those validators are per convention contained within validators module of their respective apps.

misago.core.validators.validate_sluggable

Callable class that validates if string can be converted to non-empty slug thats no longer than 255 characters.

To you use it, first instantiate it. If you want to define custom error messages, you can pass them using error_short and error_long arguments on initializer. After that you can simply call the class like other validator functions to see if it raises ValidationError:

from misago.core.validators import validate_sluggable
validator = validate_sluggable()
validator(some_value)

misago.users.validators

validate_email.misago.users.validators.validate_email(value, exclude=None)

Function that takes email address and runs content, availability and ban check validation in this order via calling dedicated validators. Optional exclude argument can be User instance to exclude from certain validation like uniqueness checks.

validate_email_banned.misago.users.validators.validate_email_banned(value)

Function that accepts email string as its only argument and raises Validation error if it's banned.

validate_email_content.misago.users.validators.validate_email_content(value)

Callable instance of django.core.validators.EmailValidator that checks if email address has valid structure and contents.

validate_password.misago.users.validators.validate_password(value)

Function that takes plaintext password and runs length and complexity validation in this order via calling dedicated validators.

validate_password_complexity.misago.users.validators.validate_password_complexity(value)

Validates password complexity against tests specified in password_complexity setting.

validate_password_length.misago.users.validators.validate_password_length(value)

Validates password length and raises ValidationError if specified plaintext password is shorter than password_length_min.

validate_username.misago.users.validators.validate_username(value, exclude=None)

Function that takes username and runs content, length, availability and ban check validation in this order via calling dedicated validators. Optional exclude argument can be User instance to exclude from certain validation like uniqueness checks.

validate_username_available.misago.users.validators.validate_username_available(value, exclude=None)

Function that accepts username string as its only argument and raises ValidationError if it's already taken. Optional exclude argument can be User instance to exclude from certain validation like uniqueness checks.

validate_username_banned.misago.users.validators.validate_username_banned(value)

Function that accepts username string as its only argument and raises Validation error if it's banned.

validate_username_content.misago.users.validators.validate_username_content(value)

Function that accepts username string as its only argument and raises Validation error if username contains disallowed characters (eg. those that are not matched by [0-9a-z]+ regex).

validate_username_length.misago.users.validators.validate_username_length(value)

Function that accepts username string as its only argument and raises Validation error if it's shorter than username_length_min setting or longer than username_length_max setting.