mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Add javascript integer validator
Javascript integer validator checks whether value entered into field is number and is not higher than Number.MAX_SAFE_INTEGER constant. Part of: https://fedorahosted.org/freeipa/ticket/5742 Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
This commit is contained in:
committed by
Martin Babinsky
parent
6c95f33d37
commit
7b699105a5
@@ -970,6 +970,39 @@ field.validator = IPA.validator = function(spec) {
|
||||
return that;
|
||||
};
|
||||
|
||||
/**
|
||||
* Javascript integer validator
|
||||
*
|
||||
* It allows to insert only integer numbers which can be safely represented by
|
||||
* Javascript.
|
||||
*
|
||||
* @class
|
||||
* @alternateClassName IPA.integer_validator
|
||||
* @extends IPA.validator
|
||||
*/
|
||||
field.integer_validator = IPA.integer_validator = function(spec) {
|
||||
|
||||
var that = IPA.validator(spec);
|
||||
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
that.validate = function(value) {
|
||||
|
||||
if (!value.match(/^-?\d+$/)) {
|
||||
return that.false_result(text.get('@i18n:widget.validation.integer'));
|
||||
}
|
||||
|
||||
if (!Number.isSafeInteger(parseInt(value, 10))) {
|
||||
return that.false_result(text.get('@i18n:widget.validation.unsupported'));
|
||||
}
|
||||
|
||||
return that.true_result();
|
||||
};
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
/**
|
||||
* Metadata validator
|
||||
*
|
||||
@@ -1710,6 +1743,7 @@ field.register = function() {
|
||||
v.register('metadata', field.metadata_validator);
|
||||
v.register('unsupported', field.unsupported_validator);
|
||||
v.register('same_password', field.same_password_validator);
|
||||
v.register('integer', field.integer_validator);
|
||||
|
||||
l.register('adapter', field.Adapter);
|
||||
l.register('object_adapter', field.ObjectAdapter);
|
||||
|
||||
Reference in New Issue
Block a user