![]() |
cutelyst 5.0.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
|
Checks if the value of the input field contains a FQDN according to RFC 1035. More...
#include <Cutelyst/Plugins/Utils/validatordomain.h>
Public Types | |
enum | Diagnose : quint8 { Valid , MissingDNS , InvalidChars , LabelTooLong , TooLong , InvalidLabelCount , EmptyLabel , InvalidTLD , DashStart , DashEnd , DigitStart , DNSTimeout , DNSError } |
Possible diagnose information for the checked domain. More... | |
enum | Option { NoOption , CheckARecord , CheckAAAARecord , CheckDNS } |
Options for the domain validation. More... | |
Public Member Functions | |
ValidatorDomain (const QString &field, Options options=NoOption, const ValidatorMessages &messages={}, const QString &defValKey={}) | |
Constructs a new ValidatorDomain object with the given parameters. | |
~ValidatorDomain () override | |
![]() | |
ValidatorRule (const QString &field, const ValidatorMessages &messages={}, const QString &defValKey={}, QByteArrayView validatorName=nullptr) | |
virtual | ~ValidatorRule () |
Deconstructs the ValidatorRule. | |
Static Public Member Functions | |
static QString | diagnoseString (Context *c, Diagnose diagnose, const QString &label={}) |
static bool | validate (const QString &value, Diagnose *diagnose=nullptr, QString *extractedValue=nullptr) |
Returns true if value is a valid fully qualified domain name. | |
static void | validateCb (const QString &value, Options options, std::function< void(Diagnose diagnose, const QString &extractedValue)> cb) |
Checks if value is a vaid fully qualified domain name and writes the result to the callback cb. | |
Protected Member Functions | |
QString | genericValidationError (Context *c, const QVariant &errorData=QVariant()) const override |
Returns a generic error message if validation failed. | |
ValidatorReturnType | validate (Context *c, const ParamsMultiMap ¶ms) const override |
void | validateCb (Context *c, const ParamsMultiMap ¶ms, ValidatorRtFn cb) const override |
![]() | |
ValidatorRule (ValidatorRulePrivate &dd) | |
QString | debugString (const Context *c) const |
void | defaultValue (Context *c, ValidatorReturnType *result) const |
void | defaultValue (Context *c, ValidatorRtFn cb) const |
QString | field () const noexcept |
virtual QString | genericParsingError (Context *c, const QVariant &errorData={}) const |
virtual QString | genericValidationDataError (Context *c, const QVariant &errorData={}) const |
QString | label (const Context *c) const |
QString | parsingError (Context *c, const QVariant &errorData={}) const |
bool | trimBefore () const noexcept |
QString | validationDataError (Context *c, const QVariant &errorData={}) const |
QString | validationError (Context *c, const QVariant &errorData={}) const |
QString | value (const ParamsMultiMap ¶ms) const |
Additional Inherited Members | |
![]() | |
using | ValidatorRtFn = std::function< void(ValidatorReturnType &&result)> |
Void callback function for validator rules that processes the ValidatorReturnType. | |
The field under validation must contain a fully qualified domain name according to RFC 1035. Internationalized domain names will first be converted into puny code according to IDNA. To also check if there are A and/or AAAA records published for the domain, use the CheckARecord, CheckAAAARecord or CheckDNS options, otherwise there will be no check if the domain is known to the domain name system and the validator will only check the conformance to RFC 1035. DNS lookups are only supported by the validateCb() methods.
Definition at line 41 of file validatordomain.h.
enum Cutelyst::ValidatorDomain::Diagnose : quint8 |
Definition at line 48 of file validatordomain.h.
Definition at line 73 of file validatordomain.h.
|
explicit |
field | Name of the input field to validate. |
options | Options used for checking the domain. When checking DNS entries, it is highly recommended to use the validator in a coroutine context. |
messages | Custom error messages if validation fails. |
defValKey | Stash key containing a default value if input field is empty. This value will NOT be validated. |
Definition at line 17 of file validatordomain.cpp.
|
overridedefault |
Destroys the ValidatorDomain object.
|
static |
Returns a human readable description of a Diagnose.
c | Current Context, used for translations. |
diagnose | The Diagnose to get the description for. |
label | Optinonal label that will be part of the diagnose string if not empty. |
Definition at line 252 of file validatordomain.cpp.
References QString::arg(), DashEnd, DashStart, DigitStart, DNSError, DNSTimeout, EmptyLabel, InvalidChars, InvalidLabelCount, InvalidTLD, QString::isEmpty(), Cutelyst::ValidatorRule::label(), LabelTooLong, MissingDNS, Cutelyst::Context::qtTrId(), TooLong, and Valid.
Referenced by genericValidationError().
|
overrideprotectedvirtual |
errorData will contain the Diagnose returned by ValidatorDomain::validate().
Reimplemented from Cutelyst::ValidatorRule.
Definition at line 477 of file validatordomain.cpp.
References diagnoseString(), Cutelyst::ValidatorRule::label(), and QVariant::value().
|
overrideprotectedvirtual |
Performs the validation on the input params and returns the result.
If validation succeeded, ValidatorReturnType::value will contain the input paramter value as ACE version of the domain in a QString.
Implements Cutelyst::ValidatorRule.
Definition at line 430 of file validatordomain.cpp.
References Cutelyst::ValidatorRule::debugString(), Cutelyst::ValidatorRule::defaultValue(), Cutelyst::ValidatorReturnType::errorMessage, QString::isEmpty(), QVariant::setValue(), Valid, validate(), Cutelyst::ValidatorRule::validationError(), Cutelyst::ValidatorReturnType::value, and Cutelyst::ValidatorRule::value().
|
overrideprotectedvirtual |
Performs the validation on the input params and calls the cb with the ValidatorReturnType as argument.
If validation succeeded, ValidatorReturnType::value will contain the input parameter value as ACE version of the domain in a QString.
Reimplemented from Cutelyst::ValidatorRule.
Definition at line 455 of file validatordomain.cpp.
References QString::isEmpty(), validateCb(), Cutelyst::ValidatorRule::validationError(), and Cutelyst::ValidatorRule::value().